import datetime
def main():
date_string = input('Enter a date in mm/dd/yy format: ')
date_list = date_string.split('/')
month = int(date_list[0])
day = int(date_list[1])
year = int(date_list[2])
while month < 1 or month > 12:
print('Month entered is out of range')
date_string = input('Re-enter a date in mm/dd/yy format: ')
date_list = date_string.split('/')
month = int(date_list[0])
day = int(date_list[1])
year = int(date_list[2])
while day < 1 or day > 31:
print('Day entered is out of range')
date_string = input('Re-enter a date in mm/dd/yy format: ')
date_list = date_string.split('/')
month = int(date_list[0])
day = int(date_list[1])
year = int(date_list[2])
while year != 13:
print('Year does not represent 2013')
date_string = input('Re-enter a date in mm/dd/yy format: ')
date_list = date_string.split('/')
month = int(date_list[0])
day = int(date_list[1])
year = int(date_list[2])
print(month, day, year)
main()
當我運行程序並輸入無效的月份和日期時,它會一直下降到年份驗證,並且即使輸入對其他輸入中的一個無效,也會繼續發佈該提示。while循環太早了。
您的代碼十分需要的功能來讀取和分裂值。您還有一個問題,如果用戶輸入有效的月份號碼和無效的日期號碼,他們可以重新輸入帶有無效月份號碼和有效日期號碼的數據。等等 –
你的代碼工作正常,如果你輸入「17/20/2013」,是否是預期的? –