明明已经设定好循环次数为3了,为什么循环次数还是大于3?
本帖最后由 猪猪以都都 于 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?求助~~~~~~~~~~~{:10_266:} 本帖最后由 歌者文明清理员 于 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)用下划线
使用下划线 _ 作为循环变量名是一种常见的约定。在这里,我们使用下划线来表示一个占位符变量,意味着循环变量的值并不会在循环体内被使用。这是因为在这个程序中,我们只关心循环的次数,而不关心循环变量的具体值。
使用下划线 _ 作为循环变量名有以下几个优点:
[*]明确表达出我们不关心循环变量的值,只关心循环次数。
[*]避免了创建一个没有用途的变量,提高了代码的可读性。
[*]有助于消除循环变量可能对程序其他部分造成的混淆。
因此,在这段代码中,使用下划线 _ 作为循环变量名是为了强调我们只关心循环的次数,而不需要使用实际的循环变量值。当然,你也可以选择其他的变量名,只要能够清晰地表达出循环的次数即可。 歌者文明清理员 发表于 2023-6-27 16:36
占楼
缩进有问题{:10_266:} 歌者文明清理员 发表于 2023-6-27 16:36
你好!在这段代码中,虽然设定了循环次数为3,但是循环的起点并没有在主函数game()的开头,而是在while Tru ...
怎么删帖555 歌者文明清理员 发表于 2023-6-27 16:36
你好!在这段代码中,虽然设定了循环次数为3,但是循环的起点并没有在主函数game()的开头,而是在while Tru ...
缩进有问题{:10_266:} 歌者文明清理员 发表于 2023-6-27 16:36
你好!在这段代码中,虽然设定了循环次数为3,但是循环的起点并没有在主函数game()的开头,而是在while Tru ...
GPT?"希望这能解决你的问题!如有需要,请随时提问。" 歌者文明清理员 发表于 2023-6-27 16:36
你好!在这段代码中,虽然设定了循环次数为3,但是循环的起点并没有在主函数game()的开头,而是在while Tru ...
以后别用GPT了awa,还是错的(doge 猪猪以都都 发表于 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
可以就给个最佳答案呗{:10_254:}
猪猪以都都 发表于 2023-6-27 16:42
以后别用GPT了awa,还是错的(doge
az 歌者文明清理员 发表于 2023-6-27 16:42
az
呼,好险
[我的头像] sfqxx 发表于 2023-6-27 16:42
确实是缩进的问题,帮你改了一下,试试对不对
满足满足 猪猪以都都 发表于 2023-6-27 16:44
满足满足
OK{:10_279:} sfqxx 发表于 2023-6-27 16:45
OK
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh 歌者文明清理员 发表于 2023-6-27 16:47
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
awa
页:
[1]