easygui模块问题求助
import easygui as gimport random
secret = random.randint(1,10)
g.msgbox("------------------我爱你...个鬼------------------")
msg = "不妨猜一下我现在心里想的是哪个数字:"
temp = g.integerbox(msg,lowerbound = 1,upperbound = 10)
while 1:
if temp == None:
temp = g.integerbox("请输入数字",lowerbound = 1,upperbound = 10)
else:
break
while temp != secret:
msg ="哎呀,猜错了,请重新输入吧:"
temp = g.integerbox(msg,lowerbound = 1,upperbound = 10)
if temp == secret:
g.msgbox("我草,你是我心里的蛔虫吗?")
g.msgbox("哼,猜中了也没有奖励!")
else:
while 1:
if temp == None:
temp = g.integerbox("请输入数字", lowerbound=1, upperbound=10)
else:
break
if temp > secret:
g.msgbox("哥,大了大了~~~")
else:
g.msgbox("嘿,小了小了~~~")
g.msgbox("不玩了")
我对小甲鱼的代码进行了修改,本意是如果用户没有输入数字,则提醒他输入,但是却导致不运行到底就无法结束,求大神修改,可以直接点击X关闭程序
easygui 的 integerbox 组件是你点 X 的时候返回的是 None,点 OK 时候会判断你输入框内的值是否在上下限内
若不在,则组件自动会叫你重新输入此时不会返回值,所以不需要你进行循环重新判断
参考代码:
import easygui as g
import random
secret = random.randint(1,10)
g.msgbox("------------------我爱你...个鬼------------------")
msg = "不妨猜一下我现在心里想的是哪个数字:"
temp = g.integerbox(msg,lowerbound = 1,upperbound = 10)
while temp != secret:
msg ="哎呀,猜错了,请重新输入吧:"
temp = g.integerbox(msg,lowerbound = 1,upperbound = 10)
if temp == None:
break
if temp == secret:
g.msgbox("我草,你是我心里的蛔虫吗?")
g.msgbox("哼,猜中了也没有奖励!")
break
elif temp > secret:
g.msgbox("哥,大了大了~~~")
else:
g.msgbox("嘿,小了小了~~~")
g.msgbox("不玩了") Twilight6 发表于 2020-11-8 18:15
easygui 的 integerbox 组件是你点 X 的时候返回的是 None,点 OK 时候会判断你输入框内的值是否在上下限 ...
这个不是小甲鱼原来的代码吗{:5_107:}
我要的是那种能够在没有输入的时候提醒用户重新输入 灵魂溢出 发表于 2020-11-8 19:00
这个不是小甲鱼原来的代码吗
我要的是那种能够在没有输入的时候提醒用户重新输入
这只是删了几个你原先代码的几个错误点,并不是直接拷贝甲鱼哥代码的
灵魂溢出 发表于 2020-11-8 19:00
这个不是小甲鱼原来的代码吗
我要的是那种能够在没有输入的时候提醒用户重新输入
重新看了下 easygui 的文档,把 integerbox 组件改成 enterbox 组件输入
但是不会自动检查范围,你可以自己重新写出这个功能
参考代码:
import easygui as g
import random
secret = random.randint(1,10)
g.msgbox("------------------我爱你...个鬼------------------")
msg = "不妨猜一下我现在心里想的是哪个数字:"
temp = g.enterbox(msg)
while temp.strip() == '':
msg = '注意!您还没输入数字~'
g.msgbox(msg)
temp = g.enterbox("不妨猜一下我现在心里想的是哪个数字:")
while temp != str(secret):
msg ="哎呀,猜错了,请重新输入吧:"
temp = g.enterbox(msg)
while temp.strip() == '':
msg = '注意!您还没输入数字~'
g.msgbox(msg)
temp = g.enterbox("不妨猜一下我现在心里想的是哪个数字:")
if temp == None:
break
if temp == str(secret):
g.msgbox("我草,你是我心里的蛔虫吗?")
g.msgbox("哼,猜中了也没有奖励!")
break
elif temp > str(secret):
g.msgbox("哥,大了大了~~~")
else:
g.msgbox("嘿,小了小了~~~")
g.msgbox("不玩了") Twilight6 发表于 2020-11-8 19:20
重新看了下 easygui 的文档,把 integerbox 组件改成 enterbox 组件输入
但是不会自动检查范围,你可 ...
如果用strip()的方法的话,可以接着用integerbox组件,直接把循环判断是否输入为空改为temp.strip()就可以了,这就是我最初想要的效果了
页:
[1]