【发布时间】:2015-04-11 06:09:37
【问题描述】:
def main():
month = 0
date = 0
year = 0
date = [month, date, year,]
user = input("Enter according to mm/dd/yy: ")
user = user.split('/')
list1 = list(user)
months = {'1': 'January', '2': 'Feburary', '3': 'March', '4': 'April', '5': 'May', '6': 'June',
'7': 'July', '8': 'August', '9': 'September', '10': 'October', '11': 'November', '12': 'December'}
while int(list1[0]) > 12 or int(list1[0]) < 1:
print("Month is incorrect.")
user = input("Enter according to mm/dd/yy:")
user = user.split('/')
list1 = list(user)
while int(list1[1]) > 31 or int(list1[1]) < 0:
print("Date is incorrect.")
user = input("Enter according to mm/dd/yy:")
user = user.split('/')
list1 = list(user)
while int(list1[2]) > 15 or int(list1[2]) < 15:
print("Year is incorrect.")
user = input("Enter according to mm/dd/yy:")
user = user.split('/')
list1 = list(user)
print(months[list1[0]], list1[1], (",") , ("20") + list1[2])
main()
有没有办法将while 循环缩短为一个循环?我知道有一种叫做“嵌套”的东西,但这似乎也很长。
对于user = user.split('/') 和list1 =list(user),有没有其他方法可以根据用户的输入创建一个列表?我尝试了user = user.split('/'),但尝试时似乎出现了一些错误。
【问题讨论】:
-
请注意,您的算法存在根本缺陷 - 如果用户得到例如第一次年份错了,再更正年月错了,不会再查了。
标签: python input while-loop split