0

私はこれらすべてに本当に慣れていません。現在、2つの機能を実行して印刷しようとしていますが、それを把握できないようです:

import datetime  

def get_date(prompt):
    while True:
        user_input = raw_input(prompt)  
        try:

            user_date = datetime.datetime.strptime(user_input, "%m-%d")
            break
        except Exception as e:
            print "There was an error:", e
            print "Please enter a date"
    return user_date.date()

def checkNight(date):
    date = datetime.strptime('2011-'+date, '%Y-%m-%d').strftime('$A')

birthday = get_date("Please enter your birthday (MM-DD): ")
another_date = get_date("Please enter another date (MM-DD): ")

if birthday > another_date:
    print "Your friend's birthday comes first!"
    print checkNight(date)

elif birthday < another_date:
    print "Your birthday comes first!"
    print checkNight(date)

else:  
    print "You and your friend can celebrate together."

この関数get_dateは、日付が 5 文字であり、任意の分割が可能であることを確認できる必要があります。また、誰かが「02-29」と入力すると、「02-28」として扱われます。checkNight前の誕生日がどの夜に当たるかを確認できる必要があります。

ここではいくつかの例を示します。

生年月日を入力してください (MM-DD): 11-25
友達の誕生日を入力してください (MM-DD): 03-05
友達の誕生日が一番!
すごい!パーティーは土曜日、週末の夜です。

生年月日を入力してください (MM-DD): 03-02
友達の誕生日を入力してください (MM-DD): 03-02
あなたとあなたの友人は一緒に祝うことができます!
残念な!パーティーは水曜日の学校の夜です。

生年月日を入力してください (MM-DD): 11-25
友達の誕生日を入力してください (MM-DD): 12-01
誕生日が一番!
すごい!パーティーは金曜日、週末の夜です。
4

1 に答える 1

2
  • checkNight(date)1つのエラーは、変数「date」が定義されていない状態での呼び出しが原因です。
  • datetime.strptime読む必要がありますdatetime.datetime.strptime
  • 同じ行()内の文字列と日付を連結すると'2011-'+date、エラーが発生する場合もあります。
  • checkNight(date)関数は何も返しません
  • 等。

多分これはあなたが望むものに少し近いです:

import datetime  

def get_date(prompt):
    while True:
        user_input = raw_input(prompt)  
        try:
            user_date = datetime.datetime.strptime(user_input, "%m-%d")
            user_date = user_date.replace(year=2011)
            break
        except Exception as e:
            print "There was an error:", e
            print "Please enter a date"
    return user_date

def checkNight(date):
    return date.strftime('%A')

birthday = get_date("Please enter your birthday (MM-DD): ")
another_date = get_date("Please enter another date (MM-DD): ")

if birthday > another_date:
    print "Your friend's birthday comes first!"
    print checkNight(another_date)

elif birthday < another_date:
    print "Your birthday comes first!"
    print checkNight(birthday)

else:  
    print "You and your friend can celebrate together."

ユーザーが入力した直後に2011年の年を変更するので、で曜日をより簡単に抽出できることに注意してくださいcheckNight()

于 2011-03-15T17:57:45.987 に答える