鱼C论坛

 找回密码
 立即注册
查看: 1428|回复: 14

[已解决]Python零基础教学 007讲动动手二

[复制链接]
发表于 2020-7-29 14:48:12 | 显示全部楼层 |阅读模式

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

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

x
我写的代码输入成绩后一直返回某值,死循环,感觉小甲鱼的要简单一点,但是不懂为啥他的可以运行,代码如下:
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("请输入你的分数:")
最佳答案
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('恭喜你,完成了成绩评价。')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-29 14:51:16 | 显示全部楼层

回帖奖励 +3 鱼币



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

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

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-29 14:54:42 | 显示全部楼层
给的代码没问题呀,看看你的缩进
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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('恭喜你,完成了成绩评价。')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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('恭喜你,完成了成绩评价。')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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('恭喜你,完成了成绩评价。')

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-29 15:04:53 | 显示全部楼层
Twilight6 发表于 2020-7-29 15:00
错误原因也是一样的哈,而且你的代码忘记将 grade 初始化了

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

谢谢了啊,太感谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

刚刚代码中有些小问题,循环条件应该写成 num != 'e' 哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-29 15:19:32 | 显示全部楼层
Twilight6 发表于 2020-7-29 15:04
刚刚代码中有些小问题,循环条件应该写成 num != 'e' 哈

为什么啊,不是已经把num的值赋给grade了嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-29 15:21:09 | 显示全部楼层
辞浅而情深 发表于 2020-7-29 15:19
为什么啊,不是已经把num的值赋给grade了嘛



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

因为 int 不能将一个字母使用会报错转为数字
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-29 15:23:33 | 显示全部楼层
Twilight6 发表于 2020-7-29 15:04
刚刚代码中有些小问题,循环条件应该写成 num != 'e' 哈

我刚才试了一下,我发现不管事num != 'e'  还是grade != 'e' 好像都不太对,当输入e的会后都会出问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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('恭喜你,完成了成绩评价。')
                这个还是会报错,难过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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


你这是我之前的代码,后来我和你说改了一下,你重新去 5L 看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-29 15:31:59 | 显示全部楼层
Twilight6 发表于 2020-7-29 15:27
你这是我之前的代码,后来我和你说改了一下,你重新去 5L 看看

好像是理解了,膜拜大佬,谢谢啦!

点评

客气了~~  发表于 2020-7-29 15:33
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 17:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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