-3

こんにちは、ユーザーが入力した日付が有効か無効かを判断する基本的な python プログラムを作成しようとしています。私は問題がどこにあるかを特定するのが難しいだけで、しばらくそれを続けてきました. どんな助けでも大歓迎です。これまでの私のコードは次のとおりです。

def main():
#get the month day and year
(month, day, year)=eval(input("Enter month, day, and year numbers:"))
date1=str(month)+"/"+str(day)+"/"+str(year)
#determine if user inputted date is valid or invalid
def Valid (month, day, year): int(month) in range(0,12), int(day) in range(0,31), int(year) in range(0,100000)
def Verify (month, day, year):
    if (month, day, year) is Valid (month, day, year):
        print ((date1), "is a valid date.")
    else:
        print ("This is not a valid date.")

Verify (month, day, year)

(主要)

4

1 に答える 1

0

私はPythonを始めたばかりなので、正しく行っていないことは間違いありませんが、コードをできるだけ変更せず、提案の前にコメントとして行を残します。

#determine if user inputted date is valid or invalid 
def Valid (month, day, year):
    #int(month) in range(0,12), int(day) in range(0,31), int(year) in range(0,100000) 
    return int(month) in range(1,13) and int(day) in range(1,32) and int(year) in range(1,100000)

def Verify (month, day, year):
    #if (month, day, year) is Valid (month, day, year):
    if Valid (month, day, year):
        print ((date1), "is a valid date.")
    else:
        print ("This is not a valid date.")

#get the month day and year 
(month, day, year)=eval(input("Enter month, day, and year numbers:")) date1=str(month)+"/"+str(day)+"/"+str(year) 
Verify (month, day, year)

「in range(0,12)」は、0 ~ 11 の場合は True、12 の場合は False を返すことに注意してください。月のテストには (1,13) が必要です。当然、これはまだ 1989 年 2 月 29 日と 4 月 31 日が有効であると考えています。4 で割り切れる年がうるう年になるのは、世紀も 4 で割り切れる場合のみであり、通常の使用では 0 年はありません。

于 2012-05-06T00:23:58.703 に答える