Python - синтаксическая ошибка elif - Что с этим не так? - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь написать функцию, которая принимает список и возвращает true, если он содержит числа 0,0,7 в этом порядке. Когда я запускаю этот код:

def prob11(abc):
    if 7 and 0 and 0 not in abc:
        return False
    x = abc.index(0)
    elif 7 and 0 and 0 in abc and abc[x + 1] == 0 and abc[x + 2] == 7:
        return True
    else:
        return False

я получаю эту ошибку:

File "<ipython-input-12-e2879221a9bf>", line 5
elif 7 and 0 and 0 in abc and abc[x + 1] == 0 and abc[x + 2] == 7:
   ^
SyntaxError: invalid syntax

Что не так с моим утверждением elif?

Ответы [ 2 ]

0 голосов
/ 11 апреля 2020

Я не уверен, что это будет лучший / быстрый способ решить вашу проблему, но это сработало для меня:

def checker(abc):
    if 7 or 0 in abc:
        print('yes1')
        if all(x in abc for x in [0, 0, 7]):
            print('yes2')
            if sorted(abc)==abc:
                print('yes3')

abc=[0,0,7]
v=checker(abc)

Ваш код не будет работать, потому что in и and не будет работать таким образом. Я не уверен почему. Поэтому вместо этого вам нужно использовать функцию all.

0 голосов
/ 11 апреля 2020

Вы можете попробовать это, надеюсь, это полезно.

def prob11(abc):
    if 7 in abc and abc.count(0) >= 2:
        return True
    else:
        return False

print(prob11([0, 0, 7]))
# print True

print(prob11([0, 0, 6]))
#print False
...