新手小白 为什么我自己写的程序进入了死循环
import randomanswer=random.randint(1,10)
print('hello hello')
temp=input('不妨说说你心里想的数字')
while isinstance(temp,int)==False:
temp=input('说一个1到10的整数')
guess=int(temp)
while guess!=answer:
temp=input('猜错了 重新猜')
guess=int(temp)
ifguess<answer:
print('害 小了小了')
ifguess>answer:
print('还是不对 大了')
print('猜对啦')
print('不过并没有奖励')
print('游戏结束不玩了88')
以上是程序 到第一个while的时候就陷入了死循环 无论我输入什么都是提示“说一个1到10的整数” 怎么办啊 自己找好久了也没有发现毛病{:5_100:} 本帖最后由 1q23w31 于 2020-8-29 21:27 编辑
import random
answer=random.randint(1,10)
print('hello hello')
temp=int(input('不妨说说你心里想的数字'))
while isinstance(temp,int)==False:
temp=input('说一个1到10的整数')
guess=int(temp)
while guess!=answer:
ifguess<answer:
print('害 小了小了')
ifguess>answer:
print('还是不对 大了')
temp=input('猜错了 重新猜')
guess=int(temp)
print('猜对啦')
print('不过并没有奖励')
print('游戏结束不玩了88')
这样,因为你在判断之前让用户重新输入了,而且第一个循环处,input接收到的是字符型变量 isinstance() 函数来判断一个对象是否是一个已知的类型
temp=input('不妨说说你心里想的数字')
while isinstance(temp,int)==False:
input输入的是字符串,这个判断一直成立,所以无法运行下去 三楼正解 疾风怪盗 发表于 2020-8-29 21:24
isinstance() 函数来判断一个对象是否是一个已知的类型
input输入的是字符串,这个判断一直成立,所以无 ...
恍然大悟 谢谢大佬 但是应该怎么修改一下才能继续下去呢 1q23w31 发表于 2020-8-29 21:23
这样,因为你在判断之前让用户重新输入了,而且第一个循环处,input接收到的是字符型变量
明白了 但是应该怎么修改一下才能继续进行下去呢 孙赖 发表于 2020-8-29 22:22
明白了 但是应该怎么修改一下才能继续进行下去呢
Python isdigit() 方法检测字符串是否只由数字组成。
while temp.isdigit()==False:
要么像2楼这样,加个int()转换,但是可能会报错,要么就用这个函数 疾风怪盗 发表于 2020-8-29 22:33
Python isdigit() 方法检测字符串是否只由数字组成。
要么像2楼这样,加个int()转换,但是可能会报错 ...
会了 非常感谢 import random
answer=random.randint(1,10)
print('hello hello')
temp=input('不妨说说你心里想的数字')
turn=0 #游戏第几轮
while turn<1: #小于一轮就循环
if 1<=int(temp)<=10:#判断输入的合不合规
guess=int(temp)
while guess!=answer:
if guess<answer:
print('害 小了小了')
if guess>answer:
print('还是不对 大了') #这两个小了大了我放上面了,我觉得先说大还是小再猜比较好
temp=input('猜错了 重新猜')
guess=int(temp)
print('猜对啦')
print('不过并没有奖励')
print('游戏结束不玩了88')
turn+=1 #正常玩完才算一轮
#输入别的会进入下面的else
else:
temp=input('请猜一个1到10的数字哦')
我是个小白,可能代码可以更简洁
这个turn=0 #游戏第几轮
while turn<1: #小于一轮就循环
就是我定的只要玩一局就停,可以改比如玩三局停就
while turn<3
一直玩也可以不要turn
直接while True:{:10_257:} 开心超仁 发表于 2020-8-29 22:55
我是个小白,可能代码可以更简洁
这个
谢谢你 可是我刚刚跑了下好像输错多少次也不会停止呀 今天在弄次数怎么也搞不好{:5_104:} 孙赖 发表于 2020-8-29 22:22
明白了 但是应该怎么修改一下才能继续进行下去呢
改成int(input()) 孙赖 发表于 2020-8-30 10:19
谢谢你 可是我刚刚跑了下好像输错多少次也不会停止呀 今天在弄次数怎么也搞不好
我试了可以啊猜对了就会停
如果你想猜错几次就不猜了那得另外加,这个代码原本没有这个功能{:10_257:} 孙赖 发表于 2020-8-30 10:19
谢谢你 可是我刚刚跑了下好像输错多少次也不会停止呀 今天在弄次数怎么也搞不好
我的那个turn是猜出来1把,不是猜1次{:10_257:}
页:
[1]