运算符
运算符
运算符的概念
- 运算符运用执行程序代码运算,会针对一个以上操作数项目来进行运算。
运算符的分类
- 算术运算符
- 赋值运算符
- 比较运算符(关系运算符)
- 逻辑运算符
- 条件运算符(三元运算符)
算术运算符
- 加法运算符 表现形式 +
a = 1+2
a= '1'+2 # can only concatenate str (not "int") to str
print(a)
- 减法运算符 表现形式 -
a = 3-1
a= '3'+1 # can only concatenate str (not "int") to str
print(a)
- 乘法运算符 *
a = 3*1
a= '3'*2
print(a)
- 除法运算符 表现形式 /
a = 3/1
a= '3'/2 #unsupported operand type(s) for /: 'str' and 'int'
print(a)
- // 整除,只会保留计算后的整数位,总会返回一个整型
a = 7//3 #结果为2
print(a)
- % 取模,求两个数相除的余数
- ** 幂运算,求一个值的几次幂
赋值运算符
赋值运算符的特殊写法 x = x + 3 其实是和 x += 3 是一样的
- += (x+= 3 相当于 x = x + 3 )
- -= (x -= 3 相当于 x= x - 3 )
- *= (x = 3 相当于 x = x 3 )
- **= (x **= 3 相当于 x = x ** 3 )
- /= (x /= 3 相当于 x = x/ 3 )
- //= (x //= 3 相当于 x = x // 3 )
- %= (x %= 3 相当于 x= x % 3 )
比较运算符
比较运算符用来比较两个值之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False
- 特殊的比较方式
- == 比较两个对象的值是否相等
- != 比较两个对象的值是否不相等
- is 比较两个对象是否是同一个对象,比较的是对象的id
- is not 比较两个对象是否不是同一个对象,比较的是对象的id
逻辑运算符
not 逻辑非
- not可以对符号右侧的值进行非运算,对于布尔值,非运算会对其进行取反操作,True变False,False变True
and 逻辑与
- and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
- 与运算是找False的,如果第一个值为False,则不再看第二个值
逻辑或
- 或运算两个值中只要有一个True,就会返回True
- 或运算是找True的
非布尔值的与或运算
- 当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
- 非布尔值与运算的规则
- 与运算是找False的,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值
- 非布尔值或运算的规则
- 或运算是找True的,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值
条件运算符(三元运算符)
- 条件运算符在执行时,会先对条件语句中的表达式进行求值判断
- 如果判断结果为True,则执行语句1,并返回执行结果
- 如果判断结果为False,则执行语句2,并返回执行结果
- 语法: 语句1 if 条件表达式 else 语句2
运算符的优先级![在这里插入图片描述](https://img-blog.csdnimg.cn/20210309230053363.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTM2NDA4OA==,size_16,color_FFFFFF,t_70)
引用变量
- 两个引用指向同一个int数据,结果一样
- 两个引用指向同一个str数据,结果一样
- 两个引用指向同一个list数据,结果不一样
拷贝
拷贝相当于把一个东西复制一份放在其他位置,id表示位置,所以id会变
浅拷贝只能拷贝第一层数据,更深层次的数据id值不会变
Homework
- 1.以4种格式化字符串的方式来实现 521 xxx 嫁给我好吗?
s='xxx'
print('521\t'+s+'嫁给我好吗?')
print('521 {}嫁给我好吗?'.format(s))
print(f'521\t{s}嫁给我好吗?')
print('521\t%s 嫁给我好吗?'%s)
- 2.现在有a b c三个变量,三个变量中分别保存有三个数值,请通过条件运算符获取三个值中的最大值
a=20
b=30
c=10
max1=a if a>b else b
max2=max1 if max1>c else c
print(max2)