鱼C论坛

 找回密码
 立即注册
查看: 1565|回复: 3

[已解决]初学者python代码问题

[复制链接]
发表于 2020-7-2 17:33:53 | 显示全部楼层 |阅读模式

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

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

x
求教第六讲课后题最后一题:

"""
0. 编写一个成绩评级程序,要求用户输入分数,程序返回对应的评级。
分数 < 60,D
60 <= 分数 < 80,C
80 <= 分数 < 90,B
90 <= 分数 < 100,A
分数 == 100,S

程序可以不断接收输入,直至用户输入小写字母 e 结束程序

"""
答案为:
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("请输入你的分数:")



但有个问题:

为什么我在尝试将 score = int(score) 加在while 前时,输入大于60的数字就会报错?



最佳答案
2020-7-2 17:43:54
本帖最后由 Twilight6 于 2020-7-2 17:50 编辑



int 函数是将其他类型的值转为整型

input 函数是接受用户输入,并将其值转化为字符串

字符串的 '1' 和整型的 1 是不能进行比较的~ 当你把 score = int(score) 移动到循环前面

会导致你后续input的字符串没办法转为整型,导致后来你的 int 和 str 字符串进行比较报错

因为两种不同类型的值不能进行比较,也就是字符串和 整数不能直接进行逻辑比较


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

使用道具 举报

发表于 2020-7-2 17:43:54 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-7-2 17:50 编辑



int 函数是将其他类型的值转为整型

input 函数是接受用户输入,并将其值转化为字符串

字符串的 '1' 和整型的 1 是不能进行比较的~ 当你把 score = int(score) 移动到循环前面

会导致你后续input的字符串没办法转为整型,导致后来你的 int 和 str 字符串进行比较报错

因为两种不同类型的值不能进行比较,也就是字符串和 整数不能直接进行逻辑比较


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

使用道具 举报

发表于 2020-7-2 17:44:40 | 显示全部楼层
你修改后的程序只有在第一次运行的时候会执行 score = int(score)
然后就会进入while循环,在循环中不再包括score = int(score)
这样在第二次输入比较的时候就会出现score是str字符串类型,和60 int整数类型比较
这时候会有TypeError异常
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-2 19:36:53 | 显示全部楼层
感谢楼上两位大佬指教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 14:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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