Python
支持多种运算符,下表大致按照优先级从高到低的顺序列出了所有的运算符,运算符的优先级指的是多个运算符同时出现时,先做什么运算然后再做什么运算。
运算符 | 描述 | |
---|---|---|
[] [:] |
下标,切片 | |
** |
指数 | |
~ + - |
按位取反, 正负号 | |
* / % // |
乘,除,取余,取整 | |
+ - |
加,减 | |
>> << |
右移,左移 | |
& |
按位与 | |
^ `\ |
` | 按位异或,按位或 |
<= < > >= |
小于等于,小于,大于,大于等于 | |
== != |
等于,不等于 | |
is is not |
身份运算符 | |
in not in |
成员运算符 | |
not or and |
逻辑运算符 | |
= += -= *= /= %= //= **= &= ` |
=`^= >>= <<= |
(复合)赋值运算符 |
下面的例子演示了赋值运算符和复合赋值运算符的使用。
a = 10
b = 3
a += b # 相当于:a = a + b
a *= a + 2 # 相当于:a = a * (a + 2)
print(a) # 想想这里会输出什么
下面的例子演示了比较运算符(关系运算符)、逻辑运算符和身份运算符的使用。
flag0 = 1 == 1
flag1 = 3 > 2
flag2 = 2 < 1
flag3 = flag1 and flag2
flag4 = flag1 or flag2
flag5 = not (1 != 2)
print('flag0 =', flag0) # flag0 = True
print('flag1 =', flag1) # flag1 = True
print('flag2 =', flag2) # flag2 = False
print('flag3 =', flag3) # flag3 = False
print('flag4 =', flag4) # flag4 = True
print('flag5 =', flag5) # flag5 = False
print(flag1 is True) # True
print(flag2 is not False) # False
练习:输入年份判断是不是闰年
闰年说明:四年一闰,百年不闰,400年再闰
year = int(input('请输入年份:'))
is_leap = (year % 4 == 0 and year % 100 != 0) or year % 400 == 0
print(is_leap)
Note
- and 、or 和not同时存在的时候,先算括号,再算not,然后算and,最后算or
- or两个为假才是假,and两个为真才是真
and和or左右两边数字的取值
Note x和y分别代表的是运算符左右两边的值, or中出现0时,不能取0, 如果没有0,取左边的值,and中出现0时必须取0,如果没有0,则取右边的值。True在python中相当于1,False相当于0。
print(0 or 1)
print(1 or 2)
print(2 or 3)
print(3 or 4)
print(4 or 5)
print(5 or 6)
print(6 or 7)
# or 左右两边的数字如果为x、y,如果x==0, 则取y值,如果x!=0, 则取x值
#结果为:
#1、2、3、4、5、6
print(0 and 1)
print(2 and 3)
print(3 and 4)
print(4 and 5)
print(5 and 6)
print(6 and 7)
# and 左右两边数字如果为x、y, 如果x==0, 则取x, 如果x!=0,则取y值
# 结果为:0、3、4、5、6、7
print(1 or 0 or 3 or 0 or 5)
# 结果为1
print(2>3 and 5)
# 结果为false