抱歉不打印英文,但这没有用。
我有三个菜单选项(MenyVal)。我不希望在选项1之前选择选项2和3。因此我尝试使用“阻止”,这使得在1之前无法选择2或3。
问题在于我理解它是本地的,并且在选项1之后再次变为0,这使您无法在选项1之后创建选项2或3。
当用户转到选项2和3时,如何保持块1的值(在选项1之后)? 我不能有全局变量。
while Korning == "1":
Menyrader()
MenyVal= input("Ange ditt menyval med en siffra:")
block = 0
if MenyVal== "1":
try:
AntalSpelare= input("Ange hur många spelare som ska delta:")
VarvTak= int(AntalSpelare) * 16
AntalVarv = 0
protokoll, spelarnamn = SkapaSpelare(momentlist, AntalSpelare)
block = 1
except:
print("Felaktig inmatning, försök igen.")
elif MenyVal== "2":
#print(block)
if block != 0:
GePoang(protokoll, momentlist)
for namn in protokoll:
namn.SummeraForstaSex()
namn.SummeraAlla()
AntalVarv += 1
Utskrift(protokoll, momentlist, spelarnamn)
TestaStopp(VarvTak, AntalVarv)
else:
print("Du måste först lägga till spelare")
elif MenyVal== "3":
if block != 0:
Stryka(protokoll)
for namn in protokoll:
namn.SummeraForstaSex()
namn.SummeraAlla()
AntalVarv += 1
Utskrift(protokoll, momentlist, spelarnamn)
TestaStopp(VarvTak, AntalVarv)
答案 0 :(得分:0)
block
循环的每次迭代中, 0
被重新初始化为while
。要避免这种情况,只需在>>循环之前将其定义为:
block = 0
while Korning == "1":
Menyrader()
MenyVal= input("Ange ditt menyval med en siffra:")
if MenyVal== "1":
try:
AntalSpelare= input("Ange hur många spelare som ska delta:")
VarvTak= int(AntalSpelare) * 16
AntalVarv = 0
protokoll, spelarnamn = SkapaSpelare(momentlist, AntalSpelare)
block = 1
except:
print("Felaktig inmatning, försök igen.")
-- Rest of the code here...