python 开发 -- 05基本运算符
Posted FikL-09-19
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 开发 -- 05基本运算符相关的知识,希望对你有一定的参考价值。
文章目录
一.算数运算符
1.加减乘除
print(10 + 3) | 13 |
---|---|
print(10 - 3) | 7 |
print(10 * 3) | 30 |
print(10 / 3) | 3.333…(到达一定精度后停止) |
2.整除(地板除) //
- 只保留整数部分,不是四舍五入,而是直接抛弃小数部分
print(10 / 3) | 3.333333… |
---|---|
print(10//3) | 3 |
3.取余(取模) %
# "10"除于"3"余"1"
print(10%3) #1
4.多少次方/幂运算 **
# "10"的"3"次方
print(10**3) #1000
二.比较运算
> | 大于 |
---|---|
< | 小于 |
= | 等于 |
!= | 不等于 |
<= | 小于等于 |
>= | 大于等于 |
- 一个等于号是赋值操作
- 两个等于号才是等于
三.赋值运算符
- 像这样 : age = 18
age = 3
age *= 3
# age ** 3
# age /= 3
print(age)
9
3
1
1.增量赋值
age += 10 | 等同于age = age + 10 |
---|---|
age -= 10 | 等同于age = age - 10 |
age *= 10 | 等同于age = age * 10 |
age /= 10 | 等同于age = age / 10 |
age //= 10 | 等同于age = age // 10 |
age %= 10 | 等同于age = age % 10 |
age **= 10 | 等同于age = age ** 10 |
2.交叉赋值
a = 20
b = 10
# 通过中间值将其值变换
zz = a #zz = 20
a = b #a = 10
b = zz #b = 20
# 通过等号赋值符号交叉
a, b = b, a
3.链式赋值
# 一个变量值要同时绑定多个变量名
a = 10
b = a
c = b
d = c
# 通过链式赋值
a = b = c = d = 10
4.解压运算符
- 直言是多个指定的数据类型都可以解压
- 可用于字符串, 列表,元组,字典,集合,多用于列表,元组
- 如果用于字典,则解压的结果是 key
- 使用
*_
来将剩余的值存成一个列表(单个_
表示该变量被废弃)
salary = [1.1, 2.2, 3.3, 4.4, 5.5,6.6,44]
# 只想取前三个
m1,m2,m3,*_ = salary
print(m1,m2,m3) #1.1,2.2,3.3
print(_) #4.4,5.5,6.6,44
# 取前面一个和后面两个
m1,*_,m7,m8 = salary
print(m1,m7,m8) #1.1,6.6,44
print(_) #2.2,3.3,4.4,5.5
# 可以自由搭配,*只能帮助我们取两头的值,无法取中间的值
四.逻辑运算符
1.not
逻辑非
- 把紧跟其后的那个条件的布尔值取反
print(not 10 == 10) #False
print(not 10 < 0) #True
print(not True) #False
print(not False) #True
print(not None) #True
.........
2.and
逻辑与
- and用来连接左右两个条件,两个条件同时为True,最终结果才为True
- 两个条件有一个为False,结果一定为False.
# True True
print(True and 10 > 3)
# True True True False
print(True and 10 > 3 and 10 and 0) # 0
# True True False(and偷懒,计算0就不计算了)
print(10 > 3 and 10 and 0 and 1 > 3 and 4 == 4 and 3 != 3) # 0
3.or
逻辑或
- or用来连接左右两个条件,两个条件同时为False,最终结果才为False
- 两个条件有一个为True,结果一定为True
# True(or偷懒,计算到3 > 2就不计算了)
print(3 > 2 or 0) # True
# True(or偷懒,计算到3 > 4就不计算了)
print(3 > 4 or False or 3 != 2 or 3 > 2 or True) # True
4.短路运算(偷懒原则)
- 只要and左边的值为Flase,and右边的值将不会执行,返回结果就是False(偷懒原则),如果为True则继续判断后面的条件
- 只要or左边的值为True,or右边的值将不会执行,返回结果就是True(偷懒原则),如果为Flase则继续判断后面的条件
print((1 > 2 and 2 < 3) or (4 and not 1 != 3) or (3 and [])) #[]
# False False []
5.或,与,非的优先级
- not > and > or
# 第一步计算:not 4 > 3,为False
# 第二步计算:3 > 4 and Flase,为False
# 第三步计算:1 == 3 and 'x' == 'x',为Flase(偷懒原则)
# 第四步计算:这个时候只剩下or从左到右依次计算,Flase
res = 3 > 4 and not 4 > 3 or 1 == 3 and 'x' == 'x' or 3 > 3
print(res) # False
五.成员运算
适用于字符串时,判断子字符串是否在大字符串中
1.in
# 判断子字符串是否在大字符串中
print("mm" in "hello mm") # True
print("sha" in "hello mm") # True
print("he sh" in "hello mm") # False
# 判断key是否存在于字典中(注意:in判断的条件是key)
print(111 in "k1": 111, 'k2': 222) # False
print("k1" in "k1": 111, 'k2': 222) # True
2.not in
# 用法一:条件1 not in 条件2(推荐使用)
print("mm" not in "hello mm") # False
# 用法二:not 条件1 in 条件2(先运算条件1 in 条件2再取反)
print(not "mm" in "hello mm") # False
六.身份运算
is
: 判断左右两边的 id 是否相等
# 两个不同的内存地址关联不同的变量名,只是存的值一样
li1 = [111, 222, 333]
li2 = [111, 222, 333]
print(id(li1)) #2160395309640
print(id(li2)) #2160395310152
print(li1 is li2) #False
# 两个变量名关联同一个内存地址
x = 10
y = x
print(x) #140725148348960
print(y) #140725148348960
print(x is y) #True
222, 333]
print(id(li1)) #2160395309640
print(id(li2)) #2160395310152
print(li1 is li2) #False
# 两个变量名关联同一个内存地址
x = 10
y = x
print(x) #140725148348960
print(y) #140725148348960
print(x is y) #True
以上是关于python 开发 -- 05基本运算符的主要内容,如果未能解决你的问题,请参考以下文章