我正在嘗試爲類創建此程序,但我遇到了一個小問題。我似乎總是有循環問題!如果您輸入的日期與該問題相同,但該程序仍然有效,但如果輸入錯誤,我無法再回過頭去詢問用戶日期。我創建了True/False布爾值,但它似乎不起作用。我們還沒有學會如何導入某些日期模塊並進行轉換,因此我正在手動轉換月份。答:從用戶輸入一個數字格式的日期,例如: MM/DD/YY。Python用戶輸入和日期轉換
B.檢查用戶輸入的月份。如果它大於12或小於1,則發出錯誤消息並再次要求輸入。 C.對日期和年份進行類似的驗證測試。年份必須爲 爲2013年。(其他年份無效)。另外,年份只能是兩位數字。
D.一旦所有的輸入已被驗證,輸出字符串在長日期格式。因此,這是輸入在15年6月1日的字符串將輸出爲6月1日,2015年
def main():
try_again = True
while try_again == True:
date_string = input("Please enter a date in the format 'mm/dd/yy': ")
date_list = date_string.split('/')
month = date_list[0]
day = date_list[1]
year = date_list[2]
if month > "12" or month < "01":
print('Error, please re-enter the date!')
if year != '13':
print('Error! The year must be 2013')
if len(year) > 2:
print('Error! The year can only be 2 digits long!')
else:
print_date(month, day, year)
try_again = False
def print_date(month, day, year):
# Convert to 2013 because 2013 is the only valid year
# for this program.
if year == '13':
year = '2013'
# Convert the number values to the actual month.
if month == '01':
month = 'January'
if month == '02':
month = 'February'
if month == '03':
month = 'March'
if month == '04':
month = 'April'
if month =='05':
month = 'May'
if month == '06':
month = 'June'
if month == '07':
month = 'July'
if month == '08':
month = 'August'
if month == '09':
month = 'September'
if month =='10':
month = 'October'
if month == '11':
month = 'November'
if month == '12':
month = 'December'
# Print the date in the correct format
print(month + " " + day + ',' + " " + year)
main()
而不是額外的'if'語句,你不想'elif'語句嗎? – jcfollower
只是一個警告:比較'月'與字符串'01'和'12'是不會保證它是一個有效的輸入:''01'<「0asb」< '12' ==> True' –
你會最好檢查'如果不是(month.isdigit()和1 <= int(month)<= 12)' –