当前位置:首页>python>Python入门第 5 课:条件控制与循环

Python入门第 5 课:条件控制与循环

  • 2026-09-10 18:14:50
Python入门第 5 课:条件控制与循环

if 语句

Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块

# 语法(多种写法 if, if-elif, if-else, if-elif-else)if  判断条件1:     执行语句1    ……elif 判断条件2:    执行语句(1)    ……elif 判断条件3:    执行语句①    ……else:    执行语句㈠    ……# 三元运算,三目运算# mysql :  if(表达式, True 时执行,False 是执行)# python:  为True时执行 if 表达式 else 为False时执行a = 30b = 20c = a if a < b else bprint(c)  # 20

while 循环

while 循环是个死脑筋,“只要条件在,我就一直干!”,只要你给它的条件是成立的(True),它就会一直循环下去,直到海枯石烂。

注意:while 循环要注意条件的变化,否则容易陷入死循环

sheep_count = 1while sheep_count <= 5:print(f"数到第 {sheep_count} 只羊 🐑")# 一定加上 条件的变化    sheep_count += 1# 相当于 sheep_count = sheep_count + 1print("睡着了...")

for 循环

for 循环适合“有清单,按着做!”的任务。只要你给它一个列表,它就能挨个处理。

for  变量  in  可迭代对象:    dosthing    可以 与 变量有关的事情    与变量无关的事情,都可以# 可迭代对象:  str  list  tuple  dict  set  range

例如:清空购物车

shopping_cart = ["键盘", "鼠标", "快乐水", "防脱洗发水"]for item in shopping_cart:print("正在购买:" + item)print("钱花光了,心安理得了!")

神器辅助:range() 函数

如果没有列表,只想单纯重复几次怎么办?用 range()!它是个数字制造机。

'''可迭代数字对象 range( start ,end ,step )     start: 开始的值    end : 结束的值  (不包含)    step: 默认为1range(end): 默认取 0-end ,不包含 end '''for i inrange(3):  # 会生成 0, 1, 2print("重要的事情说三遍!")

else子句

在循环中接else 子句,else 子句中的内容只有循环正常结束(没有被break)时才会执行

# ----- for -----# 搜索水果fruits = ["苹果", "香蕉", "橘子"]search = "榴莲"for fruit in fruits:if fruit == search:print(f"找到{search}啦!")breakelse:print(f"没有找到{search}...")  # 只有循环没有被break中断时才执行# ----- while -----count = 0while count < 3:print(f"count = {count}")    count += 1else:print("循环正常结束!")  # 只有循环没有被break中断时才执行

循环嵌套

循环嵌套,简单来说,就是一个循环里面再放一个循环。就像俄罗斯套娃一样,一层套一层。

print('---- for + for ---')for zu inrange(1, 4):  # 外层循环:控制组数(1到3组)print(f"--- 第 {zu} 组开始了!咬咬牙! ---")for ge inrange(1, 6):  # 内层循环:控制个数(1到5个)print(f"做了第 {ge} 个俯卧撑 💦")print("教练:练得不错,明天继续!你:卒 💀")print('---- while + while ---')i = 1while i < 6:print(f'小明同学跑了{i}圈了')    j = 0while j < 5 - i:print(f'  小明同学做了{j + 1}个俯卧撑')        j += 1    i += 1

性能警告:嵌套层数越多,循环次数呈指数级增长!

在实际开发中,超过3层嵌套就要考虑优化了,否则程序可能会慢得像蜗牛。

循环控制

循环控制语句可以更改语句执行的顺序 。我们很多时候并不需要循环完整的执行完毕,我们需要再一些步骤跳过,甚至是结束循环。

控制语句描述
break
语句
在语句块执行过程中终止循环,并且跳出整个循环
continue
语句
在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。
pass
语句
pass是空语句,是为了保持程序结构的完整性。
'''    pass  : 保证 结构 ,在 if 可以用    break : 结束当前所在层级的 循环 ,包括else    continue : 跳过当次循环,开始下一次'''# break:强制结束当前循环dates = ["正常人", "正常人", "奇葩", "正常人"]for person in dates:if person == "奇葩":print("遇到奇葩,快溜!")break# 掀桌子,后面的相亲都取消!print("愉快地喝咖啡 ☕")# 重点:break只结束当前所在层级的循环!for i inrange(1, 4):print(f"\n外层循环第{i}次")for j inrange(1, 6):if j == 3:print(f"  遇到{j},内层循环break!")break# 内层循环被break了,但外层循环照常执行!print(f"  内层循环当前值:{j}")# continue:跳过本次,继续下一次fried_rice = ["米饭", "鸡蛋", "葱花", "火腿"]for food in fried_rice:if food == "葱花":print("恶心心,挑出去![吐了呀]")continue# 跳过葱花,继续吃下一个print("吧唧吧唧吃掉:" + food)# pass:还没想好if要做什么# 也可用于函数、类等age = 18if age >= 18:pass# 等会儿再写成年人的逻辑else:print("未成年人")

循环的高级玩法

1. 列表推导式:一行搞定循环

列表推导式,也叫:列表的解析式,推导式主要的用途是让Python对数据结构的处理更加简单,方便,而且更高效 。

# 传统方法squares = []for i inrange(1, 6):    squares.append(i ** 2)print(squares)  # [1, 4, 9, 16, 25]# 列表推导式(Python特有)squares = [i ** 2for i inrange(1, 6)]print(squares)  # [1, 4, 9, 16, 25]# 还能加条件过滤even_squares = [i ** 2for i inrange(1, 11) if i % 2 == 0]print(even_squares)  # [4, 16, 36, 64, 100]

2. enumerate:既要索引又要值

# 普通写法fruits = ["苹果", "香蕉", "橘子"]for i inrange(len(fruits)):print(f"第{i+1}个水果是{fruits[i]}")# 优雅写法for i, fruit inenumerate(fruits, 1):  # 从1开始计数print(f"第{i}个水果是{fruit}")

3. zip:并行遍历

names = ["张三", "李四", "王五"]scores = [85, 92, 78]for name, score inzip(names, scores):print(f"{name}得了{score}分")

【点赞】+【推荐】你的每一次鼓励,都是小编熬夜掉头发写代码的动力!关注我,带你用最骚的姿势,学最实用的Python!下期我们讲【函数】...👋

最新文章

随机文章