ID花花花 发表于 2020-8-26 13:48:49

跪求 大佬解惑

我这个程序 走不下去 是为什么 哪里出了问题?

import random
times = 3
secret = random.randint(1,10)
print('---------------------猜数字小游戏----------------')
guess = 0
temp = input("请输入一个整数:")
while type(temp) != type(1):
    print("抱歉,输入不合法,", end='')
    temmp = input("请输入一个整数:")
while (guess != secret) and (times > 0):
    temp = input()
    guess = int(temp)
    times = times - 1
    if guess == secret:
      print("哇操,你是小甲鱼心里的蛔虫吗?")
      print("哼,猜中了也没有奖励")
    else:
      if guess > secret:
            print("嘿嘿,太大了~~")
      else:
            print("太小了,太小了")
      if times > 0:
            print("再试一次吧:", end=" ")
      else:
            print("机会用光咯T_T")
print("游戏结束,不玩啦~~")

昨非 发表于 2020-8-26 13:52:44

import random
times = 3
secret = random.randint(1,10)
print('---------------------猜数字小游戏----------------')
guess = 0
temp = int(input("请输入一个整数:"))#这里将输入内容转化为整形,即可
while type(temp) != type(1):
    print("抱歉,输入不合法,", end='')
    temmp = input("请输入一个整数:")
while (guess != secret) and (times > 0):
    temp = input()
    guess = int(temp)
    times = times - 1
    if guess == secret:
      print("哇操,你是小甲鱼心里的蛔虫吗?")
      print("哼,猜中了也没有奖励")
    else:
      if guess > secret:
            print("嘿嘿,太大了~~")
      else:
            print("太小了,太小了")
      if times > 0:
            print("再试一次吧:", end=" ")
      else:
            print("机会用光咯T_T")
print("游戏结束,不玩啦~~")

baige 发表于 2020-8-26 13:52:56

本帖最后由 baige 于 2020-8-26 13:55 编辑

input返回的是一个字符串,永远不会跟int相同,所以死循环了

昨非 发表于 2020-8-26 13:54:04

不然while type(temp) != type(1):的判断永远成立,无限套娃

baige 发表于 2020-8-26 13:54:14

input返回的是一个字符串,永远不会跟int相同,所以死循环了

yhhpf 发表于 2020-8-26 13:58:18

本帖最后由 yhhpf 于 2020-8-26 13:59 编辑

import random
times = 3
secret = random.randint(1,10)
print('---------------------猜数字小游戏----------------')
guess = 0
temp = int(input("请输入一个整数:"))                     #修改
while type(temp) != type(1):
    print("抱歉,输入不合法,", end='')
    temmp = input("请输入一个整数:")
while (guess != secret) and (times > 0):
    #temp = input()                                    #修改删除这段
    guess = int(temp)
    times = times - 1
    if guess == secret:
      print("哇操,你是小甲鱼心里的蛔虫吗?")
      print("哼,猜中了也没有奖励")
    else:
      if guess > secret:
            print("嘿嘿,太大了~~")
      else:
            print("太小了,太小了")
      if times > 0:
            print("再试一次吧:", end=" ")
      else:
            print("机会用光咯T_T")
      temp = input()                                  #增加这段
print("游戏结束,不玩啦~~")
按你的思路给你改了下。

第1个错误,没给temp赋值为int格式,所以第一个while判断时类型永远不会相同。
第二个错误,判断大小时直接先让用户继续输入,应该是错误之后才输入

ID花花花 发表于 2020-8-26 14:03:04

yhhpf 发表于 2020-8-26 13:58
按你的思路给你改了下。

第1个错误,没给temp赋值为int格式,所以第一个while判断时类型永远不会相同 ...

谢谢

ID花花花 发表于 2020-8-26 14:03:38

昨非 发表于 2020-8-26 13:52


感谢
页: [1]
查看完整版本: 跪求 大佬解惑