鱼C论坛

 找回密码
 立即注册
查看: 1908|回复: 5

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

[复制链接]
发表于 2018-12-15 20:57:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
比如:
  1. msg = ''
  2. while msg != 'quit':
  3.     msg = input("请输入你的年龄:")
  4.     msg = int(msg)
  5.     if msg < 3:
  6.         print("宝宝")
  7.     elif msg >= 3 and msg <= 12:
  8.         print('小朋友')
  9.     else:
  10.         print("青少年")
复制代码



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

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

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

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

最佳答案
2018-12-15 21:03:37
  1. msg = ''
  2. while msg != 'quit':
  3.     msg = input("请输入你的年龄:")
  4.     if msg.isdigit():
  5.         if int(msg) < 3:
  6.             print("宝宝")
  7.         elif 3 <= int(msg) <= 12:
  8.             print('小朋友')
  9.         else:
  10.             print("青少年")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-12-15 21:03:37 | 显示全部楼层    本楼为最佳答案   
  1. msg = ''
  2. while msg != 'quit':
  3.     msg = input("请输入你的年龄:")
  4.     if msg.isdigit():
  5.         if int(msg) < 3:
  6.             print("宝宝")
  7.         elif 3 <= int(msg) <= 12:
  8.             print('小朋友')
  9.         else:
  10.             print("青少年")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-12-15 21:09:30 | 显示全部楼层
以下方案有点鸡肋,看看就好,用的是年龄不是负数
  1. msg = ''
  2. year = 0
  3. while year >= 0:
  4.     msg = input("请输入你的年龄:")
  5.     year = int(msg)
  6.     if 0 <= year and year < 3:
  7.         print("宝宝")
  8.     elif year >= 3 and year <= 12:
  9.         print('小朋友')
  10.     elif year > 12:
  11.         print("青少年")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-16 11:33:56 From FishC Mobile | 显示全部楼层
版主的方法是最好的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-19 09:27:57 From FishC Mobile | 显示全部楼层
因为,你强转int类型了,肯定报错,quit不能转换成int类型,所以保存
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 11:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表