Python 04
1 算数运算符
1.1 算数运算符 +
- 例 1:
x1 = 1 + 2
print('x1 =',x1)
运行结果:
x1 = 3
- 例 2:
x1 = 1 + 2
print('x1 =',x1)
运行结果:
x2 = hello world
1.2 算数运算符 -
- 例 1:
x1 = 5 - 2
print("x1 =", x1)
运行结果:
x1 = 3
注:只要有浮点型 (float) 变量参与运算,则运算结果也为浮点型
- 例 2:
x2 = 5 - 2.0
print("x2 =", x2)
运行结果:
x2 = 3.0
*错误案例 1
x = 'python' - 'p'
print(x)
- 报错内容:TypeError: unsupported operand type(s) for -: ‘str’ and ‘str’
- 错误原因:字符串不能进行减法运算
1.3 算数运算符 *
- 例 1:
x1 = 2 * 2
x2 = 2.0 * 2
print("x1 =", x1)
print("x2 =", x2)
运行结果:
x1 = 4
x2 = 4.0
注:整型变量(int)与字符串变量 (str) 相乘,输出结果为字符串变量的重复,重复次数为整型变量的值
- 例 2:
x3 = 5 * 'a'
print("x2 =", x3)
运行结果:
x3 = aaaaa
*错误案例 2
x = 2.0 * 'a'
print(x)
- 报错内容:TypeError: can’t multiply sequence by non-int of type ‘float’
- 错误原因:字符串不能与浮点型变量相乘
*错误案例 3
x = 'a' * 'b'
print(x)
- 报错内容:TypeError: can’t multiply sequence by non-int of type ‘str’
- 错误原因:字符串之间不能相乘
1.4 算数运算符 /
- 例 1
x = 6 / 2
print('x =', x)
运行结果:
x = 3.0
运算符为 / 的时候总会返回一个浮点型 (float) 变量
*错误案例 4
x = 6 / 0
print(x)
- 报错内容:ZeroDivisionError: division by zero
- 错误原因:除数不能为 0
*错误案例 5
x = 'a' / 'b'
print(x)
- 报错内容:TypeError: unsupported operand type(s) for /: ‘str’ and ‘str’
- 错误原因: 字符串之间不能相除
*错误案例 6
x = 'a' / 2
print(x)
- 报错内容:TypeError: unsupported operand type(s) for /: ‘str’ and ‘int’
- 错误原因:字符串之间不能相除
1.5 算术运算符 // : 整除 - 除法之后取整数
- 例:
x = 7 // 3
print(x)
运行结果:
2
1.6 算数运算符 % :求余
- 例:
x = 7 % 3
print(x)
运行结果
1
1.7 算数运算符 ** :幂运算
- 例 1:
x = 2 ** 3
print(x)
运行结果:
8
- 例 2:幂运算的应用 - 开方(有一定的局限性)
x = 25 ** 0.5
print(x)
运行结果
5
2 赋值运算符 =
2.1 基本概念
- a = 10 表示将数值 10 赋给字符a ,10 = a 无意义
- 例:给变量重新赋值
x = 2
x = x + 3 # 给 x 重新赋值
print(x)
运行结果
5
2.2 常用的赋值方法
- 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
3 比较运算符 - 比较左侧与右侧变量值的大小关系,最终返回布尔值
3.1 >、 <、 >=、 <=
- ‘>’: 比较左侧值是否大于右侧值
- ‘>=’ : 比较左侧值是否大于或等于右侧值
- < : 比较左侧值是否小于右侧值
- <=: 比较左侧值是否小于或等于右侧值
- ord(a) - 返回字符串 a 的 ASCII 值
- 字符串在参与比较时,取其 ASCII 值进行比较
- 多位字符串进行比较时,先用两个字符串的首位进行比较
- 例 1:
r = 10 > 20
print(r)
运行结果:
True
例 2
r = '2' > '11'
print(r)
运行结果:
True
原因:多位字符串进行比较时,先用两个字符串的首位进行比较,即字符串 ‘2’ 和 ‘1’ 进行比较,若能得出结果,则不比较后续位数,直接返回结果
3.2 == 和 !=
- ==: 比较两个对象(数据)的值是否相等
- != : 比较两个对象(数据)的值是否不相等
3.3 is 和 is not
- is: 比较两个对象是否为同一个对象(比较的是对象的 id)
- is not: 比较两个对象是否不为同一个对象(比较的是对象的 id)
区分 == 、!=、is 和 is not
- 例 1:
print(1 == True)
运行结果:
True
- 例 2:
print(1 is True)
运行结果:
False
原因:1 和True 代表的值相等,但是 1 和 True 不是同一个变量
4 逻辑运算符
4.1 not(逻辑非)- 对符号右侧的值进行非运算,对于布尔值进行取反操作,即 True 变 False,False 变 True
例 1:
a = True
a = not a
print(a)
运行结果:
False
对于非布尔值,非运算会先将其转换为布尔值再取反,0、空串、None 等代表空性的字符串的布尔值为 0,其余字符串的布尔值为1
- 例:
a = 2
a = not a
print(a)
运行结果:
False
4.2 and(逻辑与)- 对左右两侧的变量进行与运算,只要有一个 False, 就会返回 False, 否则返回 True
- 例:左侧为逻辑表达式,右侧为该表达式对应的结果
r = True and True # True
r = True and False # False
r = False and True # False
r = False and False # False
4.3 or(逻辑或)- 对左右两侧的变量进行与运算,只要有一个 True, 就会返回 True, 否则返回 False
- 例:左侧为逻辑表达式,右侧为该表达式对应的结果
r = True or True # True
r = True or False # False
r = False or True # False
r = False or False # False
5 非布尔值的与或运算 - 对非布尔值进行与或运算时,python 会先将其转换为布尔值进行运算,最终返回原值
5.1 非布尔值的与运算 - 找 False,若第一个值为 False,则返回 第一个值,否则返回第二个值
- 例 1:
r = 3 and 2
print(r)
运行结果:
2
- 例 2:
r = None and 1
print(r)
运行结果:
None
5.2 非布尔值的或运算:找 True,若第一个值为 True,则返回第一个值,否则返回第二个值
- 例 3:
r = 3 or 2
print(r)
运行结果:
3
例 4:
r = None or 1
print(r)
运行结果:
1