鱼C论坛

 找回密码
 立即注册
查看: 2131|回复: 5

猜数字小游戏,加了个检测输入数字范围的句子,然后怎么都弄不对了,请帮新人看看

[复制链接]
发表于 2016-11-23 12:43:26 | 显示全部楼层 |阅读模式
5鱼币
Python入门课里的猜数字游戏。

规则是:游戏要求输入1到10的数字,然后猜是不是和随机生成的数字一样。

因为考虑到有人可能输入范围以外的数字,所以小白楼主加了个if句子判断一下。
然后不管怎么输数字都会显示输入的数字在范围外!!!



import random as r
import easygui as g

i = 1

while i:
    num = g.enterbox('猜一下是哪个数字(1~10)','猜数字小游戏')


    if num == None:
        break
    #检测是否不输入数字直接不玩

    answer = r.randint(1,10)
    num = int()


    if num>10 or num<1:
        i = g.boolbox('输错啦!要1到10的数!','猜数字小游戏',('再玩一次','不玩了'))
        #检测输入的答案是否超出范围(加了这一句开始鬼畜了T-T)
               
    if 1<=num<=10 and num == answer:
        i = g.boolbox('√√√恭喜你猜对啦√√√\n继续玩吗?','猜数字小游戏',('再玩一次','不玩了'))
    elif 1<=num<=10 and num != answer:
        i = g.boolbox('×××猜错啦×××\n继续玩吗?','猜数字小游戏',('再玩一次','不玩了'))
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-23 13:47:07 | 显示全部楼层
应该是num = int()这句有问题吧。这个初始化后num=0,之后判断里num<1,所以在范围外。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-23 13:53:04 | 显示全部楼层
我用Python2.7 运行好像没有报错
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-23 14:39:18 | 显示全部楼层
好复杂
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-23 20:54:25 | 显示全部楼层
int()返回0,int(参数)返回该参数的数字类型,如果换不成数字就报错。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-11-23 23:16:04 | 显示全部楼层
本帖最后由 千亿爸爸 于 2016-11-23 23:35 编辑

谢谢大家的关心帮助

错误的语句是 num = int()
改成 num = int(num) 就好了

另外,我从qq213哪里学到了2点:
1、easygui里的enterbox不输入任何东西,返回' '
2、在用easygui时把title、choice这些写在外面程序会简单很多
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-24 03:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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