AslanWu 发表于 2021-4-5 15:50:17

While循环里面套while循环

本帖最后由 AslanWu 于 2021-4-5 16:32 编辑

我想做一个猜数字的游戏,就类似于小甲鱼视频里那种,只不过我想做的是首先询问“猜猜我心里的数字”,在猜错之后会询问 “猜错了,是否需要再试一次”,如果回答是“是”,就返回第一个问题“猜猜我心里的数字”,如果回答“否”就结束程序,如果回答的是别的答案就一直重复问“猜错了,是否需要再试一次”。
整个问题我自己想的思路是while循环里面套一个while循环,但我想了半天还是没理清思路,能有大佬帮帮我吗,给个例子

昨非 发表于 2021-4-5 16:01:25

import random

secret = random.randint(1,10)
try:   
    print('------------------我爱鱼C工作室------------------')
    temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
    guess = int(temp)
except (ValueError,EOFError,KeyboardInterrupt):
    print('输入错误!')
    guess = secret
while guess != secret:
    temp = input("哎呀,猜错了,请重新输入吧:")
    guess = int(temp)
    if guess == secret:
      print("我草,你是小甲鱼心里的蛔虫吗?!")
      print("哼,猜中了也没有奖励!")
    else:
      if guess > secret:
            print("哥,大了大了~~~")
      else:
            print("嘿,小了,小了~~~")
print("游戏结束,不玩啦^_^")

AslanWu 发表于 2021-4-5 16:08:11

昨非 发表于 2021-4-5 16:01


你发给我的代码里第12行,他是直接让我‘‘哎呀,猜错了,重新输入”,我想要他问我“是否要再尝试一遍”怎么做呢

昨非 发表于 2021-4-5 16:18:07

AslanWu 发表于 2021-4-5 16:08
你发给我的代码里第12行,他是直接让我‘‘哎呀,猜错了,重新输入”,我想要他问我“是否要再尝试一遍” ...

你的意思是加个是否继续猜的判断?

逃兵 发表于 2021-4-5 16:23:43

import random

go_on = '玩'

while go_on == '玩':

    num = random.randint(0,10)

    guess = input('猜猜我心里的数字:')

    while not guess.isdigit():
      guess = input('必须输入纯数字,重新输入吧:')

    guess = int(guess)

    while guess != num:
      switch = input('是否需要再试一次:')
      if switch == '是':
            guess = input('猜猜我心里的数字:')
            while not guess.isdigit():
                guess = input('必须输入纯数字,重新输入吧:')
            guess = int(guess)
      elif switch == '否':
            break
      else:
            switch = input('是否需要再试一次:')
    else:
      print('猜对了,真厉害!')

    go_on = input('还玩吗(玩,不玩了):')

    while go_on != '玩' and go_on != '不玩了':
      go_on = input('还玩吗(玩,不玩了):')

    if go_on == '不玩了':
      break

qq1151985918 发表于 2021-4-5 16:24:47

本帖最后由 qq1151985918 于 2021-4-5 16:26 编辑

num = 8

while True:
    guess = int(input("猜猜我心里的数字:"))
    if guess != num:
      isAgain = input("猜错了,是否需要再试一次?")
      while isAgain not in ["是","否"]:
            isAgain = input("猜错了,是否需要再试一次?")
      if isAgain == "是":
            continue
      else:
            break
    else:
      print("我草,你是小甲鱼心里的蛔虫吗?!")
      break
print("游戏结束,不玩啦^_^")

AslanWu 发表于 2021-4-5 16:29:27

懂了懂了,感谢大佬们,我一直想着while了,没想到if也可以回到最初的答案,感谢
页: [1]
查看完整版本: While循环里面套while循环