当我输入一个不在1和7之间的数字时,它会显示“错误!请输入星期几的数字(1-7):”,但在输入某些内容后,它会显示“输入一周的日期的数字(1-7):”。当输入的数字不在1-7之间时,我希望“错误!请输入一个数字(1-7)作为星期几:”替换为“输入一个数字(1-7)作为星期几:”。我之前尝试过的东西是把print(错误!)但是我不喜欢那个错误!出现在上面,请输入一个数字。有没有办法让它们出现在同一行上?顺便说一下,我的教授要求我使用if-elif else语句,并且代码是一个连续循环。
keep_going = 'y'
while keep_going == 'y':
day = int(input('Enter a number (1-7) for the day of the week:'))
if day == 1:
print('Monday')
elif day == 2:
print('Tuesday')
elif day == 3:
print('Wednesday')
elif day == 4:
print('Thursday')
elif day == 5:
print('Friday')
elif day == 6:
print('Saturday, Happy Weekend!')
elif day == 7:
print('Sunday, Happy Weekend!')
else:
int(input('Error! Please enter a number (1-7) for the day of the week:'))发布于 2019-10-18 12:55:22
您忘记了代码最后一行的赋值。day的值永远不会更新。
day = int(....顺便说一句,您也从不更新keep_going的值。你的循环永远不会停止。最后,您应该使用日期名称列表,并按索引访问名称,而不是使用8路if语句。
发布于 2019-10-18 13:02:45
最好的解决方案是将代码的最后几行改为:
else:
print('Error! ', end='')然后,控制将返回到循环的开头,并且"Enter a number"提示符将同时作为错误的解释和输入新数字的提示符。
这样,您的表单将保持一致,以便所有if分支只执行一个print,而不执行其他任何操作。
发布于 2019-10-18 13:02:50
一些风格上的调整(我的观点,我知道),并为while循环添加了缺失的day变量赋值和退出条件。
keep_going = True
response = dict(zip(
range(1,8), (
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday, Happy Weekend!',
'Sunday, Happy Weekend!'
)
))
while keep_going:
day = int(input('Enter a number (1-7) for the day of the week:'))
if day in response:
print(response[day])
keep_going = False
else:
day = int(input('Error! Please enter a number (1-7) for the day of the week:'))https://stackoverflow.com/questions/58444135
复制相似问题