Loading

Python基本运算符

Python基本运算符

数学运算

运算符 说明 实例 结果
+ 12.45 + 15 27.45
- 4.56 - 0.26 4.3
* 乘,还可以与字符串使用,表示将字符串重复n次 5 * 3.6
"ABC" * 2
18.0
ABCABC
/ 除法(和数学中的规则一样) 7 / 2 3.5
// 整除(只保留商的整数部分) 7 // 2 3
% 取余,即返回除法的余数 7 % 2 1
** 幂运算/次方运算,即返回 x 的 y 次方 2 ** 4 16

整型和浮点型都属于数字,彼此可以直接进行数学运算。

+号和*号在字符串和列表中也能使用。+号能将多个字符串或列表拼接到一起,*号能将字符串或列表元素重复n次

x = '胖虎'
s = '吃肉'
print(x + s)
# 胖虎吃肉

l = [1,'a',3]
l2 = ['d','c','e']
print(l + l2)
# [1, 'a', 3, 'd', 'c', 'e']

print(s * 3)
# 吃肉吃肉吃肉

print(l * 3)
# [1, 'a', 3, 1, 'a', 3, 1, 'a', 3]

位运算

Python 位运算符只能用来操作整数类型,它按照整数在内存中的二进制形式进行计算,并不是整数的二进制形式的运算。

位运算符 说明 使用形式 举 例
& 按位与 a & b 4 & 5
| 按位或 a | b 4 | 5
^ 按位异或 a ^ b 4 ^ 5
~ 按位取反 ~a ~4
<< 按位左移 a << b 4 << 2,表示整数 4 按位左移 2 位
>> 按位右移 a >> b 4 >> 2,表示整数 4 按位右移 2 位

赋值运算

=:最基本的赋值运算符是等号=,用来将一个表达式的值赋给另一个变量;结合其它运算符,=还能扩展出更强大的赋值运算符。

运算符 说 明 用法举例 等价形式
= 最基本的赋值运算 x = y x = y
+= 加赋值 x += y x = x + y
-= 减赋值 x -= y x = x - y
*= 乘赋值 x *= y x = x * y
/= 除赋值 x /= y x = x / y
%= 取余数赋值 x %= y x = x % y
**= 幂赋值 x **= y x = x ** y
//= 取整数赋值 x //= y x = x // y
&= 按位与赋值 x &= y x = x & y
|= 按位或赋值 x |= y x = x | y
^= 按位异或赋值 x ^= y x = x ^ y
<<= 左移赋值 x <<= y x = x << y,这里的 y 指的是左移的位数
>>= 右移赋值 x >>= y x = x >> y,这里的 y 指的是右移的位数

增量赋值

age += 2  # age=age+2
age -= 2
age **= 2  # age = age ** 2
print(age)

链式赋值

x=y=z=10
print(id(x))
print(id(y))
print(id(z))

交叉赋值

# 直接交换两个变量值,而不用定义第三个变量。
x=10
y=20
x,y=y,x
print(x)
print(y)
# 20 10

解压赋值

salary = [1.1, 2.2, 3.3, 4.4, 5.5]
mon1=salary[0]
mon2=salary[1]
mon3=salary[2]
mon4=salary[3]
mon5=salary[4]
# 下面的1行赋值等同于上面的5行
mon1,mon2,mon3,mon4,mon5=salary
print(mon1,mon2,mon3,mon4,mon5)

# 变量名多一个不行少一个不行,必须与值一一对应。下面俩都会报错
mon1,mon2,mon3,mon4=salary
mon1,mon2,mon3,mon4,mon5,mon6=salary

# 可以使用*_来接收其他多余的值。*号会将多余的值全部接收到一个列表中,然后复制给_
mon1,mon2,mon3,*_=salary
print(mon1,mon2,mon3)
print(_)
# 1.1 2.2 3.3 

mon1,mon2,*_,mon5=salary
print(mon1)
print(mon2)
print(mon5)
# 1.1 2.2 5.5


# 字典接收的是键,可以通过键取到值。
dic={"k1":111,"k2":222,'K3':333}
x,y,z=dic
print(x,y,z)
# k1 k2 K3

x,*_=dic
print(x)
# k1

比较运算

比较运算符 说明
> 大于,如果>前面的值大于后面的值,则返回 True,否则返回 False。
< 小于,如果<前面的值小于后面的值,则返回 True,否则返回 False。
== 等于,如果==两边的值相等,则返回 True,否则返回 False。
>= 大于等于(等价于数学中的 ≥),如果>=前面的值大于或者等于后面的值,则返回 True,否则返回 False。
<= 小于等于(等价于数学中的 ≤),如果<=前面的值小于或者等于后面的值,则返回 True,否则返回 False。
!= 不等于(等价于数学中的 ≠),如果!=两边的值不相等,则返回 True,否则返回 False。
is 判断两个变量所引用的对象是否相同,如果相同则返回 True,否则返回 False。
is not 判断两个变量所引用的对象是否不相同,如果不相同则返回 True,否则返回 False。

==号同类型数据都可以进行比较。>和<可以比较字符串和列表。

逻辑运算符

逻辑运算符 含义 基本格式 说明
and 逻辑与运算,等价于数学中的“且” a and b 当 a 和 b 两个表达式都为真时,a and b 的结果才为真,否则为假。
or 逻辑或运算,等价于数学中的“或” a or b 当 a 和 b 两个表达式都为假时,a or b 的结果才是假,否则为真。
not 逻辑非运算,等价于数学中的“非” not a 如果 a 为真,那么 not a 的结果为假;如果 a 为假,那么 not a 的结果为真。相当于对 a 取反。

在没有括号“()”的情况下,优先级:not>and>or。同一优先级从左至右依次计算。

另外,and 和 or 运算符会将其中一个表达式的值作为最终结果,而不是将 True 或者 False 作为最终结果。

短路运算

and运算只要有一项为False,后面的结果不用判断,最终结果一定为False。

or运算只要有一项为True,后面的结果不用判断,最终结果一定为True。

print('ha' and 123)
# 123

print(123 or 'abc')
# 123

身份运算

is比较的是id
==比较的是值

id一样,值一定一样。值一样,id不一定一样。

成员运算:

判断值是否在对象中。

  • in 若在,返回True。
  • not in 若不在,返回True。
例:s = '李白苏轼杜甫'
print('白苏' in s)
# True
print('李苏' nor in s)     
#字符串‘李苏’为一个整体,并不包含在s当中,所以返回为True

Python运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:

运算符 描述
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 'AND'
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not and or 逻辑运算符
posted @ 2020-11-19 19:20  吃了好多肉  阅读(209)  评论(0编辑  收藏  举报