流程控制

五十岚2020年4月19日
大约 2 分钟

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 后出现 matchopen in new window 语句,替代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 ,作为迭代结束 (StopIterationopen in new window)后的执行的子句,并结束循环

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
上次编辑于: 2022/9/20 06:19:59