Python的运算符与表达式

什么是表达式?

由变量、常量和运算符组成的式子。

算术运算符和算术运算表达式

算术运算符:
+(加) -(减)* (乘) /(除) %(取模) **(求幂) //(取整)
算术运算表达式:1+1 a/3 4%5,等等。功能是进行相关符号的数学运算,
值为相关的数学运算结果。

num1 = 30
num2 = 50
print(num1 + num2)

赋值运算符和赋值运算表达式

赋值运算符主要是 “=”
赋值运算表达式格式:变量 = 表达式
功能:计算了等号右侧“表达式”的值,并赋值给等号左侧的变量
值:赋值结束后变量的值

num1 = 80
num2 = num1 + 30

复合运算符

复合运算符主要有:
+= : a += b 相当于 a = a + b
-= : a -= b 相当于 a = a - b
= : a = b 相当于 a = a * b
= : a = b 相当于 a = a ** b
/= : a /= b 相当于 a = a / b
%= : a %= b 相当于 a = a % b
//= : a //= b 相当于 a = a // b

位运算符

按位运算符是把数字看做二进制数来进行计算

“&” 按位与运算符,相应的位数都为1,则该位的结果为1,否则为0

#  4的二进制数为100,5的二进制数为101。
print(4 & 5)

输出的结果为:4

“|” 按位或运算符,两个二进制位有一个位为1,结果为1,否则为0

#  4的二进制数为100,5的二进制数为101
print( 4 | 5)

输出的结果为:5

“^” 按位异或运算符,二进制的两位相异时,结果为1

#  4的二进制数为100,5的二进制数为101
print( 4 ^ 5)

输出结果为:1

“~” 按位取反运算符,每个二进制数据按位取反,1变0,0变1

#  6的二进制数为110
print(~6)

输出结果为:-7

“<<” 左移动运算符,各二进制位全部左移动若干位,由<<右侧的数字决定,高位丢弃,低位补0

# 2的二进制数为00000010,左移两位为00100000
print(2 << 4)

输出结果为:32

“>> ” 右移动运算符,各二进制位全部右移动若干位,由>>右侧的数字决定

# 3的二进制数为00000011,右移两位为00000001
print(3 >> 1)

输出结果为:1

关系运算符和关系表达式

“==”、”!=”、”>”、”<”、”>=”、”<=”
关系运算表达式: 1 +2 > 3 +4
格式:表达式1 关系运算符 表达式2
功能:计算“表达式1” 和 “表达式2”的值
值:如果关系成立,整个关系运算表达式的值为真,否则为假

逻辑运算符

“逻辑与” and,两个表达式中,只要一个为假,则最终的结果为假
“逻辑与”运算符表达式:表达式1 and 表达式2
值:如果表达式1的值为真,表达式2的值也为真,则整体“逻辑与”运算表达式的值为真;
如果表达式1的值为真,表达式2的值也为假,则整体“逻辑与”运算表达式的值为假。

“逻辑或” or,两个表达式中,如果有一个为真,一个为假,则最终结果也为真。
“逻辑或”运算表达式:表达式1 or 表达式2
例如:如果表达式1的值为真,表达式2的值也为真,则整体“逻辑与”运算表达式的值为真。

“逻辑非” not ,真假相反
“逻辑非”运算表达式: not 表达式
值:如果表达式的值为真,整体逻辑非运算表达式的值为假;
如果表达式的值为假,整体逻辑非运算表达式的值为真。

举个简单的例子判断是否是闰年:

# 能被4整除但是不能被100整除 或者 能被400整除

year = int(input("请输入一个年份:"))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print("是闰年")
else:
    print("不是闰年")

输出结果为:

请输入一个年份:1998
不是闰年

成员运算符

in:如果在指定的序列中找到值,则返回True,否则返回False
not in :如果在指定序列中没有找到值,则返回True,否则返回False。

身份运算符

is:判断两个标识符是不是引用同一个对象
is not:判断两个标识符是不是引用不同的对象

运算符优先级

(*) > (~ + -) > ( / % //) > (>> <<) > (&) > (^ |)
<= < > >= == != = %= += -= //= is is not in not in not or and

猜你喜欢

转载自blog.csdn.net/xiao_pingping/article/details/81669655