wangqi666666 发表于 2019-9-23 21:18:29

判断用户数是否为数字

正在自学python,感觉蛮好玩的。百度了很久,别人写的代码反正我也看不懂。就自己写了一个。考虑到了用户输入是:小数、字母等情况。
请各位大神帮忙看看有没有遗漏,错误。欢迎各位知道!第一次发帖,好像有点小激动!

while True:
        num_str = input("请输入你的分数:")
        #判断用户是不是要退出游戏
        if num_str == "q":
                print("欢迎下次再来!")
                break
        try:
                num = float(num_str)
                if num > 90:
                        print("A")
                elif 80 < num <= 90:
                        print("B")
                elif 60 < num <= 80:
                        print("C")
                else:
                        print("D")
        except ValueError:
                print("请输入正确的分数!")

zltzlt 发表于 2019-9-23 21:27:08

程序有 BUG,输入合法的数字就不停打印字母。帮你改了一下:
num_str = input("请输入你的分数:")
while True:
      #判断用户是不是要退出游戏
      if num_str == "q":
                print("欢迎下次再来!")
                break
      try:
                num = float(num_str)
                if not 0 <= num <= 100:
                  num_str = input("请输入正确的分数!")
                  continue
                if num > 90:
                        print("A")
                elif 80 < num <= 90:
                        print("B")
                elif 60 < num <= 80:
                        print("C")
                else:
                        print("D")
                num_str = input("请输入你的分数:")
                continue
      except ValueError:
                num_str = input("请输入正确的分数!")

wangqi666666 发表于 2019-9-23 21:32:02

zltzlt 发表于 2019-9-23 21:27
程序有 BUG,输入合法的数字就不停打印字母。帮你改了一下:

哈哈,好吧。我开始的要求是:只要是合法的数字(不管是大于100,还是负数都让他进行判断,判断玩之后输出A、B、C、D),你把数字定在 0-100当然是 更符合实际!谢谢

zltzlt 发表于 2019-9-23 21:34:14

wangqi666666 发表于 2019-9-23 21:32
哈哈,好吧。我开始的要求是:只要是合法的数字(不管是大于100,还是负数都让他进行判断,判断玩之后输 ...

但是用你那个程序用户输入 100 就会不停地打印 'A'

wangqi666666 发表于 2019-9-23 21:35:29

zltzlt 发表于 2019-9-23 21:34
但是用你那个程序用户输入 123 就会不停地打印 'D'

没有呀。、输入123,打印的是A 啊 。我刚刚试了很多次哦,

zltzlt 发表于 2019-9-23 21:38:12

wangqi666666 发表于 2019-9-23 21:35
没有呀。、输入123,打印的是A 啊 。我刚刚试了很多次哦,

不好意思,我刚刚打错了,我是想说:输入 100 会不停打印 'A'

wangqi666666 发表于 2019-9-23 21:40:39

zltzlt 发表于 2019-9-23 21:38
不好意思,我刚刚打错了,我是想说:输入 100 会不停打印 'A'

输入100,本来就应该打印A的呀。反正比90大就打印A。是我没理解你的意思嘛?、我刚学的。。。说清楚点,版主大大

zltzlt 发表于 2019-9-23 21:49:12

wangqi666666 发表于 2019-9-23 21:40
输入100,本来就应该打印A的呀。反正比90大就打印A。是我没理解你的意思嘛?、我刚学的。。。说清楚点, ...

会一直打印 A,不会停

wangqi666666 发表于 2019-9-23 22:01:07

输入100 也没有一直打印A,就打了一次啊。我不知道怎么截图,不然截图给你看
页: [1]
查看完整版本: 判断用户数是否为数字