连续Python用户输入

连续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? "))

我对Python相当陌生,我正在尝试创建一个简单的程序来计算,然后打印,根据用户输入的周数(只要周数大于4周,但小于16周)计算假期租金。我把这部分代码写得很好,但我遇到的问题是,如果用户输入的数字不在范围内,程序就会重复这个问题。任何帮助都将不胜感激。这是我的密码:

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.")