关于isinstance返回值的使用方法求助
求大佬指出我的错误再哪里头疼啊import random
secret = random.randint(1,10)
guess = int(input("猜一下我心里面想的数字吧:"))
while isinstance(guess,int):
while guess != secret:
guess = int(input("猜错了,重新猜:"))
if guess == secret:
print("哦操 你是我的蛔虫的吗")
print("猜中了也没有奖励")
else:
if guess > secret :
print("嘿,大了,大了")
else:
print("哥,小了 小了")
print("游戏结束,不玩了^-^")
print("输入有误") 本帖最后由 kylin121380 于 2020-10-3 21:50 编辑
你while条件永远为真,猜中了也没有跳出循环,如果猜错了,直接再次输入,没有提示大了还是小了,最后两句print提示有问题
import random
secret = random.randint(1,10)
try:
guess = int(input("猜一下我心里面想的数字吧:"))
while guess != secret:
if guess > secret:
print("嘿,大了,大了")
else:
print("哥,小了 小了")
guess = int(input("猜错了,重新猜:"))
print("哦操 你是我的蛔虫的吗")
print("猜中了也没有奖励")
print("游戏结束,不玩了^-^")
except:
print('请输入整型数!') 这里不药用isinstance了,int强制转换字符串失败时会报错,还是用isdigit这样,然后下面再调整下顺序和逻辑
import random
secret = random.randint(1,10)
print(secret)
guess = input("猜一下我心里面想的数字吧:")
while guess.isdigit():
guess=int(guess)
if guess != secret:
if guess > secret :
print("嘿,大了,大了")
else:
print("哥,小了 小了")
guess = input("猜错了,重新猜:")
else:
print("哦操 你是我的蛔虫的吗")
print("猜中了也没有奖励")
print("游戏结束,不玩了^-^")
break
else:
print("输入有误") import random
secret = random.randint(1,10)
guess = int(input("猜一下我心里面想的数字吧:"))
while isinstance(guess,int): #判断是否转换为整型(没啥意义,因为如果不是整型,上一行就会报错)
while guess != secret: #猜错的情况
guess = int(input("猜错了,重新猜:"))
if guess == secret:
print("哦操 你是我的蛔虫的吗")
print("猜中了也没有奖励")
print("游戏结束,不玩了^-^")
else:
if guess > secret :
print("嘿,大了,大了")
else:
print("哥,小了 小了")
else: #猜对的情况 [你这里缺少]
print("哦操 你是我的蛔虫的吗")
print("猜中了也没有奖励")
print("游戏结束,不玩了^-^")
break
else:
print("输入有误") #如果没有进入循环,则打印输入错误 昨非 发表于 2020-10-3 21:52
你这也有问题的,非数字会报错,而且猜对了后输出两次“猜中了” 疾风怪盗 发表于 2020-10-3 21:55
你这也有问题的,非数字会报错,而且猜对了后输出两次“猜中了”
确实
页:
[1]