Python nesting elif, для - PullRequest
       33

Python nesting elif, для

1 голос
/ 18 июня 2020

Можно ли написать для внутри elif? У меня много операторов elif, и я хочу, чтобы мой последний оператор elif имел для внутри elif, как писать вложенный elif в PYTHON

def victory(see,z):
if see[0]==see[1]==see[2]==z:
        print(z,"wins")
    elif see[3]==see[4]==see[5]==z:
        print(z,"wins")
    elif see[6]==see[7]==see[8]==z:
        print(z,"wins")
    elif see[0]==see[3]==see[6]==z:
        print(z,"wins")
    elif see[1]==see[4]==see[7]==z:
        print(z,"wins")
    elif see[2]==see[5]==see[8]==z:
        print(z,"wins")
    elif see[0]==see[4]==see[8]==z:
        print(z,"wins")
    elif see[2]==see[4]==see[6]==z:
        print(z,"wins")
    elif for blank in see if blank=="_" or"__"or"___":
            print("game not finished")

Ответы [ 3 ]

0 голосов
/ 18 июня 2020

Думаю, вам нужно понимание списка:

elif [blank for blank in see if blank in ["_", “__", “___"] ]:
    print("some text")

Если понимание списка заканчивается ничем, это считается «ложным» и elif не берется.

0 голосов
/ 18 июня 2020

Если вы проверяете определенные значения в списке, вы можете использовать in вместо цикла по всему списку:

if see[0]==see[1]==see[2]==z:
    print(z,"wins")
elif see[3]==see[4]==see[5]==z:
    print(z,"wins")
# ... lots of other elifs here
elif "_" in see or "__" in see or "___" in see:
    print("game not finished")
0 голосов
/ 18 июня 2020

Так как это ваш последний elif, измените его на else и создайте for l oop внутри блока else. Вы можете проверить свои условия внутри for l oop then.

Кроме того, вы можете попробовать оператор switch, например код, вместо многочисленных операторов if elif else

else: [print('game not finished') for blank in see if <condition>]

...