如果带有 & 的 elif 语句给出了意外的输出
if elif statement with & is giving unexpected output
我正在尝试学习 python & 在网站上尝试解决此测验时,我收到一个奇怪的错误,即第二个参数的断言失败,而 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!")
感谢您的帮助
&
运算符用于二进制操作,您应该使用and
(布尔值运算符) .
I kept wondering why it was not working
&
正在禁用 5
的模块操作检查,所以在得到 True
的地方基本上都可以被 3 整除,检查这个输出测试:
number = 12
number % 3 == 0 & number % 5 == 0
True
我正在尝试学习 python & 在网站上尝试解决此测验时,我收到一个奇怪的错误,即第二个参数的断言失败,而 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!")
感谢您的帮助
&
运算符用于二进制操作,您应该使用and
(布尔值运算符) .
I kept wondering why it was not working
&
正在禁用 5
的模块操作检查,所以在得到 True
的地方基本上都可以被 3 整除,检查这个输出测试:
number = 12
number % 3 == 0 & number % 5 == 0
True