zoukankan      html  css  js  c++  java
  • python的and和or优先级

    原题

    输入一年份,判断该年份是否是闰年并输出结果。(编程题)
    注:凡符合下面两个条件之一的年份是闰年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。

    答案:
    def get_year():
    year = int(input("请输入年份:"))
    if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
    print("%s 年是闰年" % year)
    else:
    print("%s 年不是闰年" % year)

    get_year()

    =============================================

    疑问

    这里if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:我自己是认为不能写成一条语句,不能执行,于是了解了一下and与or的关系

    答疑

    对python而言

    其一, 在不加括号时候, and优先级大于or
    其二, x or y 的值只可能是x或y. x为真就是x, x为假就是y
    第三, x and y 的值只可能是x或y. x为真就是y, x为假就是x

    例一:
    对于, 1 or 5 and 4: 先算5 and 4, 5为真, 值为4. 再算1 or 4, 1 为真,值为1
    对于, (1 or 5) and 4: 先算1 or 5, 1为真, 值为1. 再算1 and 4, 1为真,值为4

    例二:
    a = "heaven"
    b = "hell"
    c = True and a or b
    print(c)
    d = False and a or b
    print(d)

    输出:
    heaven
    hell

    解析:
    表达式从左往右运算,1和"heaven"做and的结果是"heaven",再与"hell"做or的结果是"heaven";0和"heaven"做and的结果是0,再与"hell"做or的结果是"hell"。

  • 相关阅读:
    基于方便使用的所见即所得架构方式
    linux操作笔记
    TreeView获取目录下的所有文件
    treeList获取目录下的所有文件
    简单字符串处理 hdu2532 Engine
    简单字符串处理
    Luogu P1648 看守
    【深入理解Linux内核架构】第3章:内存管理
    【深入理解Linux内核架构】6.6 资源分配
    题解 P1888 【三角函数】
  • 原文地址:https://www.cnblogs.com/irockcode/p/8662957.html
Copyright © 2011-2022 走看看