457799577 发表于 2017-11-17 15:20:29

008题完整版

研究了几天才研究出来    我是菜鸟   必须输入正确的才能退出,要不就重新输入

temp=input('请输入你的分数:')
while not temp.isdigit():
    temp=input('请输入0-100的数字:')
while True:
    if temp.isdigit():
      temp=int(temp)
      if 100>=temp>=90:
             print('A')
             break
      elif 90>temp>=80:
            print('B')
            break
      elif 80>temp>=60:
            print('C')
            break
      elif 60>temp>=0:
            print('D')
            break
      else:
            temp=input('请输入0-100的数字:')

BngThea 发表于 2017-11-17 15:44:52

第二个while循环中的第一个if可以删掉

像番茄加两个蛋 发表于 2017-11-17 15:59:32

挺好的,你使用了while not temp.isdigit()
我上学期学习的时候也写过类似的成绩输入判断等级
i=0
while i == 0:
    try:
      temp=int(input('请你输入成绩(0-100):'))
      if 90 <= temp <= 100:
            i +=1
            print('A')
      elif 80 <= temp < 90:
            i +=1
            print('B')
      elif 60 <= temp < 80:
            i +=1
            print('C')
      elif 0 <= temp < 60:
            i +=1
            print('D')
      else:
            print('输入错误请你重新输入!')
    except:
      print('输入错误请你重新输入!')

我是通过定义一个来实现循环的,还有使用了程序的异常处理try:except:结构。
功能一样写法不同,哈哈让我们一起学习,我学习你的.isdigit方法来实现判断错误和循环结构。

像番茄加两个蛋 发表于 2017-11-17 16:00:26

BngThea 发表于 2017-11-17 15:44
第二个while循环中的第一个if可以删掉

看看我的代码有什么问题吗,在下面

BngThea 发表于 2017-11-17 16:59:52

像番茄加两个蛋 发表于 2017-11-17 16:00
看看我的代码有什么问题吗,在下面

except要处理一下本次循环,添加一句continue

铁棍阿童木 发表于 2017-11-17 17:49:30

1、用isdecimal()方法来判断字符串是不是数字比isdigit()更好
2、第二个while循环里面第一个if似乎多余了吧!

457799577 发表于 2017-11-20 09:04:33

BngThea 发表于 2017-11-17 15:44
第二个while循环中的第一个if可以删掉

谢谢   这个 还真不知道

457799577 发表于 2017-11-20 09:07:04

像番茄加两个蛋 发表于 2017-11-17 15:59
挺好的,你使用了while not temp.isdigit()
我上学期学习的时候也写过类似的成绩输入判断等级



谢谢   你这也是python吗

457799577 发表于 2017-11-20 09:09:18

铁棍阿童木 发表于 2017-11-17 17:49
1、用isdecimal()方法来判断字符串是不是数字比isdigit()更好
2、第二个while循环里面第一个if似乎多余了 ...

谢谢   还没学到   isdecimal()函数呢    等学会了 在研究

457799577 发表于 2017-11-20 09:12:18

像番茄加两个蛋 发表于 2017-11-17 16:00
看看我的代码有什么问题吗,在下面

厉害   ,我的思路还是没拓开

457799577 发表于 2017-11-20 09:13:26

BngThea 发表于 2017-11-17 16:59
except要处理一下本次循环,添加一句continue

添加continue不就跳出循环了吗

457799577 发表于 2017-11-20 09:24:22

BngThea 发表于 2017-11-17 15:44
第二个while循环中的第一个if可以删掉

不加if报错了 啊

BngThea 发表于 2017-11-20 09:25:25

457799577 发表于 2017-11-20 09:13
添加continue不就跳出循环了吗

break才是跳出

BngThea 发表于 2017-11-20 09:27:42

457799577 发表于 2017-11-20 09:24
不加if报错了 啊

我说的是第一个if,因为前面的输入过程已经进行过判定了

457799577 发表于 2017-11-20 11:49:10

BngThea 发表于 2017-11-20 09:27
我说的是第一个if,因为前面的输入过程已经进行过判定了

输入的只是True,你的意思把True换成temp.isdigit():
         temp=int(temp)这个嘛

BngThea 发表于 2017-11-20 12:27:47

不要if判断,但是里面的语句要

457799577 发表于 2017-11-20 13:39:35

BngThea 发表于 2017-11-20 12:27
不要if判断,但是里面的语句要

不行,if必须加,要不小数的时候会报错。我刚试了
你说是这样吧
while True:
      temp=int(temp)

BngThea 发表于 2017-11-20 15:21:34

457799577 发表于 2017-11-20 13:39
不行,if必须加,要不小数的时候会报错。我刚试了
你说是这样吧
while True:


那请问你的第一个while循环是做什么的?

457799577 发表于 2017-11-21 17:00:35

BngThea 发表于 2017-11-20 15:21
那请问你的第一个while循环是做什么的?

第一个while字符都能拦住,只是不知道为何小数不行

bing_home 发表于 2017-11-23 17:29:51

不错不错
页: [1]
查看完整版本: 008题完整版