请教一下,《python编程从入门到实践》的练习7-5 while True: 放的位置不同为何会导致无限循环?(已解决)

这是我最开始的想法:

    prompt = "\n我们的电影票是按年龄来定价格的。"
    prompt += "\n请输入订票人的年龄以知晓电影票价:"

    年龄 = input(prompt)
while Trueif int(年龄) < 3:
        print("3岁以下的观众免费观影!")
    elif int(年龄) < 13:
        print("3~12岁的观众票价为10元!")
    else:
        print("12岁以上的观众票价为15元!")

但是在终端中运行时就会导致无限循环。
然后我在网上寻找了答案,是这样的:

while True:
    prompt = "\n我们的电影票是按年龄来定价格的。"
    prompt += "\n请输入订票人的年龄以知晓电影票价:"

    年龄 = input(prompt)

    if int(年龄) < 3:
        print("3岁以下的观众免费观影!")
    elif int(年龄) < 13:
        print("3~12岁的观众票价为10元!")
    else:
        print("12岁以上的观众票价为15元!")

这样就可以正确的运行。
为啥这个 while True: 放的位置不一样,会有不同的结果?它放在前后分别的含义是什么呢?

最佳答案

第一个:只输入一次,之后循环一直在判断这个输入的固定值;

第二个:每次判断之前都会进行一次输入,程序会等待输入完成,就和你第一个一样,在你输入完成之前不会进入循环或下一次循环

1个月前 评论
vanshit (楼主) 1个月前
讨论数量: 2

第一个:只输入一次,之后循环一直在判断这个输入的固定值;

第二个:每次判断之前都会进行一次输入,程序会等待输入完成,就和你第一个一样,在你输入完成之前不会进入循环或下一次循环

1个月前 评论
vanshit (楼主) 1个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!