编写一个程序从输入中读取日期,每行一个日期。每个日期的格式必须如下:1990 年 3 月 1 日。任何不遵循该格式的日期都是不正确的,应被忽略。输入仅在一行上以 -1 结尾。将每个正确的日期输出为:3/1/1990。
提示:解析字符串并提取日期时,使用 string[start:end] 获取子字符串。使用 split() 方法将输入分解为标记。
例如:如果输入是:
1990 年 3 月 1 日 1995 年 4 月 2 日 2020年7月15日 2003 年 12 月 13 日 -1 那么输出是:
1990年3月1日 2003 年 12 月 13 日
def get_month_as_int(monthString):
if monthString == 'January':
month_int = 1
elif monthString == 'February':
month_int = 2
elif monthString == 'March':
month_int = 3
elif monthString == 'April':
month_int = 4
elif monthString == 'May':
month_int = 5
elif monthString == 'June':
month_int = 6
elif monthString == 'July':
month_int = 7
elif monthString == 'August':
month_int = 8
elif monthString == 'September':
month_int = 9
elif monthString == 'October':
month_int = 10
elif monthString == 'November':
month_int = 11
elif monthString == 'December':
month_int = 12
else:
month_int = 0
return month_int
用户字符串=输入()
虽然正确: 用户字符串 = 输入()
if user_string == -1:
break
else:
is_valid = False
char = user_string.find(",")
if char != -1:
is_valid = True
if is_valid == True:
words = user_string.split()
month = words[0]
days = words[1]
year = words[2]
print(f'{month_str}/{day}/{year}')
elif is_valid == False:
continue
我的程序存在一些错误: 我不明白为什么它一直在我的输入行上抛出错误,除非它是在 While True 之后: 但我需要循环多个输入。
也无法弄清楚如何去掉当天字符串中的逗号
这是我的输入和结果:
输入程序输入(可选) 1990 年 3 月 1 日 1995 年 4 月 2 日 2020年7月15日 2003 年 12 月 13 日 -1
此处显示程序错误 回溯(最近一次调用最后一次): 文件“/home/runner/local/submission/main.py”,第 35 行,位于 用户字符串=输入() EOFError: 读取一行时出现 EOF
此处显示程序输出 1990年3月1日 2003 年 12 月 13 日
我更新了Python代码。希望对你有用。
def get_month_as_int(monthString):
if monthString == 'January':
month_int = 1
elif monthString == 'February':
month_int = 2
elif monthString == 'March':
month_int = 3
elif monthString == 'April':
month_int = 4
elif monthString == 'May':
month_int = 5
elif monthString == 'June':
month_int = 6
elif monthString == 'July':
month_int = 7
elif monthString == 'August':
month_int = 8
elif monthString == 'September':
month_int = 9
elif monthString == 'October':
month_int = 10
elif monthString == 'November':
month_int = 11
elif monthString == 'December':
month_int = 12
else:
month_int = 0
return month_int
if __name__ == "__main__":
# March 1, 1990 April 2 1995 7/15/20 December 13, 2003 -1
while True:
user_string = input("Enter input: ")
if int(user_string) == -1:
break
else:
is_valid = False
char = user_string.find(",")
if char != -1:
is_valid = True
if is_valid == True:
words, year = user_string.split(',')
month, days = words.split(' ')
month_str = get_month_as_int(month.strip())
print(f'{month_str}/{days.strip()}/{year.strip()}')
elif is_valid == False:
continue
输出:
Enter input: March 1, 1990
3/1/1990
Enter input: April 2 1995
Enter input: 7/15/20
Enter input: December 13, 2003
12/13/2003
Enter input: -1