鱼C论坛

 找回密码
 立即注册
查看: 1899|回复: 13

[已解决]明明已经设定好循环次数为3了,为什么循环次数还是大于3?

[复制链接]
发表于 2023-6-27 16:35:33 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 猪猪以都都 于 2023-6-27 16:42 编辑
import random as ag

def game():
    number = 3
    awa = ag.randint(1,10)

    while number > 0:
        try:
            guess = int(input("猜一猜我心里在想什么数字,数字1~10:"))
        except:
            print('输入的要是一个整数!再试一次!')
            continue
        if guess > 10 or guess == 0:
            print('输入要是一个1~10的数字!再试一次!')
            continue
        if guess == awa:
            print("你是我心里的蛔虫吧?这么厉害???")
            print("正确答案就是",awa,",666!")
            break
        else:
            if guess < awa:
                print("太小了~")
            else:
                print("太大了~")
                number = number - 1
                if number == 0 and awa != guess:
                    print('给你三次机会都不过???正确答案是:',awa,"!")

while True:
    game()
    restart = input("你是否要重新开始小游戏?(是/否):")
    if restart.lower() != "是":
        break
明明已经设定好循环次数为3了,为什么循环次数还是大于3?求助~~~~~~~~~~~
最佳答案
2023-6-27 16:42:39
猪猪以都都 发表于 2023-6-27 16:41
GPT?"希望这能解决你的问题!如有需要,请随时提问。"

确实是缩进的问题,帮你改了一下,试试对不对
import random as ag

def game():
    number = 3
    awa = ag.randint(1,10)

    while number > 0:
        try:
            guess = int(input("猜一猜我心里在想什么数字,数字1~10:"))
        except:
            print('输入的要是一个整数!再试一次!')
            continue
        if guess > 10 or guess == 0:
            print('输入要是一个1~10的数字!再试一次!')
            continue
        if guess == awa:
            print("你是我心里的蛔虫吧?这么厉害???")
            print("正确答案就是",awa,",666!")
            return  # 结束当前game()函数的执行,并返回到主循环
        else:
            if guess < awa:
                print("太小了~")
            else:
               print("太大了~")
               number = number - 1
               if number == 0 and awa != guess:
                   print('给你三次机会都不过???正确答案是:',awa,"!")

while True:
    if game() is None:  # 当game()函数返回None时,说明猜中了,进入下一轮循环
        restart = input("你是否要重新开始小游戏?(是/否):")
        if restart.lower() != "是":
            break

可以就给个最佳答案呗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-27 16:36:50 | 显示全部楼层
本帖最后由 歌者文明清理员 于 2023-6-27 16:38 编辑

你好!在这段代码中,虽然设定了循环次数为3,但是循环的起点并没有在主函数game()的开头,而是在while True:后面。因此,即使game()函数内部的循环次数是3,整个程序仍然会一直重复执行game()函数直到用户选择不重新开始游戏。

如果你只想要限制game()函数的循环次数为3,你可以将game()函数放在一个for循环内,并且循环次数设置为3。示例如下:
import random as ag

def game():
    number = 3
    awa = ag.randint(1,10)

    while number > 0:
        try:
            guess = int(input("猜一猜我心里在想什么数字,数字1~10:"))
        except:
            print('输入的要是一个整数!再试一次!')
            continue
        if guess > 10 or guess == 0:
            print('输入要是一个1~10的数字!再试一次!')
            continue
        if guess == awa:
            print("你是我心里的蛔虫吧?这么厉害???")
            print("正确答案就是",awa,",666!")
            break
        else:
            if guess < awa:
                print("太小了~")
            else:
                print("太大了~")
                number = number - 1
                if number == 0 and awa != guess:
                    print('给你三次机会都不过???正确答案是:',awa,"!")

for _ in range(3):
    game()
    restart = input("你是否要重新开始小游戏?(是/否):")
    if restart.lower() != "是":
        break
这样,game()函数就会被执行3次,然后程序将询问用户是否要重新开始游戏。希望这能解决你的问题!如有需要,请随时提问。

附:为什么for _ in range(3)用下划线

使用下划线 _ 作为循环变量名是一种常见的约定。在这里,我们使用下划线来表示一个占位符变量,意味着循环变量的值并不会在循环体内被使用。这是因为在这个程序中,我们只关心循环的次数,而不关心循环变量的具体值。

使用下划线 _ 作为循环变量名有以下几个优点:

  • 明确表达出我们不关心循环变量的值,只关心循环次数。
  • 避免了创建一个没有用途的变量,提高了代码的可读性。
  • 有助于消除循环变量可能对程序其他部分造成的混淆。

因此,在这段代码中,使用下划线 _ 作为循环变量名是为了强调我们只关心循环的次数,而不需要使用实际的循环变量值。当然,你也可以选择其他的变量名,只要能够清晰地表达出循环的次数即可。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-27 16:38:19 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-27 16:38:51 | 显示全部楼层
歌者文明清理员 发表于 2023-6-27 16:36
你好!在这段代码中,虽然设定了循环次数为3,但是循环的起点并没有在主函数game()的开头,而是在while Tru ...

怎么删帖555
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-27 16:39:24 | 显示全部楼层
歌者文明清理员 发表于 2023-6-27 16:36
你好!在这段代码中,虽然设定了循环次数为3,但是循环的起点并没有在主函数game()的开头,而是在while Tru ...

缩进有问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-27 16:41:05 | 显示全部楼层
歌者文明清理员 发表于 2023-6-27 16:36
你好!在这段代码中,虽然设定了循环次数为3,但是循环的起点并没有在主函数game()的开头,而是在while Tru ...

GPT?"希望这能解决你的问题!如有需要,请随时提问。"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-27 16:42:07 | 显示全部楼层
歌者文明清理员 发表于 2023-6-27 16:36
你好!在这段代码中,虽然设定了循环次数为3,但是循环的起点并没有在主函数game()的开头,而是在while Tru ...

以后别用GPT了awa,还是错的(doge
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-27 16:42:39 | 显示全部楼层    本楼为最佳答案   
猪猪以都都 发表于 2023-6-27 16:41
GPT?"希望这能解决你的问题!如有需要,请随时提问。"

确实是缩进的问题,帮你改了一下,试试对不对
import random as ag

def game():
    number = 3
    awa = ag.randint(1,10)

    while number > 0:
        try:
            guess = int(input("猜一猜我心里在想什么数字,数字1~10:"))
        except:
            print('输入的要是一个整数!再试一次!')
            continue
        if guess > 10 or guess == 0:
            print('输入要是一个1~10的数字!再试一次!')
            continue
        if guess == awa:
            print("你是我心里的蛔虫吧?这么厉害???")
            print("正确答案就是",awa,",666!")
            return  # 结束当前game()函数的执行,并返回到主循环
        else:
            if guess < awa:
                print("太小了~")
            else:
               print("太大了~")
               number = number - 1
               if number == 0 and awa != guess:
                   print('给你三次机会都不过???正确答案是:',awa,"!")

while True:
    if game() is None:  # 当game()函数返回None时,说明猜中了,进入下一轮循环
        restart = input("你是否要重新开始小游戏?(是/否):")
        if restart.lower() != "是":
            break

可以就给个最佳答案呗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-27 16:42:48 | 显示全部楼层
猪猪以都都 发表于 2023-6-27 16:42
以后别用GPT了awa,还是错的(doge

az
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-27 16:44:36 | 显示全部楼层

呼,好险

[我的头像]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-27 16:44:43 | 显示全部楼层
sfqxx 发表于 2023-6-27 16:42
确实是缩进的问题,帮你改了一下,试试对不对

满足满足
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-27 16:45:15 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-27 16:47:42 | 显示全部楼层

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-28 12:53:53 | 显示全部楼层
歌者文明清理员 发表于 2023-6-27 16:47
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

awa
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 15:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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