Python自学第3天:运算符

算术运算符


用于基本数学运算

运算符 描述
+ 加 - 两个对象相加
- 减 - 得到负数或是一个数减去另一个数
* 乘 - 两个数相乘或是返回一个被重复若干次的字符串
/ 除 - x 除以 y
% 取模 - 返回除法的余数
** 幂 - 返回x的y次幂
// 取整除 - 往小的方向取整数
print(f"{a} + {b} = {a + b}")  # 加法 13
print(f"{a} - {b} = {a - b}")  # 减法 7
print(f"{a} * {b} = {a * b}")  # 乘法 30
print(f"{a} / {b} = {a / b}")  # 除法 3.333...
print(f"{a} % {b} = {a % b}")  # 取模 1
print(f"{a} ** {b} = {a ** b}") # 幂运算 1000
print(f"{a} // {b} = {a // b}") # 整除 3

注意: 除法和整除的区别。 咦,多了一道/就行。

比较运算符


用于比较值

运算符 描述
== 等于 - 比较对象是否相等
!= 不等于 - 比较两个对象是否不相等
> 大于 - 返回x是否大于y
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。
>= 大于等于 - 返回x是否大于等于y。
<= 小于等于 - 返回x是否小于等于y。
print(f"{a} == {b}: {a == b}")  # False
print(f"{a} != {b}: {a != b}")  # True
print(f"{a} > {b}: {a > b}")    # True
print(f"{a} < {b}: {a < b}")    # False
print(f"{a} >= {b}: {a >= b}")  # True
print(f"{a} <= {b}: {a <= b}")  # False

赋值运算符


用于变量赋值

算符 描述
= 简单的赋值运算符
+= 加法赋值运算符
-= 减法赋值运算符
*= 乘法赋值运算符
/= 除法赋值运算符
%= 取模赋值运算符
**= 幂赋值运算符
//= 取整除赋值运算符
:= 海象运算符,在表达式中同时进行赋值和返回赋值的值。Python3.8 版本新增
x = 5  # 基本赋值
x += 3  # 等同于 x = x + 3  
x -= 3  # 等同于 x = x - 3
x *= 1  # 等同于 x = x * 1
x /= 1  # 等同于 x = x / 1
x %= 2  # 等合于 x = x % 2

y = 10
y **= 2  # y = y ** 2
print(f"y **= 2 → {y}")  # 100

# 海象运算符(Python 3.8+)
if (n := len("hello")) > 3:
    print(f"字符串长度{n} > 3")

#对比正常写法
n = len("hello")
if n > 3:
    print(f"字符串长度{n}>3")

逻辑运算符


用于布尔逻辑

运算符 逻辑表达式 描述
and x and y 布尔"与" - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。
or x or y 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。
print(f"True and False: {True and False}")  # False
print(f"True or False: {True or False}")    # True
print(f"not True: {not True}")              # False

# 短路特性
def test():
    print("函数被调用")
    return True

print(False and test())  # test()不会被调用

位运算符


用于二进制位操作

运算符 描述
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。
^ 按位异或运算符:当两对应的二进位相异时,结果为1
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1
<< 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。
>> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数
m, n = 5, 3  # 二进制: 101 & 011
print(f"{m} & {n} = {m & n}")  # 按位与 1 (001)
print(f"{m} | {n} = {m | n}")  # 按位或 7 (111)
print(f"{m} ^ {n} = {m ^ n}")  # 按位异或 6 (110)
print(f"~{m} = {~m}")          # 按位取反 -6
print(f"{m} << 1 = {m << 1}")  # 左移 10 (1010)
print(f"{m} >> 1 = {m >> 1}")  # 右移 2 (010)

成员运算符


用于检查序列成员。

运算符 描述
in 如果在指定的序列中找到值返回 True,否则返回 False。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。
lst = [1, 2, 3, 4, 5]
print(f"3 in {lst}: {3 in lst}")      # True
print(f"6 not in {lst}: {6 not in lst}") # True

身份运算符


用于检查对象身份

运算符 描述
is is 是判断两个标识符是不是引用自一个对象
is not is not 是判断两个标识符是不是引用自不同对象
x = [1, 2, 3]
y = x
z = [1, 2, 3]

print(f"x is y: {x is y}")      # True (同一对象)
print(f"x is z: {x is z}")      # False (不同对象)
print(f"x is not z: {x is not z}")   # True(不同对象)
print(f"x == z: {x == z}")      # True (值相同)

运算符优先级


解释了运算的执行顺序

1 **

幂运算

2 ~ + -

按位取反, 正负号

3 * / % //

乘除

4 + -

加减

5

<< >>

位移
6

&

按位与

7

^ |

按位异或/或

8

< <= > >= == !=

比较

9

= += -= *= /= %= **= //=

 赋值

10

is is not

身份

11

in not in

成员

12

not and or

逻辑

 

1. **                         

result = 5 + 3 * 2 ** 2  # 等同于 5 + (3 * (2 ** 2)) = 17
print(f"\n5 + 3 * 2 ** 2 = {result}")

 没有了。今天 就到这里吧。

你可能感兴趣的:(Python从小白到职业学习,python,开发语言,学习)