连续Python用户输入
我对Python相当陌生,我正在尝试创建一个简单的程序来计算,然后打印,根据用户输入的周数(只要周数大于4周,但小于16周)计算假期租金。我把这部分代码写得很好,但我遇到的问题是,如果用户输入的数字不在范围内,程序就会重复这个问题。任何帮助都将不胜感激。这是我的密码:连续Python用户输入,python,if-statement,while-loop,Python,If Statement,While Loop,我对Python相当陌生,我正在尝试创建一个简单的程序来计算,然后打印,根据用户输入的周数(只要周数大于4周,但小于16周)计算假期租金。我把这部分代码写得很好,但我遇到的问题是,如果用户输入的数字不在范围内,程序就会重复这个问题。任何帮助都将不胜感激。这是我的密码: weeks = 0 total = 0 while True: try: weeks = int(input("How many weeks do you plan on vacationing? "))
weeks = 0
total = 0
while True:
try:
weeks = int(input("How many weeks do you plan on vacationing? "))
break
except ValueError:
print("Please enter a number.")
if weeks < 4:
print("Not in range.")
elif weeks <= 6:
total = weeks*3080
print("Rental cost: $",total)
elif weeks <= 10:
total = weeks*2650
print("Rental cost: $", total)
elif weeks <=16:
total = weeks*2090
print("Rental cost: $", total)
else:
print("Not in range.")
weeks=0
总数=0
尽管如此:
尝试:
weeks=int(输入(“您计划休假多少周?”)
打破
除值错误外:
打印(“请输入一个数字”)
如果周数小于4周:
打印(“不在范围内”)
elif weeks在try块中验证weeks
,如果超出范围,则在休息前提高值错误 如果有帮助的话,我只是运行了这个,它对我来说非常有效。您得到的实际错误/错误是什么?如果为True:weeks=input(“您计划休假多少周?”),如果为weeks.isdigit()==False:print(“请输入一个数字”);否则:weeks=int(weeks)break
我不认为这个问题是重复的-但是如果你再次发布,但是关注你得到的错误。我没有得到错误或错误本身,但是当用户输入一个小于4或大于16的数字时,程序停止,而不是重复要求一个数字,直到它收到一个在范围内的数字。然而,我可以通过检查问题user1767754来解决这个问题,该问题作为副本发布。谢谢你的帮助,我真的很感激!您还可以尝试在注释中缩进我的代码
weeks = 0
total = 0
while True:
try:
weeks = int(input("How many weeks do you plan on vacationing? "))
if weeks < 4:
print("Not in range.")
continue
elif weeks <= 6:
total = weeks*3080
print("Rental cost: $",total)
break
elif weeks <= 10:
total = weeks*2650
print("Rental cost: $", total)
break
elif weeks <=16:
total = weeks*2090
print("Rental cost: $", total)
break
else:
print("Not in range.")
except ValueError:
print("Please enter a number.")