文章目录
- 一、基本运算符
- (一)赋值运算
- 1.增量赋值
- 2.交叉赋值
- 3.链式赋值
- 4.解压赋值
- (二)比较运算
- 1.显式布尔值:
- (1)比较运算的结果
- (2)变量值直接就是True或False
- 2.隐式布尔值:
- (三)逻辑运算符
- 1.not 条件:
- 2.条件1 and 条件2:
- 3.条件1 or 条件2:
- 4.优先级划分
- 二、流程控制之if条件判断
- (一)什么是if条件判断
- (二)为什么要有if条件判断
- (三)如何用if条件判断
- 1.if判断的语法
- 2.if单独使用
- 3.if+elif
- 4.if+else
- 5.if+elif+else
- 6.if判断嵌套if
一、基本运算符
(一)赋值运算
赋值运算的作用:
赋值运算是为了让代码在不丧失可读性的前提下,使代码更简洁。
1.增量赋值
>>> age=18
>>> age += 1
>>> print(age)
19
运算符 | 描述 | 实例 |
= | 简单的赋值运算符 | 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 |
2.交叉赋值
x = 111
y = 222
temp=x # 需引入中间变量
x=y
y=temp
x, y = y, x # 一行代码解决,简洁高效
3.链式赋值
>>> x=10
>>> y=x
>>> z=y
>>> print(x, y, z)
10 10 10
>>> z = y = x = 10
>>> print(x, y, z)
10 10 10
>>> print(id(x), id(y), id(z))
140726143342528 140726143342528 140726143342528
4.解压赋值
>>> salaries = [1.1, 2.2, 3.3, 4.4, 5.5]
>>> mon0 = salaries[0]
>>> mon1 = salaries[1]
>>> mon2 = salaries[2]
>>> mon3 = salaries[3]
>>> mon4 = salaries[4]
>>> print(mon0, mon1, mon2, mon3, mon4)
1.1 2.2 3.3 4.4 5.5
>>> mon0, mon1, mon2, mon3, mon4 = salaries # 使用一行代码实现,解决代码冗余的问题
>>> print(mon0, mon1, mon2, mon3, mon4)
1.1 2.2 3.3 4.4 5.5
>>> mon0, mon1, mon2, *_ = salaries
>>> *_, x, y, z = salaries
>>> x, *_, z = salaries
注意:变量名的个数必须与包含的值个数相同,不能多也不能少。若需要取开头几个,或者取结尾几个,或者开头以及结尾的几个同时取,可以使用**”*_“*作为填充的变量名实现,其中起作用的是星号,下划线的作用是声明这个变量没有意义。
对于字典来说,解压赋值取出来的是字典的key。
>>> dic = {"k1": 111, "k2": 222}
>>> x, y = dic
>>> print(x, y)
k1 k2
了解:字符串也可以解压赋值
>>> a,b,c,d,e="hello"
>>> print(a,type(a),b,c,d,e)
h <class 'str'> e l l o
(二)比较运算
条件:但凡可以得到True或者False两种值的东西都能当作条件。
1.显式布尔值:
表面上看就是True或者False。
(1)比较运算的结果
print(10 > 3) # True
print(10 == 3) # False
(2)变量值直接就是True或False
tag = True # 自定义一个布尔值
2.隐式布尔值:
表面上看上去是一种值,在底层会被解释器转换成True或False
(1)特殊代表False的字符:None,0,空(空字典、空字符串、空列表)
(2)其余的值的布尔值均为True
(三)逻辑运算符
1.not 条件:
对条件的结果取反。
print(not 10 > 3) # False
print(not False) # True
print(not 0) # True
2.条件1 and 条件2:
连接左右两个条件,两个条件必须都为True,最终结果才为True。
print(True and 10 > 3) # True
print(True and 10 == 3) # False
3.条件1 or 条件2:
连接左右两个条件,两个条件必须都为False,最终结果才为False。
print(False or 10 == 3) # False
print(True or 10 == 3) # True
ps:偷懒原则=》短路运算
即在逻辑运算时,根据条件顺序执行的时候,如果在某一步骤可以得出结果,则终止运算。
4.优先级划分
多个条件连续的时候,根据优先级,推荐先将and左右的条件括起来,结合not之后,最后就是or的判断。
res = 3 > 4 and 4 > 3 or not 1 == 3 and "x" != "x" or 3 > 3
print(res) # False
res1 = (3 > 4 and 4 > 3) or ((not 1 == 3) and "x" != "x") or 3 > 3
# False False False
print(res1) # False
# 隐式布尔值结果输出
print(10 and 0) # 0
print(10 and False) # False
print(10 or False) # 10
二、流程控制之if条件判断
(一)什么是if条件判断
if条件判断是一段代码块,使用一个或多个条件,根据条件判断的结果(True or False),选择执行的子代码块,得出结果。
(二)为什么要有if条件判断
为了控制计算机能像人一样去完成判断的过程。
(三)如何用if条件判断
1.if判断的语法
if 条件1:
子代码块1
elif 条件2:
子代码块2
elif 条件3:
子代码块3
...
else:
子代码块
2.if单独使用
if结构中,只有一个if是可以的
inp_name=input('你的名字: ')
if inp_name == "egon":
print('输入正确')
print('其他代码')
3.if+elif
inp_name=input("你的名字: ")
if inp_name == "egon":
print("您是super VIP")
elif inp_name == "张三":
print("您是法外狂徒")
elif inp_name == "李四":
print("您是张三的好朋友")
print("其他代码")
4.if+else
inp_name = input("你的用户名: ")
inp_pwd = input("你的密码: ")
if inp_name == "zhangsan" and inp_pwd == "123":
print("登录成功")
else:
print("用户名或密码错误,请重新输入正确的用户名和密码")
5.if+elif+else
"""
如果:成绩>=90,那么:优秀
如果成绩>=80且<90,那么:良好
如果成绩>=70且<80,那么:普通
其他情况:很差
"""
score = input("请输入您的成绩: ")
score = int(score)
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 70:
print("普通")
else:
print("很差")
6.if判断嵌套if
print("ok0")
if 10 < 3: # 由于结果为False,子代码块不执行
if 1 == 1:
print("ok1")
print("ok2")
print("ok3")
print("ok4") # ok0 ok4
e >= 90:
print(“优秀”)
elif score >= 80:
print(“良好”)
elif score >= 70:
print(“普通”)
else:
print(“很差”)
### 6.if判断嵌套if
```python
print("ok0")
if 10 < 3: # 由于结果为False,子代码块不执行
if 1 == 1:
print("ok1")
print("ok2")
print("ok3")
print("ok4") # ok0 ok4