兜里两颗糖 发表于 2022-1-24 17:46:23

小白求助关于while循环

age = int(input("Please input your age:"))
while age:
    if age < 3:
      print("Free!")
    elif 3<= age <= 12:
      print("You should pay $10.")
    elif age > 12:
      print("You should pay $15.")

代码如上,目前是无限循环,请问怎么能想办法在输入一个数据之后返回到初始的输入状态,重新输入age的值继续判断?

大马强 发表于 2022-1-24 17:51:20

因为无break

age = int(input("Please input your age:"))
while age:
    if age < 3:
      print("Free!")
      break
    elif 3 <= age <= 12:
      print("You should pay $10.")
      break
    elif age > 12:
      print("You should pay $15.")
      break

兜里两颗糖 发表于 2022-1-24 17:53:28

大马强 发表于 2022-1-24 17:51
因为无break

我知道是因为没有break引起的无限循环,主要是我想知道怎么实现后面的功能

大马强 发表于 2022-1-24 17:59:30

本帖最后由 大马强 于 2022-1-24 18:00 编辑

兜里两颗糖 发表于 2022-1-24 17:53
我知道是因为没有break引起的无限循环,主要是我想知道怎么实现后面的功能
age = int(input("Please input your age:"))
while age:
    if age < 3:
      print("Free!")

    elif 3 <= age <= 12:
      print("You should pay $10.")

    elif age > 12:
      print("You should pay $15.")

    age = int(input("Please input your age:"))
没注意看,这样可以不

大马强 发表于 2022-1-24 18:01:21

你输入0就可以退出

兜里两颗糖 发表于 2022-1-24 20:30:35

大马强 发表于 2022-1-24 17:59
没注意看,这样可以不

的确是有效,但有没有更好一点的方法?

大马强 发表于 2022-1-24 20:36:12

兜里两颗糖 发表于 2022-1-24 20:30
的确是有效,但有没有更好一点的方法?

比如?
你还要啥要求呢?

冬雪雪冬 发表于 2022-1-24 20:38:56


age = int(input("Please input your age:"))
放入循环中

ckblt 发表于 2022-1-24 20:43:54

本帖最后由 ckblt 于 2022-1-24 20:51 编辑

while True:
    age = int(input("Please input your age:"))

    if age == 0:
      break

    if age < 3:
      print("Free!")

    elif 3 <= age <= 12:
      print("You should pay $10.")

    elif age > 12:
      print("You should pay $15.")

YSW9527 发表于 2022-1-24 22:37:04

age = int(input("Please input your age:(如要结束请输入0)"))
while age:#可以近似把数字当做布尔型使用,0代表False,大于0的代表True,当输入0自然就会结束循环,其他大于0的数字将继续判断
    if age < 3:
      print("Free!")
    elif 3<= age <= 12:
      print("You should pay $10.")
    elif age > 12:
      print("You should pay $15.")
    age = int(input("Please input your age:(如要结束请输入0)"))

python爱好者. 发表于 2022-1-25 08:48:10

兜里两颗糖 发表于 2022-1-24 20:30
的确是有效,但有没有更好一点的方法?

这应该就够了!不必去追求代码那么精简1

Twilight6 发表于 2022-1-25 12:47:50

兜里两颗糖 发表于 2022-1-24 20:30
的确是有效,但有没有更好一点的方法?


并不是完全的死循环,输入 0 可以退出循环,因为 0 == False

另外像这样的条件可以改改,有些冗余,参考代码:

age = int(input("Please input your age(Enter 0 to exit):"))

while age:
    if age < 3:
      print("Free!")

    elif age <= 12:
      print("You should pay $10.")

    else:
      print("You should pay $15.")

    age = int(input("Please input your age(Enter 0 to exit):"))

兜里两颗糖 发表于 2022-1-25 19:40:18

python爱好者. 发表于 2022-1-25 08:48
这应该就够了!不必去追求代码那么精简1

非常感谢

python爱好者. 发表于 2022-1-25 20:02:14

不用谢,兄弟!

Passepartout 发表于 2022-1-28 08:55:09

{:5_108:}

欢喜的是雨琦 发表于 2022-1-30 00:53:55

这样是更符合编程思维的方法
while True:
    age = int(input("Please input your age:"))
    if age < 3:
      print("Free!")
    elif 3 <= age <= 12:
      print("You should pay $10.")
    elif age > 12:
      print("You should pay $15.")
页: [1]
查看完整版本: 小白求助关于while循环