首页 > 解决方案 > Python3 中的条件语句

问题描述

使用给定的代码,对于输入 2100,输出应为 False。但函数返回 True

def is_leap(year):
    if (year%4==0 & year%100==0 & year%400==0):
        leap = True
    else:
        leap = False

    # Write your logic here

    return leap

year = int(input())
print(is_leap(year))

当我将代码更改为(条件结构中的更改:更改(year%4==0 & year%100==0 & year%400==0)((year%4==0 & year%100==0) & (year%400==0)))时:它返回 False(这是预期的)。为什么会这样?

def is_leap(year):
    if ((year%4==0 & year%100==0) & (year%400==0)):
        leap = True
    else:
        leap = False

    # Write your logic here

    return leap

year = int(input())
print(is_leap(year))

标签: python-3.x

解决方案


&是按位与,and而是逻辑与。

False 计算为 0,True 计算为 1。因此,执行按位和布尔运算符是合法的,但可能不会得到正确的答案。


推荐阅读