流程控制
2020年4月19日
if - else 等流程控制
流程控制
1. 条件判断
1.1 if 语句
if
/ if-else
/ if-elif-else
用于对条件的判断,若找到真值,则执行子句体,书写格式如下
# pass 语句,表示不执行任何操作,通常用来占位
if condition:
pass
elif condition_b:
pass
else
提示
Python 中 没有 switch - case
语句,通常用字典 dict 模拟,3.10 后出现 match 语句,替代switch
1.2 判断运算符
常用的语义化运算符
- 身份运算符:
is
/is not
,表示 是 、不是 - 成员运算符:
in
/not in
,表示 包含 、包含取反
is 和 == 的区别
a,b = 1,1
a is not True
## True
a == True
## True
id(a) == id(b) and a is b
## True
c,d = [1,2,3],[1,2,3]
id(c) == id(d) or c is d
## False
is
也称为同一性运算符,它比较的是 对象唯一身份标识,即id
(在内存中的地址)==
仅 比较 值是否相同
Python 的特殊赋值
a,b = [1, 3]
print(f"a = {a}, b = {b}")
# a = 1, b = 3
a, b = 1, 2, 3
# too many values to unpack (expected 2)
a, b, _ = 1, 2, 3
解构赋值,通常需要对位,即可解构解析,否则可能报错
2. 循环
2.1 for 语句
循环,对 序列 或 可迭代对象 中的元素进行迭代,书写格式如下
for i in range(1, 6):
print(i)
else:
print("over")
##
# 1
# 2
# 3
# 4
# 5
# over
- 每次从
range
序列对象中,取元素,赋值给变量i
- 可以指定
else
,作为迭代结束 (StopIteration
)后的执行的子句,并结束循环
enumerate
for
循环十分强大,不仅可遍历,甚至能用 多个参数接收 迭代对象返回的 多个值
li = ["dawei", "ker", "marry", "lilisi"]
for index, name in enumerate(li, 1):
print(f"name is {name}\t - index is {index}")
if index < 4:
continue
elif "lili" in name:
print("强制终止")
break
print("next loop")
else:
print("正常结束")
##
# name is dawei - index is 1
# name is ker - index is 2
# name is marry - index is 3
# name is lilisi - index is 4
# 强制终止
enumerate
可以返回可迭代对象的 索引 和 元素 ,for
循环可以指定多个参数接收continue
若满足条件,则 跳过后续逻辑 继续下次循环break
若满足条件,则 强制终止 并 跳出循环
2.2 while 语句
重复地检验表达式,来触发循环,通常在 病毒、某种 监控、定时任务、异步回调 等机制使用,书写格式如下
while True: # condition
if condition:
continue
else:
break
pass
else:
pass
Linux 下执行解释器
额外,在 Linux 系统中,若出现编写脚本,不能运行的情况,多半未在环境变量中指定 Python 解释器,因此开头键入如下,即可帮内核找到解释器(导入模块时会自动忽略)
#!/usr/bin/env python3