局部变量how to access in other ifsling(python)

2024-09-30 06:22:07 发布

您现在位置:Python中文网/ 问答频道 /正文

很抱歉没有用英文印刷,但那没用。你知道吗

我有三个菜单选项(MenyVal)。我不想在选项1之前选择选项2和3。因此,我尝试了“block”,它应该使得在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)

Tags: inputif选项blockprintnamnangeprotokoll
1条回答
网友
1楼 · 发布于 2024-09-30 06:22:07

blockwhile循环的每个迭代中被重新初始化为0。要避免这种情况,只需在循环之前定义它:

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...

相关问题 更多 >

    热门问题