博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python的and和or优先级
阅读量:4931 次
发布时间:2019-06-11

本文共 896 字,大约阅读时间需要 2 分钟。

原题

输入一年份,判断该年份是否是闰年并输出结果。(编程题)

注:凡符合下面两个条件之一的年份是闰年。 (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"。

转载于:https://www.cnblogs.com/irockcode/p/8662957.html

你可能感兴趣的文章
day029socketserver模块实现并发,线程、 ftp上传或下载,打印进度条
查看>>
专注就要勇于对其它1000个好主意说“不”
查看>>
nfc相关
查看>>
Python爬虫基础(四)Requests库的使用
查看>>
linux ls和 ll 命令
查看>>
Python 类型强制转换
查看>>
Android中的常见时区
查看>>
BlockingQueue深入分析
查看>>
Oracle一次可以查询多个表的结果的方法
查看>>
JavaScript事件对象与事件的委托
查看>>
NHibernate.3.0.Cookbook第三章第10节的翻译
查看>>
两个数据库比较 对比视图存储过程及表结构差异增加外键差异
查看>>
zend framwork黑箱测试
查看>>
51nod 1693 水群(神奇的最短路!)
查看>>
ajax提交表单+前端验证小示例
查看>>
linux系统上项目部署
查看>>
Server.MapPath 出现未将对象引用设置到对象的实例
查看>>
underscore.js学习笔记
查看>>
Guava API学习之Preconditions优雅的检验参数 编辑
查看>>
HDU 5656 CA Loves GCD (数论DP)
查看>>