鱼C论坛

 找回密码
 立即注册
查看: 1335|回复: 6

[已解决]008讲课后问题提问

[复制链接]
发表于 2019-5-12 20:12:59 | 显示全部楼层 |阅读模式

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

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

x
008讲课后题动手题第一题,我是这么写的
i = input('请输入成绩:')
if 80 > i >= 60:
    print('C')

elif 90 > i >=80:
    print('B')

elif 60 > i >= 0:
    print('D')

elif 100 >= i >= 90:
    print('A')

else:
    print ('输入错误')

为什么输出的时候输入数字会显示
Traceback (most recent call last):
  File "/Users/fan/Documents/Fan's_File/Python/练习/第七八课/练习_1.py", line 2, in <module>
    if 80 > i >= 60:
TypeError: '>' not supported between instances of 'int' and 'str'

小白求大神解答
最佳答案
2019-5-12 21:56:44
本帖最后由 13572044595 于 2019-5-12 21:59 编辑

input() 返回的是一个 str类型 的对象
不同类型,不能直接进行判断,需要转换
就目前所学的内容,你需要用 int() 把 字符串(str) 转换为 整型(int)
我建议你使用 eval() 函数,
int() 不能直接去整型 小数形式的字符串


参考答案:
  1. i = eval(input('请输入成绩:'))
  2. if 80 > i >= 60:
  3.     print('C')

  4. elif 90 > i >=80:
  5.     print('B')

  6. elif 60 > i >= 0:
  7.     print('D')

  8. elif 100 >= i >= 90:
  9.     print('A')

  10. else:
  11.     print ('输入错误')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-5-12 20:22:17 | 显示全部楼层
input('请输入成绩:')
input 函数接收到的 永远是字符串
所以
i =int( input('请输入成绩:'))

i = input('请输入成绩:')
i = int(i)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-12 20:23:17 | 显示全部楼层
本帖最后由 紫葵花开 于 2019-5-12 20:24 编辑

i必须是整型...
所以应该i=int(input('请输入一个分数:'))
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-12 21:56:44 | 显示全部楼层    本楼为最佳答案   
本帖最后由 13572044595 于 2019-5-12 21:59 编辑

input() 返回的是一个 str类型 的对象
不同类型,不能直接进行判断,需要转换
就目前所学的内容,你需要用 int() 把 字符串(str) 转换为 整型(int)
我建议你使用 eval() 函数,
int() 不能直接去整型 小数形式的字符串


参考答案:
  1. i = eval(input('请输入成绩:'))
  2. if 80 > i >= 60:
  3.     print('C')

  4. elif 90 > i >=80:
  5.     print('B')

  6. elif 60 > i >= 0:
  7.     print('D')

  8. elif 100 >= i >= 90:
  9.     print('A')

  10. else:
  11.     print ('输入错误')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-12 23:48:21 | 显示全部楼层
13572044595 发表于 2019-5-12 21:56
input() 返回的是一个 str类型 的对象
不同类型,不能直接进行判断,需要转换
就目前所学的内容,你需要 ...

哦哦,我明白了,谢谢
麻烦再请教一个问题,那我可不可以把数字都加上引号变为下面这种形式:
i = input('请输入成绩:')
if '80' > i >= '60':
    print('C')

elif '90' > i >='80':
    print('B')

elif '60' > i >= '0':
    print('D')

elif '100' >= i >= '90':
    print('A')

else:
    print ('输入错误')


这个我输出的时候有个问题,就是如果我输入的数字超过100,他给的返回值都是’D‘而不是’输入错误‘这几个字是为什么?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-13 00:01:14 | 显示全部楼层
本帖最后由 13572044595 于 2019-5-13 00:09 编辑
409683996 发表于 2019-5-12 23:48
哦哦,我明白了,谢谢
麻烦再请教一个问题,那我可不可以把数字都加上引号变为下面这种形式:
i = inpu ...


最好不要这样,因为 str类型 判断大小,
好像是根据 对应的 ASCII 数值,或者 Unicode 数值 进行判断的
只判断字符串中 的第一位 所对应的编码 数值
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-13 00:49:28 | 显示全部楼层
本帖最后由 geen 于 2019-5-13 00:51 编辑

TypeError: '>' not supported between instances of 'int' and 'str'
翻译: '>'  不被支持 用作 整型 和 字符串 之间的比较

input()输出 是 字符串(str) 格式, 字符串和 整型 无法作对比(但你这么做了),所以报错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-9 03:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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