04.python学习-运算符
文章目录
一、运算符
1. 运算符的概念
运算符用于执行程序代码的运算,会针对一个以上操作数项目进行运算。
如:2+3,操作数为2、3,运算符为 + 。
2. 算术运算符
- 加法,表现形式 +
- 两个数字类型相加,会进行四则运算加法。
- 两个字符串相加,会进行字符串的拼串。
- 减法,表现形式 -
- 两个数字类型相减,进行四则运算减法。
- 两个字符串不能进行减法运算。
- True运算时当做1
False运算时当做0
- 乘法,表现形式 *
- 同数字的四则运算乘法。
- 两个字符串不能相乘。
- 字符串和整数,返回字符串重复若干次的字符串。
3.1 整数为0时,返回空字符串。
3.2 整数为负时,无意义,返回空字符串。 - 字符串和浮点,会提示错误。
- 除法,表现形式 /
- 运算结果总会返回一个浮点类型
- 除数不能为0,会报错。
- 整除,表现形式 //
特点:只会保留计算后的整数位。
7 // 3 ==> 2
- 取余、取模,表现形式 %
取余数。
6 % 4 ==> 2
- 幂运算,表现形式 **
求一个数的N次幂
2 ** 3 ==> 8
开平方操作:
25 ** 0.5 ==> 5
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
4. 比较运算符
大于 >
小于 <
等于 =
大于等于 >=
小于等于 <=
不等于 !=
在字符串比较时,将字符串从第一个字符开始,比较字符的ASCII码值
多个字符串比较时,比较方式是对位比较。依次比较字符。
如果比较出结果就返回结果。
r = '2' > '11' # True
r = 'ab' > 'b' # False
r = 'abc' == 'bcd' # False
r = 'abc' != 'bcd' # True
r = 1 == True # True
== 比较的是2个对象的值是否相等
!= 比较2个对象的值是否不相等
is 比较2个对象是否是同一个对象,比较的是对象的id
is not 比较2个对象是否不是同一个对象,比较的是对象的id
5. 逻辑运算符
什么是逻辑?
not 逻辑非、and 逻辑与、
1. 逻辑非 not
not可以对符号右侧的值进行非运算,对于布尔值,非运算会对布尔值取反计算。
not None ⇒ True
对于非布尔值,先转化为布尔值,然后进行取反。
2. 逻辑与 and
左右两边都为True,则为True
左右两边有False,则为False
逻辑与 找False,有False就返回False。没找到False,则返回True。
3. 逻辑或 or
左右两边有True,则为True
左右两边都为False,则为False
逻辑或 找True,有True就返回True。没有True,则返回False
4. 非布尔值的与或运算
python会先将其当做布尔值,然后进行与或运算,最终会返回原值。
r = 1 and 2 # 1为True,返回2给r赋值
r = 1 and 0 # 0
r = 0 and 1 # 0
1. 与运算规则 and :
找False,如果第一个值为False,直接返回第一个值,不看第二个值。
如果第一个值为True,直接返回第二个值(如果是算式,计算后返回结果)。
2. 或运算规则 or :
找True,如果第一个值为True,直接返回第一个值,不看第二个值。
如果第一个值为False,直接返回第二个值。
6. 条件运算符(三元运算符)
条件运算符在执行时,会先对条件表达式进行求值判断
如果判断结果为True,则执行语句1,并返回执行结果
语句1 if 表达式 else 语句2
print('python') if 3>2 else print('java')
7. 运算符优先级
和数学中优先级一样
a = 2 or 3 and 4
推理
8. 作业
1. ‘ax’<‘xa’ 为True还是False?
先比较字符’a’与字符’x’的ASCII码值的大小
ord(‘a’) = 97
ord(‘x’) = 120
所以 ‘a’ < ‘x’ ,所以 ‘ax’<‘xa’ 为True
2. is与==的区别?
is 判断两个对象是否是同一个对象,比较的是变量的id
== 判断两个对象的值是否相等,比较的是变量的value
3. 现在有a b c三个变量,三个变量中分别保存有三个数值,请通过条件运算符获取三个值中的最大值
a=1
b=2
c=3
print(a) if a>b and a>c else print(b) if b>c else print©