辞浅而情深 发表于 2020-7-29 14:48:12

Python零基础教学 007讲动动手二

我写的代码输入成绩后一直返回某值,死循环,感觉小甲鱼的要简单一点,但是不懂为啥他的可以运行,代码如下:
score = input("请输入你的分数:")

while score != 'e':
    score = int(score)

    if score < 60:
      print("D")

    if 60 <= score < 80:
      print("C")

    if 80 <= score < 90:
      print("B")

    if 90 <= score < 100:
      print("A")

    if score == 100:
      print("S")

    score = input("请输入你的分数:")

Twilight6 发表于 2020-7-29 14:51:16



可能是因为你的score = input("请输入你的分数:") 不在循环内,而是在循环外

所以导致循环没有重新输入 score 的值也就陷入死循环

建议将你的代码发上来哈~

1q23w31 发表于 2020-7-29 14:54:42

给的代码没问题呀,看看你的缩进

辞浅而情深 发表于 2020-7-29 14:56:08

Twilight6 发表于 2020-7-29 14:51
可能是因为你的score = input("请输入你的分数:") 不在循环内,而是在循环外

所以导致循环没有重 ...

不对,不对,刚才那个代码是小甲鱼的,不小心复制错了,这个是我的:
print('这是一个成绩评级程序')
num = input('请输入你的分数:')
while grade != 'e':
    grade = int(num)
    if grade == 100:
      print('你就是个天才')
    else:
      if 90 <= grade < 100:
            print('A')
      else:
            if 80 <= grade < 90:
                print('B')
            else:
                if 60 <= grade < 80:
                  print('C')
                else:
                  if grade < 60:
                        print('你就是个蠢蛋')
                  else:
                        break
print('恭喜你,完成了成绩评价。')

Twilight6 发表于 2020-7-29 15:00:09

本帖最后由 Twilight6 于 2020-7-29 15:04 编辑

辞浅而情深 发表于 2020-7-29 14:56
不对,不对,刚才那个代码是小甲鱼的,不小心复制错了,这个是我的:
print('这是一个成绩评级程序')
n ...



错误原因也是一样的哈,而且你的代码忘记将 grade 初始化了

你只需要在循环末尾加上 num = input('请输入你的分数:') 就好了

而且你的 else:break 可以动下, 最后的 if 条件 也加上 0<= 的范围,这样就更好了


print('这是一个成绩评级程序')
num = input('请输入你的分数:')
while num != 'e':
    grade = int(num)
    if grade == 100:
      print('你就是个天才')
    else:
      if 90 <= grade < 100:
            print('A')
      else:
            if 80 <= grade < 90:
                print('B')
            else:
                if 60 <= grade < 80:
                  print('C')
                else:
                  if 0<= grade < 60:
                        print('你就是个蠢蛋')
                  else:
                        print('你输入的分数有误!')
    num = input('请输入你的分数:')
   
print('恭喜你,完成了成绩评价。')

辞浅而情深 发表于 2020-7-29 15:01:04

1q23w31 发表于 2020-7-29 14:54
给的代码没问题呀,看看你的缩进

不好意思,刚才给的那个是小甲鱼的,不小心给错了,我的代码如下:
print('这是一个成绩评级程序')
num = input('请输入你的分数:')
grade = int(num)
while grade != 'e':
    if grade == 100:
      print('你就是个天才')
    else:
      if 90 <= grade < 100:
            print('A')
      else:
            if 80 <= grade < 90:
                print('B')
            else:
                if 60 <= grade < 80:
                  print('C')
                else:
                  if grade < 60:
                        print('你就是个蠢蛋')
                  else:
                        break
print('恭喜你,完成了成绩评价。')

辞浅而情深 发表于 2020-7-29 15:04:53

Twilight6 发表于 2020-7-29 15:00
错误原因也是一样的哈,而且你的代码忘记将 grade 初始化了

你只需要在循环末尾加上 num = inpu ...

谢谢了啊,太感谢了

Twilight6 发表于 2020-7-29 15:04:56

辞浅而情深 发表于 2020-7-29 14:56
不对,不对,刚才那个代码是小甲鱼的,不小心复制错了,这个是我的:
print('这是一个成绩评级程序')
n ...

刚刚代码中有些小问题,循环条件应该写成 num != 'e' 哈

辞浅而情深 发表于 2020-7-29 15:19:32

Twilight6 发表于 2020-7-29 15:04
刚刚代码中有些小问题,循环条件应该写成 num != 'e' 哈

为什么啊,不是已经把num的值赋给grade了嘛

Twilight6 发表于 2020-7-29 15:21:09

辞浅而情深 发表于 2020-7-29 15:19
为什么啊,不是已经把num的值赋给grade了嘛



每次循环是通过判断 num 是否输入 e 来判断是否退出循环的

因为 int 不能将一个字母使用会报错转为数字

辞浅而情深 发表于 2020-7-29 15:23:33

Twilight6 发表于 2020-7-29 15:04
刚刚代码中有些小问题,循环条件应该写成 num != 'e' 哈

我刚才试了一下,我发现不管事num != 'e'还是grade != 'e' 好像都不太对,当输入e的会后都会出问题

辞浅而情深 发表于 2020-7-29 15:26:01

Twilight6 发表于 2020-7-29 15:21
每次循环是通过判断 num 是否输入 e 来判断是否退出循环的

因为 int 不能将一个字母使用会报错转 ...

print('这是一个成绩评级程序')
num = input('请输入你的分数:')
grade = int(num)
while num != 'e':
    grade = int(num)
    if grade == 100:
      print('你就是个天才')
    else:
      if 90 <= grade < 100:
            print('A')
      else:
            if 80 <= grade < 90:
                print('B')
            else:
                if 60 <= grade < 80:
                  print('C')
                else:
                  if 0 <= grade < 60:
                        print('你就是个蠢蛋')
                  else:
                        print('你输入的成绩有误')
    num = input('请输入你的分数')
print('恭喜你,完成了成绩评价。')
                这个还是会报错,难过

Twilight6 发表于 2020-7-29 15:27:37

辞浅而情深 发表于 2020-7-29 15:26
print('这是一个成绩评级程序')
num = input('请输入你的分数:')
grade = int(num)



你这是我之前的代码,后来我和你说改了一下,你重新去 5L 看看

辞浅而情深 发表于 2020-7-29 15:31:59

Twilight6 发表于 2020-7-29 15:27
你这是我之前的代码,后来我和你说改了一下,你重新去 5L 看看

好像是理解了,膜拜大佬,谢谢啦!
页: [1]
查看完整版本: Python零基础教学 007讲动动手二