鱼C论坛

 找回密码
 立即注册
查看: 1934|回复: 11

[已解决]求教,这样写会报错,不明白错在哪

[复制链接]
发表于 2017-7-31 15:30:11 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Ryo 于 2017-7-31 16:32 编辑







我的思路是 想把 猜数字游戏做一个规范,用户输入除数字外的字符时,也能正常运行程序,不报错,第6句时,我特意输出了一下变量a,看是不是整数,结果是整数,但是当拿a和8对比时,会报字符不能和数字对比,很神奇

a = 1
while a != 8:
    a = 1
    a = input('请输入我心里想的数字:')
    if a.isdigit():
        print('您输入的数值是:'+a)
        if a > 8:
            print('大了')
        elif a < 8:
            print('小了')
    else:
        print('您输入的值不符合规范,请输入正整数')
print('猜对了!')

报错如下:


请输入我心里想的数字:f
您输入的值不符合规范,请输入正整数
请输入我心里想的数字:3
您输入的数值是:3
Traceback (most recent call last):
  File "C:/Python34/14.py", line 7, in <module>
    if a > 8:
TypeError: unorderable types: str() > int()

最佳答案
2017-7-31 16:50:14
这样就可以了:
  1. a=1
  2. while a!=8:
  3.     a=1
  4.     a=input('请输入我心理想的数字:')
  5.     if a.isdigit():
  6.         print('您输入的数值是:'+a)
  7.         a=int(a)
  8.         if a>8:
  9.             print('大了')
  10.         elif a<8:
  11.             print('小了')
  12.     else:
  13.         print('您输入的值不符合规范,请输入正整数')
  14. print('猜对了')
复制代码

结果为:
  1. 请输入我心理想的数字:adf
  2. 您输入的值不符合规范,请输入正整数
  3. 请输入我心理想的数字:-5
  4. 您输入的值不符合规范,请输入正整数
  5. 请输入我心理想的数字:1
  6. 您输入的数值是:1
  7. 小了
  8. 请输入我心理想的数字:9
  9. 您输入的数值是:9
  10. 大了
  11. 请输入我心理想的数字:5
  12. 您输入的数值是:5
  13. 小了
  14. 请输入我心理想的数字:7
  15. 您输入的数值是:7
  16. 小了
  17. 请输入我心理想的数字:8
  18. 您输入的数值是:8
  19. 猜对了
复制代码

还有,while 下第一行的a=1可以不要
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-7-31 15:39:26 | 显示全部楼层
input得到的是字符串,你去和整数8做比较,当然不行了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-31 15:44:04 | 显示全部楼层
冬雪雪冬 发表于 2017-7-31 15:39
input得到的是字符串,你去和整数8做比较,当然不行了。

但是 如果 我不用 a.isdigit() 的话 是可以用的  神奇啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-31 15:44:37 | 显示全部楼层
冬雪雪冬 发表于 2017-7-31 15:39
input得到的是字符串,你去和整数8做比较,当然不行了。

还有大神,应该用什么比较好
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-31 16:14:21 | 显示全部楼层
Ryo 发表于 2017-7-31 15:44
但是 如果 我不用 a.isdigit() 的话 是可以用的  神奇啊

不知道你是怎么不用的,是把if语句去掉?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-31 16:15:28 | 显示全部楼层
Ryo 发表于 2017-7-31 15:44
还有大神,应该用什么比较好

我看你另一个帖子有
b = int(a)
再判断b与8的大小。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-31 16:26:23 | 显示全部楼层
冬雪雪冬 发表于 2017-7-31 16:15
我看你另一个帖子有
b = int(a)
再判断b与8的大小。

这个我刚才也试过,还是报一样的错 醉了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-31 16:27:52 | 显示全部楼层
冬雪雪冬 发表于 2017-7-31 16:14
不知道你是怎么不用的,是把if语句去掉?


不用的情况是  

a = 1
b = int(a)
while(b != 8):
    a = input('请输入一个我心里想的数字:')
    b = int(a)
    if b < 8:
        print('小了')
    elif b > 8:
        print('大了')

print('猜对了')
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-31 16:36:41 | 显示全部楼层
冬雪雪冬 发表于 2017-7-31 16:15
我看你另一个帖子有
b = int(a)
再判断b与8的大小。

我知道原因了 确实是漏了这句,转成整形的语句, 在判定 a是不是全为数字后,没有加这句,已经改好,多谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-31 16:50:14 | 显示全部楼层    本楼为最佳答案   
这样就可以了:
  1. a=1
  2. while a!=8:
  3.     a=1
  4.     a=input('请输入我心理想的数字:')
  5.     if a.isdigit():
  6.         print('您输入的数值是:'+a)
  7.         a=int(a)
  8.         if a>8:
  9.             print('大了')
  10.         elif a<8:
  11.             print('小了')
  12.     else:
  13.         print('您输入的值不符合规范,请输入正整数')
  14. print('猜对了')
复制代码

结果为:
  1. 请输入我心理想的数字:adf
  2. 您输入的值不符合规范,请输入正整数
  3. 请输入我心理想的数字:-5
  4. 您输入的值不符合规范,请输入正整数
  5. 请输入我心理想的数字:1
  6. 您输入的数值是:1
  7. 小了
  8. 请输入我心理想的数字:9
  9. 您输入的数值是:9
  10. 大了
  11. 请输入我心理想的数字:5
  12. 您输入的数值是:5
  13. 小了
  14. 请输入我心理想的数字:7
  15. 您输入的数值是:7
  16. 小了
  17. 请输入我心理想的数字:8
  18. 您输入的数值是:8
  19. 猜对了
复制代码

还有,while 下第一行的a=1可以不要
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-31 17:42:05 | 显示全部楼层
status 发表于 2017-7-31 16:50
这样就可以了:
结果为:
还有,while 下第一行的a=1可以不要

谢谢大神!!!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-31 17:44:29 | 显示全部楼层
Ryo 发表于 2017-7-31 17:42
谢谢大神!!!!!

不客气,那给个答案最佳呗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-1 04:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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