控制语句

分为顺序选择循环三类

选择结构

单分支选择结构

if "False": # 条件表达式
    print("YES!") # 语句块

'''
易错点:是否会打印“YES!”呢?
1. 只有0、0.0、False、""、None、空range对象、空迭代对象和空序列为False,其余均为True
2. 条件表达式不能出现赋值运算符"=",否则会报错
'''

双分支选择结构

# 1.标准双分支结构
if "0": # 条件表达式
    print("条件为真的语句块")
else:
    print("条件为假的语句块")

# 2.三元条件运算符
"条件为真的语句" if "条件表达式" else "条件为假的语句"

多分支选择结构

if "条件表达式1":
    print("语句块1")
elif "条件表达式2":
    print("语句块2")
...
elif "条件表达式n":
    print("语句块n") 
[else:
    print("语句块n+1")
]
'''
1. 中括号在计算机语言中表示可选
2. 一旦某语句块的条件表达式为真,后续条件表达式均不执行,和and的短路一样
'''

循环结构

while和for语句

  1. while循环(在控制台中按Ctrl+C结束死循环

    '''
    打印0-10的循环示例
    '''
    i = 0
    while i<=10: # 条件表达式
     print(i) # 语句块
     i += 1 # 迭代语句,作用为更新条件表达式,死循环非必选
  2. for循环

    '''
    可迭代对象(iterable)的分类:
    1. 序列(字符串、列表、元组、字典、集合)
    2. 迭代器对象(iterator)
    3. 生成器函数(generaor)
    4. 文件对象
    '''
    for variable in iterable:
     print("Block")
  3. 嵌套循环问题使用逐层分析法解决

break和continue语句

  1. break语句用于结束整个循环;对于嵌套循环,只能结束最近的循环
  2. continue语句用于结束本次循环;对于嵌套循环,只能结束最近的循环

else语句

# 在for循环中
for i in range(101):
    pass
else:
    pass

# 在while循环中
i = 1
while i <= 10:
    i += 1
else:
    pass

'''
只有完整执行循环时(即没有循环被break语句结束),相应循环(如有嵌套)的else语句内容才被执行。
'''

循环的优化

  1. 尽量减少在内层循环的计算
  2. 尽量减少嵌套循环
  3. 尽可能使用局部变量
  • 连接字符串尽可能使用join()而非+
  • 增删改list,尽可能对尾部元素操作

控制语句应用专题拓展

zip函数实现并行迭代

'''
zip()微专题在“字典的创建”已经讲解,忘记请回顾,本例仅从循环迭代的角度进行应用
'''

a = [1,2,3]
b = ['a','b','c','d']
c = [100,200,300,400,500,600]

# zip()实现并行迭代
for i,j,k in zip(a,b,c):
    print(i,j,k)
# 并行迭代替换
for i in range(min(len(a),len(b),len(c))):
    print(a[i],b[i],c[i])

推导式创建序列

  • 本专题拓展为“元组的创建”部分生成器推导式生成list或tuple微专题的延申
  • 基本结构均为:表达式 for 单个对象 in 可迭代对象
  1. 列表推导式

    list1 = [x for x in range(5)]
    
    list2 = [x*2 for x in range(101) if x%2==0]
    # 改写list2为list3
    list3 = []
    for x in range(101):
        if x%2 == 0:
            list3.append(i*2)
    
    list4 = [(i,j) for i,j in zip([1,2,3,4],['a','b','c'])]
    # 改写list4为list5
    list5 = []
    for i,j in zip([1,2,3,4],['a','b','c']):
        list5.append((i,j))
  2. 字典推导式

    key = range(4)
    value = ['a','b','c','d']
    dict1 = {k*10:''.join(v) for k,v in zip(key,value)}
    # 改写dict1为dict2
    dict2 = {}
    for k,v in zip(key,value):
        dict2[k] = v
    
    # 进阶应用:统计字符串中单个字符出现的次数
    str_ex = 'DQSIkWdsW0yxEjajBLZtrQAAAAAAAAAAAAMAACmonUJUNk5QVDhBSko2TzZGU05YVjVWTTRISFRUSy4u'
    dict_count = {char:str_ex.count(char) for char in str_ex}
  3. 集合推导式

    set_ex = {x**3 for x in range(10) if x%2!=0}
  4. 元组推导式:不存在,为什么呢?忘记了请回归相关微专题
最后修改:2026 年 04 月 03 日
如果觉得我的文章对你有用,请随意赞赏