gpt4 book ai didi

python - 我可以创建一个函数来打破 python 中的 while 循环吗?

转载 作者:行者123 更新时间:2023-11-30 22:20:13 25 4
gpt4 key购买 nike

我正在用 python 编写一个程序来模拟掷硬币或掷骰子。硬币和骰子使用 while 循环为用户提供再次滚动或翻转的选项,示例如下:

def d4():
d4ing = True
while d4ing:
print(random.randint(1,4))
done = input("""would you like to roll again? Type y to roll again,
type d to roll a dice, or type anything else to exit:""")
if done == "y":
continue
elif done == "d":
break
else:
print("thank you for using my coin/dice simulator")
sys.exit("goodbye")

我遇到的问题是,我想将每一行从完成开始,并将其放入它自己的函数中,我可以将其插入到每个函数中,而不是像这样一次又一次地输入整个内容。

def d4ing():
d4ing = True
while d4ing:
print(random.randint(1,4))
rerolling()

def rerolling():
done = input("""would you like to roll again? Type y to roll again, type d to roll a dice, or type anything else to exit:""")
if done == "y":
continue
elif done == "d":
break else:
print("thank you for using my coin/dice simulator")
sys.exit("goodbye")

我收到的错误消息:

SyntaxError: 'continue' not properly in loop

最佳答案

breakcontinue 必须位于其当前范围内的循环中。您无法从函数内部中断上述范围内的循环。以下是引发 SyntaxError: 'break' Outside Loop 错误的一般示例。 继续也是如此。

def break_up():
break # This is a syntax error

while True:
break_up()

不过,这不是问题,因为您可以使函数返回一个值,并在上部作用域中有条件break

但在您的具体示例中,您还可以通过将返回值分配给 d4ing 来返回是否要重新滚动。

def d4():
d4ing = True
while d4ing:
print(random.randint(1,4))
d4ing = rerolling()

def rerolling():
done = input("Would you like to roll again?")
if done == "y":
return True
elif done == "d":
return False
else:
print("thank you for using my coin/dice simulator")
sys.exit("goodbye")

关于python - 我可以创建一个函数来打破 python 中的 while 循环吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48898481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com