4

私はPythonを初めて使用し、最も基本的なレベルしか知りません。dd/mm/yyyy の形式で日付を入力できるようにし、1986 年 8 月 26 日のような形式に変換することになっています。月 (mm) を数字から単語に変換する方法に行き詰まっています。以下は私の現在のコードです。助けていただければ幸いです。** カレンダー機能の使用を提案しないでください。この質問を解決するには dict を使用することになっています。

ありがとうございました (:

#allow the user to input the date
date=raw_input("Please enter the date in the format of dd/mm/year: ")

#split the strings
date=date.split('/')

#day
day=date[:2]

#create a dictionary for the months
monthDict={1:'Jan', 2:'Feb', 3:'Mar', 4:'Apr', 5:'May', 6:'Jun', 7:'Jul', 8:'Aug', 9:'Sep', 10:'Oct', 11:'Nov', 12:'Dec'}
#month
month=date[3:5]
if month in monthDict:
    for key,value in monthDict:
        month=value

#year
year=date[4:]

#print the result in the required format
print day, month, "," , year 
4

4 に答える 4

12

Python の datetime.datetime を使用してください。を使って読むmy_date = strptime(the_string, "%d/%m/%Y")。を使用して印刷しmy_date.strftime("%d %b, %Y")ます。

訪問: http://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior

例:

import datetime
input = '23/12/2011'
my_date = datetime.datetime.strptime(input, "%d/%m/%Y")
print my_date.strftime("%d %b, %Y") # 23 Dec, 2011
于 2013-01-26T05:08:42.137 に答える
3
date = raw_input("Please enter the date in the format of dd/mm/year: ")
date = date.split('/')
day = date[0] # date is, for example, [1,2,1998]. A list, because you have use split()
monthDict = {1:'Jan', 2:'Feb', 3:'Mar', 4:'Apr', 5:'May', 6:'Jun', 
            7:'Jul', 8:'Aug', 9:'Sep', 10:'Oct', 11:'Nov', 12:'Dec'}
month = date[1] # Notice how I have changed this as well
                # because the length of date is only 3
month = monthDict[int(month)]
year = date[2] # Also changed this, otherwise it would be an IndexError
print day, month, "," , year

実行時:

Please enter the date in the format of dd/mm/year: 1/5/2004
1 May , 2004
于 2013-01-26T04:15:23.733 に答える
1

日付文字列を分割すると、3 つの要素 (0、1、および 2) のみになります。

>>> date=date.split('/')
>>> print date
['11', '12', '2012']
  ^     ^     ^
  0     1     2

したがって、date[:2] は次のようになります。

>>> day=date[:2] # that is, date up to (but not including) position 2
>>> print day
['11', '12']

そしてdate[4]存在しません、そしてどちらも存在しませんdate[3:5]

さらに、次のように辞書の値を呼び出す必要があります。

>>> print monthDict[12]
Dec

したがって、日、月、年の組み合わせを印刷するには、次のようにします。

>>> print date[0], monthDict[int(date[1])] + ", " + date[2]
11 Dec, 2012

辞書のキーとして整数を使用int(date[0])したため、キーとして使用する必要があります。monthDict[int(date[0])]ただし、(ユーザーからの) 入力は文字列であり、整数ではありません。

于 2013-01-26T04:06:11.633 に答える