|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- [code]counts = 3
- import random
- anwser = random.randint(1,10)
- print("小甲鱼想的是什么数字:",end=" ")
- temp = input()
- # 这种想法是因为 type(1) 会返回 <class 'int'>,如果 type(temp) 返回结果一致说明输入是整数。
- while type(temp) != type(1):
- print("抱歉,输入不合法,", end='')
- temp = input("请输入一个整数:")
- while counts > 0:
- temp = input()
- guess = int(temp)
- if guess == anwser:
- print("你是小甲鱼肚子里的蛔虫吗")
- print("答对了也没奖励")
- break
- else:
- if guess < anwser:
- print("你猜小了")
- else:
- print("你猜大了")
- if counts > 0:
- print("再试一次:",end="")
- else:
- print("机会用完了")
- counts = counts -1
- print("游戏结束")
-
复制代码 [/code]有大佬知道这个程序为啥一直跳不出第一个循环
这个问题是因为 input() 函数在Python中默认获取的是字符串类型的数据,而 type(temp) != type(1) 这个条件是用来检查输入是否为整数类型,所以你的代码会一直停留在第一个循环。
一种解决方案是在接收输入时立即尝试将其转换为整数,并使用 try / except 结构来处理可能出现的错误。代码如下:
- counts = 3
- import random
- answer = random.randint(1,10)
- print("小甲鱼想的是什么数字:",end=" ")
- while True:
- temp = input()
- try:
- temp = int(temp) # 尝试将输入转换为整数
- break # 如果转换成功,就跳出循环
- except ValueError: # 如果转换失败,就打印错误信息,并继续循环
- print("抱歉,输入不合法,", end='')
- print("请输入一个整数:", end='')
- while counts > 0:
- guess = temp
- if guess == answer:
- print("你是小甲鱼肚子里的蛔虫吗")
- print("答对了也没奖励")
- break
- else:
- if guess < answer:
- print("你猜小了")
- else:
- print("你猜大了")
- counts -= 1
- if counts > 0:
- print("再试一次:",end="")
- while True:
- temp = input()
- try:
- temp = int(temp) # 尝试将输入转换为整数
- break # 如果转换成功,就跳出循环
- except ValueError: # 如果转换失败,就打印错误信息,并继续循环
- print("抱歉,输入不合法,", end='')
- print("请输入一个整数:", end='')
- else:
- print("机会用完了")
- print("游戏结束")
复制代码
以上代码首先检查输入的类型,如果输入不是整数,就会要求用户重新输入。然后在猜数字的过程中也加入了这个检查,确保用户在每次猜测时都输入的是整数。
|
|