鱼C论坛

 找回密码
 立即注册
查看: 2486|回复: 9

萌新看了第五课作业后的疑问

[复制链接]
发表于 2015-12-16 13:33:22 | 显示全部楼层 |阅读模式

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

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

x
怎么才能实现当用户输入错误类型,及时提醒用户,输入对后,进行下一步执行。
为什么萌新把代码组合后,无论输入什么数字,都提醒我不合法。怎么才能正确的实现这个功能
import random
secret = random.randint(0,10)
temp = input("猜一下作者心里想的是哪个数字:")
while not isinstance(temp, int):
    print("抱歉,输入不合法,",end='')
    temp = input("请输入一个整数:")
guess = int(temp)
while guess != secret:
    temp = input("请重新输入:")
    guess = int(temp)
    if guess == secret:
        print("居然猜对了!")
        print("猜对也没有奖励!")
    else:
        if guess > secret:
            print("猜大了!")
        else:
            print("猜小了!")
print("Game over")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-16 15:26:31 | 显示全部楼层
这是因为input返回的是一个字符串,temp永远也不可能是int类啊,它会一直在while里循环的,你应该写成
temp =int( input("猜一下作者心里想的是哪个数字:"))

评分

参与人数 1荣誉 +3 鱼币 +5 收起 理由
~风介~ + 3 + 5 支持楼主!

查看全部评分

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

使用道具 举报

 楼主| 发表于 2015-12-17 01:07:49 | 显示全部楼层
Flower_dancing 发表于 2015-12-16 15:26
这是因为input返回的是一个字符串,temp永远也不可能是int类啊,它会一直在while里循环的,你应该写成
tem ...

这样改后,输入一个小数程序进行报错,输入一个整数,程序跳过检验继续执行下一步操作了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-17 15:30:52 | 显示全部楼层
入门级萌新 发表于 2015-12-17 01:07
这样改后,输入一个小数程序进行报错,输入一个整数,程序跳过检验继续执行下一步操作了

浮点貌似没法被int()吧,可以试试用.isdigit()判断是不是数字
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-17 17:13:37 | 显示全部楼层
Joecy 发表于 2015-12-17 15:30
浮点貌似没法被int()吧,可以试试用.isdigit()判断是不是数字

层主能不能写一下,本人刚刚起步,许多函数都不会用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-17 20:02:03 | 显示全部楼层
入门级萌新 发表于 2015-12-17 17:13
层主能不能写一下,本人刚刚起步,许多函数都不会用
  1. def judge(x):
  2.     try:
  3.         x=int(x)
  4.         return isinstance(x,int)
  5.     except ValueError:
  6.         return False

  7. a = input('guess my mind:)')
  8. while judge(a) != True:
  9.     print('pls input right things:(')
  10.     a = input('guess my mind:)')
复制代码


不懂欢迎继续追问
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-17 20:39:33 | 显示全部楼层
hldh214 发表于 2015-12-17 20:02
不懂欢迎继续追问

首先我想问下层主是用的python3吗?
为什么我把你写的贴到我之后一步判断大小上面,还是无法输出
最后我想说,第五课习题萌新怎么这么难实现
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-18 12:39:38 | 显示全部楼层
入门级萌新 发表于 2015-12-17 20:39
首先我想问下层主是用的python3吗?
为什么我把你写的贴到我之后一步判断大小上面,还是无法输出
最后 ...

是Python3,区别Python版本你就看print后面跟没跟一对圆括号即可.
我贴上我的代码吧,你先copy运行一下看看报错情况,不懂欢迎继续追问~~
  1. import random
  2. def judge(x):
  3.     try:
  4.         x=int(x)
  5.         return isinstance(x,int)
  6.     except ValueError:
  7.         return False
  8. secret = random.randint(1,100)
  9. a = input('guess my mind:)')
  10. while judge(a) != True:
  11.     print('pls input right things:(')
  12.     a = input('guess my mind:)')
  13. guess = int(a)
  14. while guess != secret:
  15.     if guess > secret:
  16.         print('so large!')
  17.     else:
  18.         print('so small~')
  19.     a = input('guess my mind:)')
  20.     guess = int(a)
  21. print('amaz!!!!')   
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-18 13:11:03 | 显示全部楼层
hldh214 发表于 2015-12-18 12:39
是Python3,区别Python版本你就看print后面跟没跟一对圆括号即可.
我贴上我的代码吧,你先copy运行一下看 ...

感谢层主

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
hldh214 + 1 + 1 共同进步~~~~~~~~~

查看全部评分

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

使用道具 举报

头像被屏蔽
发表于 2016-1-26 08:41:41 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 09:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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