04-运算符
- 1、运算符
- 1.1、运算符的概念
- 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。
- 1.2、运算符的分类
- 算术运算符
- 赋值运算符
- 比较运算符(关系运算符)
- 逻辑运算符
- 条件运算符(三元运算符)
- 2、算术运算符
- 加法运算符 表现形式 +
- 减法运算符 表现形式 -
- 乘法运算符 表现形式 *
- 除法运算符 表现形式 /
- // 整除,只会保留计算后的整数位,总会返回一个整型
- % 取模,求两个数相除的余数
- ** 幂运算,求一个值的几次幂
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/8/26 0026 16:53
# @Author : Oliver
#加法
print('hello'+'world')
print(1+2)
#减法
print(4-1)
print(4-True)
#乘法
print(2*2)
print('a'*2)
#除法
print(3/2)
#除法取整
print(3//2)
#取模(余数)
print(3%2)
#幂次运算
print(3**2)
结果显示:
helloworld
3
3
3
4
aa
1.5
1
1
9
- 3、赋值运算符
- 复制运算符的特殊写法 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 )
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | 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 |
#赋值运算符
x=1
x+=1
print(x)
x-=1
print(x)
x*=2
print(x)
x**=2
print(x)
x/=2
print(x)
x//=2
print(x)
x%=2
print(x)
结果如下:
2
1
2
4
2.0
1.0
1.0
- 4、比较运算符
- 比较运算符用来比较两个值之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False
- > 比较左侧值是否大于右侧值
- >= 比较左侧的值是否大于或等于右侧的值
- < 比较左侧值是否小于右侧值
- <= 比较左侧的值是否小于或等于右侧的值
- 字符串的比较,比较的是字符之间的ascii码值
- 出现多个字符时,先比较第一个字符的大小
- 字符串的比较,比较的是字符之间的ascii码值
- 特殊的比较方式
- == 比较两个对象的值是否相等
- != 比较两个对象的值是否不相等
- is 比较两个对象是否是同一个对象,比较的是对象的id
- is not 比较两个对象是否不是同一个对象,比较的是对象的id
#比较运算符
a=1
b=2
print(a>b)
结果显示:
False
print('2'>'11')
print('a'>'A')
print('aaa'<'aaf')
结果显示:
True
True
True
a=1
b=1
c=2
print(a==b)
print(a==1)
print(a is b)
print(a is a)
print(a is not b)
print(a is c)
结果显示:
True
True
True
True
False
False
- 5、逻辑运算符
- 5.1 not 逻辑非
- not可以对符号右侧的值进行非运算对于布尔值,非运算会对其进行取反操作,True变False,False变True
- 5.2 and 逻辑与
- and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
- 与运算是找False的,如果第一个值为False,则不再看第二个值
- 5.3 or 逻辑或
- 或运算两个值中只要有一个True,就会返回True
- 或运算是找True的
- 5.4 非布尔值的与或运算
- 当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
- 非布尔值与运算的规则
- 与运算是找False的,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值
- 非布尔值或运算的规则
- 或运算是找True的,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值
- 5.1 not 逻辑非
a=10
b=20
if a and b:
print("1 - 变量 a 和 b 都为 true")
else:
print("1 - 变量 a 和 b 有一个不为 true")
if a or b:
print("2 - 变量 a 和 b 都为 true,或其中一个变量为 true")
else:
print("2 - 变量 a 和 b 都不为 true")
# 修改变量 a 的值
a = 0
if a and b:
print("3 - 变量 a 和 b 都为 true")
else:
print("3 - 变量 a 和 b 有一个不为 true")
if a or b:
print("4 - 变量 a 和 b 都为 true,或其中一个变量为 true")
else:
print("4 - 变量 a 和 b 都不为 true")
if not (a and b):
print("5 - 变量 a 和 b 都为 false,或其中一个变量为 false")
else:
print("5 - 变量 a 和 b 都为 true")
结果显示:
1 - 变量 a 和 b 都为 true
2 - 变量 a 和 b 都为 true,或其中一个变量为 true
3 - 变量 a 和 b 有一个不为 true
4 - 变量 a 和 b 都为 true,或其中一个变量为 true
5 - 变量 a 和 b 都为 false,或其中一个变量为 false
- 6、条件运算符(三元运算符)
- 条件运算符在执行时,会先对条件表达式进行求值判断
- 如果判断结果为True,则执行语句1,并返回执行结果
- 如果判断结果为False,则执行语句2,并返回执行结果
- 语法: 语句1 if 条件表达式 else 语句2
- 条件运算符在执行时,会先对条件表达式进行求值判断
a = 30
b = 50
# print('a的值比较大!') if a > b else print('b的值比较大!')
# 获取a和b之间的较大值
max = a if a > b else b
print(max)
结果显示:
50
- 7、运算符的优先级
运算符说明 | Python运算符 | 优先级 | 结合性 | 优先级顺序 |
---|---|---|---|---|
小括号 | () | 19 | 无 | 高 |
索引运算符 | x[i] 或 x[i1: i2 [:i3]] | 18 | 左 | ^ |
属性访问 | x.attribute | 17 | 左 | | |
乘方 | ** | 16 | 左 | | |
按位取反 | ~ | 15 | 右 | | |
符号运算符 | +(正号)、-(负号) | 14 | 右 | | |
乘除 | *、/、//、% | 13 | 左 | | |
加减 | +、- | 12 | 左 | | |
位移 | >>、<< | 11 | 左 | | |
按位与 | & | 10 | 右 | | |
按位异或 | ^ | 9 | 左 | | |
按位或 | | | 8 | 左 | | |
比较运算符 | ==、!=、>、>=、<、<= | 7 | 左 | | |
is运算符 | is、is not | 6 | 左 | | |
in运算符 | in、not in | 5 | 左 | | |
逻辑非 | not | 4 | 右 | | |
逻辑与 | and | 3 | 左 | | |
逻辑或 | or | 2 | 左 | | |
逗号运算符 | exp1、exp2 | 1 | 左 | 低 |