鱼C论坛

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

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

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

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

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

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

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

  5.     while number > 0:
  6.         try:
  7.             guess = int(input("猜一猜我心里在想什么数字,数字1~10:"))
  8.         except:
  9.             print('输入的要是一个整数!再试一次!')
  10.             continue
  11.         if guess > 10 or guess == 0:
  12.             print('输入要是一个1~10的数字!再试一次!')
  13.             continue
  14.         if guess == awa:
  15.             print("你是我心里的蛔虫吧?这么厉害???")
  16.             print("正确答案就是",awa,",666!")
  17.             break
  18.         else:
  19.             if guess < awa:
  20.                 print("太小了~")
  21.             else:
  22.                 print("太大了~")
  23.                 number = number - 1
  24.                 if number == 0 and awa != guess:
  25.                     print('给你三次机会都不过???正确答案是:',awa,"!")

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

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


  1. import random as ag

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

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

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


可以就给个最佳答案呗
小甲鱼最新课程 -> https://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。示例如下:

  1. import random as ag

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

  5.     while number > 0:
  6.         try:
  7.             guess = int(input("猜一猜我心里在想什么数字,数字1~10:"))
  8.         except:
  9.             print('输入的要是一个整数!再试一次!')
  10.             continue
  11.         if guess > 10 or guess == 0:
  12.             print('输入要是一个1~10的数字!再试一次!')
  13.             continue
  14.         if guess == awa:
  15.             print("你是我心里的蛔虫吧?这么厉害???")
  16.             print("正确答案就是",awa,",666!")
  17.             break
  18.         else:
  19.             if guess < awa:
  20.                 print("太小了~")
  21.             else:
  22.                 print("太大了~")
  23.                 number = number - 1
  24.                 if number == 0 and awa != guess:
  25.                     print('给你三次机会都不过???正确答案是:',awa,"!")

  26. for _ in range(3):
  27.     game()
  28.     restart = input("你是否要重新开始小游戏?(是/否):")
  29.     if restart.lower() != "是":
  30.         break
复制代码

这样,game()函数就会被执行3次,然后程序将询问用户是否要重新开始游戏。希望这能解决你的问题!如有需要,请随时提问。

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

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

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

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

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

使用道具 举报

 楼主| 发表于 2023-6-27 16:38:19 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

怎么删帖555
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

缩进有问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

GPT?"希望这能解决你的问题!如有需要,请随时提问。"
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

以后别用GPT了awa,还是错的(doge
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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


  1. import random as ag

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

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

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


可以就给个最佳答案呗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

az
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

呼,好险

[我的头像]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

满足满足
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-27 16:45:15 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

awa
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-27 21:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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