Если elif оператор с & дает неожиданный вывод

Я пытаюсь выучить Python, и, пытаясь решить эту викторину на веб-сайте, я получаю странную ошибку, которая заключается в том, что утверждение не выполняется для 2-го параметра, в то время как оператор if elif корректен и выдаст правильный вывод (но это дает неправильный неожиданный вывод)

Ошибка:

"C:\Program Files\Python36\python.exe" C:/Users/.../PycharmProjects/pythonSnakegame/snakeGame.py
Fizz Buzz
Traceback (most recent call last):
Fizz Buzz
  File "C:/Users/..../PycharmProjects/pythonSnakegame/snakeGame.py", line 28, in <module>
    assert checkio(6) == "Fizz", "6 is divisible by 3"
AssertionError: 6 is divisible by 3

Process finished with exit code 1

def checkio(number):
    # Your code here
    # It's main function. Don't remove this function
    # It's using for auto-testing and must return a result for check.
    if number % 3 == 0 & number % 5 == 0:
        result = "Fizz Buzz"
    elif number % 3 == 0:
        result = "Fizz"
    elif number % 5 == 0:
        result = "Buzz"

    # replace this for solution
    print (result)
    return result
    # return str(number)


# Some hints:
# Convert a number in the string with str(n)

# These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
    assert checkio(15) == "Fizz Buzz", "15 is divisible by 3 and 5"
    assert checkio(6) == "Fizz", "6 is divisible by 3"
    assert checkio(5) == "Buzz", "5 is divisible by 5"
    assert checkio(7) == "7", "7 is not divisible by 3 or 5"
    print("Coding complete? Click 'Check' to review your tests and earn cool rewards!")

Спасибо за вашу помощь

1 ответ

Решение

& оператор для бинарных операций, вы должны использовать and (логический оператор) вместо.

Я продолжал задаваться вопросом, почему это не работает

& отключает проверку работы модуля для 5так что в основном все делится на 3 где True, проверьте этот выходной тест:

number = 12
number % 3 == 0 & number % 5 == 0
True
Другие вопросы по тегам