鱼C论坛

 找回密码
 立即注册
查看: 2123|回复: 6

[已解决]While循环里面套while循环

[复制链接]
发表于 2021-4-5 15:50:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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

使用道具 举报

发表于 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("游戏结束,不玩啦^_^")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-5 16:08:11 | 显示全部楼层

你发给我的代码里第12行,他是直接让我‘‘哎呀,猜错了,重新输入”,我想要他问我“是否要再尝试一遍”怎么做呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

你的意思是加个是否继续猜的判断?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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("游戏结束,不玩啦^_^")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-5 16:29:27 | 显示全部楼层
懂了懂了,感谢大佬们,我一直想着while了,没想到if也可以回到最初的答案,感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 03:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表