Python-五类基本运算符

1、算数运算符

假定一下变量:a = 10, b = 20

运算符描述实例
+加,两个对象相加a + b 输出结果 30
-减,得到负数或是一个数减去另一个数a - b 输出结果 -10
*乘,两个数相乘或是返回一个被重复若干次的字符串a * b 输出结果 200
**幂,返回x的y次幂a ** b 为10的20次方
/除,x除以yb / a 输出结果 2
//取整除,返回商的整数部分9 // 2输出结果 4,9.0 // 2.0 输出结果4.0
%取模,返回除法的余数b % a 输出结果 0
+	-	*	**	/	//	%
print(10 + 3)  # 加,13
print(10 - 3)  # 减,7
print(10 * 3)  # 乘,30
print(10 ** 3)  # 次方,1000
print(10 / 3)  # 除,3.3333333333333335
print(10 // 3)  # 取商,3
print(10 % 3)  # 取余,1

print(10 * 3.333)  # int类型与float类型统称为数字类型,他们两者是可以混着玩的
其他类型的数据也可以使用 + * 运算,但是效率很低基本不用
print([1,2,3]+[3,4,5])  # [1, 2, 3, 3, 4, 5]
print([1,2,3]*3)  # [1, 2, 3, 1, 2, 3, 1, 2, 3]

2、比较运算符

假定一下变量:a = 10, b = 20

运算符描述实例
==等于,比较对象是否相等(a == b) 返回 False
!=不等于,比较两个对象是否不想等(a != b) 返回 True
>大于,比较 > 左边的值是否大于右边的值(a > b) 返回 False
>=大于等于,比较 >= 左边的值是否大于或等于右边的值(a >= b) 返回 False
<小于,比较 < 左边的值是否小于右边的值(a < b) 返回 True
<=小于等于,比较 <= 左边的值是否小于或等于右边的值(a <= b) 返回 True
==	!=	>	<	>=	<=
print(10 == 10)
print(10 > 10)
print(10 >= 10)
print("abc" != "ddd")

print(10 > 3.1)
print(10 > "12")  # 不能比大小,不同类型数据之间不能进行比较

print("a12" == "a12")
print([1,2,3] == [1,2,3])

字符串通常用 len() 计算长度去比较
# 了解,字符串进行比较是按照ASCII表的顺序,对应位置进行比较
"abc"
"az"
print("abc" > "az")

l1=[111,222,333]
# l2=[111,999]
l2=[111,"aaa"]  # 列表进行比较也是对应位置比较,且对应位置的数据类型要一致
print(l1 > l2)  # 报错

print({"k1":111,"k2":222} == {"k2":222,"k1":111})   # 字典不需要顺序一样,但是key和value要一致,返回值为 True 
print({"k1":111,"k2":222} == {"k2":111,"k1":222})   # 返回值为 False

3、赋值运算符

运算符描述实例
=简单的赋值运算符c = a + b 将 a + b 的运算结果赋值为 c
+=加法赋值运算符c += a 等效于 c = c + a
-=减法赋值运算符c -= a 等效于 c = c - a
*=乘法赋值运算符c *= a 等效于 c = c * a
/=除法赋值运算符c /= a 等效于 c = c / a
%=取模赋值运算符c %= a 等效于 c = c % a
**=幂赋值运算符c **= a 等效于 c = c * * a
//=取整除赋值运算符c //= a 等效于 c = c // a

3.1、增量赋值

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

3.2、链式赋值

x = 10
y = x
z = y
print(id(x))
print(id(y))
print(id(z))
# 链式赋值
x = y = z = 10 

3.3、交叉赋值

x = 10
y = 20
# 思路原理
temp = x
x = y
y = temp
# 交叉赋值
x, y = y, x
print(x)
print(y)

3.4、解压赋值

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]
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(_)

mon1, mon2, *_, mon5 = salary
print(mon1)
print(mon2)
print(mon5)
# 对于字典类型来说,解压赋值拿到的是相对应的 key 值
dic={"k1":111, "k2":222, 'K3':333}
x, y, z = dic
print(x, y, z)

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

4、逻辑运算符

4.1、not

not:代表把紧跟其后的条件结果取反
print(not 10 > 3)  # 输出结果 False

4.2、and

and:连接左右两个条件,左右两个条件必须同时成立,最终结果才为True
print(True and 1 > 0 and "aaa" == "aaa")  # 输出结果 True
print(True and 1 < 0 and "aaa" == "aaa")  # 输出结果 False

4.3、or

or:连接左右两个条件,左右两个条件但凡是有一个成立,最终结果就为True
print(True or 1 > 0 or "aaa" == "aaa")  # 输出结果 True
print(False or 1 < 0 or "aaa" != "aaa")  # 输出结果 True

4.4、短路运算

又称偷懒原则,即
and 连接多个条件时,只要第一个条件遇到结果为False,则最终结果为False
or 连接多个条件时,只要第一个条件遇到结果为True,则最终结果为True
# 示例
print(1 and 3 or 4)  # 输出结果 3
# 短路运算面试题:
>>> 1 or 3
1
>>> 1 and 3
3
>>> 0 and 2 and 1
0
>>> 0 and 2 or 1
1
>>> 0 and 2 or 1 or 4
1
>>> 0 or False and 1
False 

4.5、优先级

优先级: not > and > or,也可以自己用()来规定优先级
# 示例
3>4 and 4>3 or not 1==3 and 'x' == 'x' or 3 >3
# 思路,用()按照默认优先级划分清楚
res = (3>4 and 4>3) or (not 1==3 and 'x' == 'x') or 3 >3

print(res)  # 输出结果 True

5、成员运算符

in / not in
判断子字符串是否在一个大字符串里面
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值