loster0219 发表于 2018-12-15 20:57:35

关于接收用户输入input()的问题,脑子短路,想不出来

比如:
msg = ''
while msg != 'quit':
    msg = input("请输入你的年龄:")
    msg = int(msg)
    if msg < 3:
      print("宝宝")
    elif msg >= 3 and msg <= 12:
      print('小朋友')
    else:
      print("青少年")


如果只能是 在 while 循环中使用条件测试来结束循环,不使用一个标志变量和break

要怎么做呢.?想不出来..

这个代码的问题是,循环判断没问题,但一输入quit就报数值错误,这个我也知道是为啥..

msg转成整数比较完之后,怎么才能再接收字符串呢?

冬雪雪冬 发表于 2018-12-15 21:03:37

msg = ''
while msg != 'quit':
    msg = input("请输入你的年龄:")
    if msg.isdigit():
      if int(msg) < 3:
            print("宝宝")
      elif 3 <= int(msg) <= 12:
            print('小朋友')
      else:
            print("青少年")

丶忘却的年少o 发表于 2018-12-15 21:09:30

以下方案有点鸡肋,看看就好,用的是年龄不是负数
msg = ''
year = 0
while year >= 0:
    msg = input("请输入你的年龄:")
    year = int(msg)
    if 0 <= year and year < 3:
      print("宝宝")
    elif year >= 3 and year <= 12:
      print('小朋友')
    elif year > 12:
      print("青少年")

倚楼听雨落 发表于 2018-12-15 21:13:03

如果我没理解错的话你需要以下的东西,第005讲:闲聊之Python的数据类型 | 课后测试题及答案,这里面讲过的:
s 为字符串

s.isalnum()所有字符都是数字或者字母,为真返回 True,否则返回 False。

s.isalpha()   所有字符都是字母,为真返回 True,否则返回 False。

s.isdigit()   所有字符都是数字,为真返回 True,否则返回 False。

s.islower()    所有字符都是小写,为真返回 True,否则返回 False。

s.isupper()   所有字符都是大写,为真返回 True,否则返回 False。

s.istitle()      所有单词都是首字母大写,为真返回 True,否则返回 False。

s.isspace()   所有字符都是空白字符,为真返回 True,否则返回 False。
         
例如:
>>> s = 'I LOVE FISHC'
>>> s.isupper()
>>> True

heidern0612 发表于 2018-12-16 11:33:56

版主的方法是最好的

timcui 发表于 2018-12-19 09:27:57

因为,你强转int类型了,肯定报错,quit不能转换成int类型,所以保存
页: [1]
查看完整版本: 关于接收用户输入input()的问题,脑子短路,想不出来