# 逻辑运算符:and(逻辑与运算)、or(逻辑或运算)、not(逻辑非运算)
# 1. and(逻辑与运算)
"""
1)应用场景:用于连接需要同时成立的两个条件,相当于生活中的'并且'
2)运算规则:条件1 and 条件2 - 如果两个都是True结果就是True,只要有一个是False结果就是False
True and True - True
True and False - False
False and True - False
False and False - False
"""
# 案例1:写程序判断num是否是一个大于10的偶数
num = 20
# 条件1:num是否大于10 - num > 10
# 条件2:num是否是偶数 - num % 2 == 0
print('num是否是一个大于10的偶数:', num > 10 and num % 2 == 0)
# 练习:写程序判断num是否能同时被3和7整除
num = 14
# num是否能被3整除: num % 3 == 0
# num是否能被7整除: num % 7 == 0
print('num是否能同时被3和7整除:', num % 3 == 0 and num % 7 == 0)
print('------------------------------------------------------------------------------------')
# 2. or(逻辑或)
"""
1)应用场景:如果要求两个条件中只要有一个条件成立就行,就把这个两个条件用or连接,相当于生活中'或者'
2)运算规则:条件1 or 条件2 - 只要一个条件是True结果就是True,两个都是False结果就是False
"""
# 练习:写程序判断指定的年份是否是闰年
year = 1990
# 闰年分为世纪闰年(能被400整除的年)和普通闰年(能被4整除但是不能被100整除的年)两种。
# 世纪闰年:year % 400 == 0
# 普通闰年:year % 4 == 0 and year % 100 != 0
print('是否是闰年:', (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0))
print('------------------------------------------------------------------------------------')
# 4. not(逻辑非运算)
"""
1)应用场景:对一个条件进行否定,相当于生活中的'不'
2)运算规则: not 条件 - True变False, False变True
"""
# 案例: 判断age是否不大于18
age = 19
print(not age > 18)
print(age <= 18)
# 案例:判断num是否不能被3整除
num = 19
print(not num % 3 == 0)
print(num % 3 != 0)
# 案例:判断year对应的年份是否不是闰年
print(not ((year % 400 == 0) or (year % 4 == 0 and year % 100 != 0)))