我尝试制作一个简单的骰子滚动程序,我可以得到骰子滚动'但是我无法阻止它,它只会在你输入任何内容时保留。我试着添加它,所以如果你说'没有'或者' n'它将返回并像往常一样转到我的其他功能。我说返回是因为继续我的其他代码很重要。谢谢。
import random
min = 1
def rolling6():
roll_more = "yes"
while roll_more == "yes" or roll_more =="y":
max = 6
print("Rolling the dices...")
print("The values are...")
print(random.randint(min, max))
print(random.randint(min, max))
roll = input("Roll the die again? ")
if roll_more == "no" or roll_more == "n":
return
#roll_again = "yes"
#while roll_again == "yes" or roll_again =="y":
# print("Rolling the dices...")
# print("The values are...")
# print(random.randint(min, 6))
# print(random.randint(min, 6))
# roll_again = input("Roll the die again? ")
#if roll_again == "no" or roll_again == "n":
# return
x = input("Use six sided die? ")
while x == "yes" or x =="y":
rolling6()
答案 0 :(得分:1)
您正在写信至roll
而不是roll_more
,因此您始终会检查常数"是"。
此外,您的x
和roll_more
变量不会保留您期望的值。首先,你输入"是"进入循环,以便rolling6
被调用。然后,进入rolling6循环。当您通过输入" no"退出时,退出到外循环,读取x
,其仍具有值"是" (因为你从来没有在任何地方覆盖它),这意味着你不会突破那个循环,并且你再次回到rolling6
。
您可能希望将roll
更改为roll_more
并将while x == "yes" or x =="y":
更改为if x == "yes" or x =="y":
。
此外,您的if roll_more == "no" or roll_more == "n": return
是多余的,因为该语句后面没有代码。