数据分析笔记09:Python条件语循环

数据分析笔记09:Python条件语循环

Python的缩进机制

Python的重要特性在于使用缩进来表示代码层级。标准缩进为4个空格。快捷键Tab可自动缩进4个空格。缩进表示嵌套关系,相同缩进表示同级语句。

缩进操作技巧包括:向右缩进使用Tab,向左缩进使用Shift + Tab,多行同时缩进可选中多行后按Tab。

基本if语句

语法结构:

复制代码
if 条件判断:
    # 条件成立时执行的代码
    语句1
    语句2

执行逻辑:若条件返回True,则执行缩进的代码块;若条件返回False,则跳过缩进的代码块。

示例1:简单判断

复制代码
if True:
    print('条件成立执行的代码一')
   
print('无论条件是否成立都执行的代码')

示例2:数值比较

复制代码
if 9 > 8:
    print('条件成立执行的代码一')
   
print('无论条件是否成立都执行的代码')

实际应用:年龄判断上网

复制代码
age = input('请输入你的年龄:')
if int(age) > 18:
    print('已经成年可以上网')
   
print('系统关闭')

重要提醒:input()接收的数据为字符串类型,需要使用int()转换为整型才能进行数值比较。

if-else语句

基本语法

复制代码
if 条件判断:
    # 条件成立时执行
    pass 1
else:
    # 条件不成立时执行
    pass 2

执行逻辑:if表示如果条件成立则执行pass 1,else表示否则执行pass 2。

实际示例

复制代码
age = input('请输入你的年龄:')
if int(age) > 18:
    print('已经成年可以上网')
else:
    print('没有成年不能上网')
   
print('系统关闭')

运行结果:输入19输出「已经成年可以上网」后「系统关闭」;输入12输出「没有成年不能上网」后「系统关闭」。

if-else与人类思维的相似性在于其类似于日常决策,例如如果周末是晴天则出去玩,否则待在家里。Python的条件语句与人类的逻辑思维高度一致。

多重判断(elif)

语法结构

复制代码
if 条件1:
    # 条件1成立时执行
    代码块1
elif 条件2:
    # 条件2成立时执行
    代码块2
elif 条件3:
    # 条件3成立时执行
    代码块3
else:
    # 以上条件都不成立时执行
    代码块4

实际案例:年龄段判断

复制代码
age = int(input('请输入您的年龄:'))
if age < 18:
    print(f'您的年龄是{age}岁,童工一枚')
elif age >= 18 and age <= 60:
    print(f'您的年龄是{age}岁,合法公民')
else:
    print(f'您的年龄是{age}岁,可以退休')

逻辑分析如下表所示:

输入年龄 判断结果 输出内容
16 age < 18 童工一枚
22 18 <= age <= 60 合法公民
77 age > 60 可以退休

and逻辑运算符的应用:age >= 18 and age <= 60 表示两个条件同时成立才返回True。

if嵌套

嵌套结构

复制代码
if 条件1:
    代码1
    代码2
    if 条件2:
        代码4 # 需要条件1和条件2都成立
        代码5
    else:
        代码6
else:
    代码7

执行逻辑:只有当条件1成立后,才会判断条件2;代码4和代码5需要条件1和条件2同时成立才执行。

实际案例:乘坐公交车

复制代码
answer = input('告诉我是否有钱:')
if answer == '有钱':
    print('请上车大哥')
   
    seat = input('是否有座位(输入1代表有座位,其他代表无座位):')
   
    if seat == '1':
        print('大哥请坐下')
    else:
        print('大哥请站一会')
else:
    print('没钱请下车')

场景分析:有钱且有座位输出「请上车大哥」后「大哥请坐下」;有钱且无座位输出「请上车大哥」后「大哥请站一会」;没钱输出「没钱请下车」(不会判断座位)。

改进版:更严谨的判断

复制代码
answer = input('告诉我是否有钱:')
if answer == '有钱':
    print('请上车大哥')
   
    seat = input('是否有座位(输入1代表有座位,其他代表无座位):')
   
    if seat == '1':
        print('大哥请坐下')
    else:
        print('大哥请站一会')
elif answer == '没钱':
    print('没钱请下车')
else:
    print('输入错误')

多重判断与嵌套的组合:该例子同时使用了多重判断(if-elif-else)和嵌套(内部的if-else),使程序逻辑更加完善。

while循环

基本语法

复制代码
while 条件判断:
    # 条件成立时重复执行的代码
    循环体

执行逻辑:当条件为True时,不断重复执行循环体,直到条件变为False才跳出循环。

死循环示例

复制代码
while 9 > 8:
    print('我请你吃饭')

警告:死循环。9 > 8 永远成立,程序会无限循环打印「我请你吃饭」,永不停止。按红色停止按钮可终止程序。

跳出机制:计数器

复制代码
i = 0
while i < 5:
    print('我请你吃饭')
    i += 1 # 每次循环i加1
   
print('任务完成')

执行过程如下表所示:

循环次数 i的值 i < 5? 操作
第1次 0 True 打印,i变为1
第2次 1 True 打印,i变为2
第3次 2 True 打印,i变为3
第4次 3 True 打印,i变为4
第5次 4 True 打印,i变为5
第6次 5 False 跳出循环

跳出机制的重要性:while循环必须有跳出机制,否则会造成死循环,导致程序卡死,后续代码无法执行。

for循环

基本语法

复制代码
for 变量 in range(数字):
    # 循环执行的代码
    循环体

range()函数:生成数字区间。

range()函数详解

三种用法:

用法1:range(n) - 从0开始

复制代码
range(5) # 生成:0, 1, 2, 3, 4

用法2:range(start, stop) - 指定区间

复制代码
range(2, 5) # 生成:2, 3, 4

用法3:range(start, stop, step) - 指定步长

复制代码
range(0, 10, 2) # 生成:0, 2, 4, 6, 8

range()的左闭右开特性:range(5) 生成 0, 1, 2, 3, 4,包含起始值(左闭),不包含结束值(右开)。

基本for循环示例

复制代码
for i in range(5):
    print('我请你吃饭')
   
print('任务完成')

执行过程:i依次取值0至4,每取一个值执行一次循环体,自动跳出循环,执行后续代码。

for循环的自动特性

for循环的优势在于不需要手动设置计数器,不需要手动i += 1,自动取值,自动结束,代码更简洁,不易出错。

for循环嵌套

嵌套结构

复制代码
for 外层变量 in range(外层次数):
    # 外层循环体
    for 内层变量 in range(内层次数):
        # 内层循环体

执行规则:外层循环每执行一次,内层循环完整执行所有次数;外层循环必须等内层循环全部执行完,才能进入下一次外层循环。

实际案例:打印星星矩阵

目标:打印4行,每行3个星星

代码实现:

复制代码
for j in range(4): # 外层循环控制行数
    for i in range(3): # 内层循环控制每行的星星数
        print('*', end='') # end='' 取消默认换行
    print() # 打印换行符

执行过程详解

如下表所示:

步骤 j值 i值 操作 结果
1 0 0, 1, 2 打印3个* *(第1行)
2 1 0, 1, 2 打印3个* *(第2行)
3 2 0, 1, 2 打印3个* *(第3行)
4 3 0, 1, 2 打印3个* *(第4行)

print()的end参数:print('*', end='') 表示打印后不换行,默认情况下print()会自动在末尾加换行符。

循环控制:break

break的作用

功能:立即终止循环,跳出整个循环结构。

语法:

复制代码
while/for 循环条件:
    if 某个条件:
        break # 终止循环
    其他代码

实际案例:吃苹果

复制代码
i = 1
while i <= 5:
    if i == 4:
        print('吃饱了不吃了')
        break
   
    print(f'吃了第{i}个苹果')
    i += 1
print('从循环中跳出')

执行分析:i=1, 2, 3时正常打印并执行i+=1;i=4时触发break,立即跳出循环,不再执行「吃了第4个苹果」,不再执行i+=1,直接执行循环外的代码。

break的特点:遇到break立即终止循环,不执行break后的任何循环体代码,直接跳到循环外继续执行。

循环控制:continue

continue的作用

功能:跳过本次循环,继续下一次循环。

语法:

复制代码
while/for 循环条件:
    if 某个条件:
        continue # 跳过本次循环
    其他代码

实际案例:跳过偶数

需求:打印1到19之间的所有奇数

复制代码
for i in range(1, 20):
    if i % 2 == 0: # 如果是偶数
        continue # 跳过本次循环
    print(i) # 打印奇数

执行过程详解

当i=1时:1%2=11%2=1,不等于0,不执行continue,打印1。

当i=2时:2%2=02%2=0,等于0,执行continue,跳过print(i),不打印2,直接进入下一次循环。

当i=3时:3%2=13%2=1,不等于0,不执行continue,打印3。以此类推。

取余运算符的妙用:i%2==0i%2==0 判断偶数,偶数除以2余数为0,奇数除以2余数为1。

break vs continue

核心区别

如下表所示:

特性 break continue
作用 终止整个循环 跳过本次循环
循环状态 不再继续循环 继续下一次循环
后续代码 跳出后不执行循环体 跳过后执行下一次循环
应用场景 找到目标后停止 跳过特定条件

形象比喻

break类似于吃苹果吃饱了:吃到第3个苹果吃饱了,不再吃任何苹果,结束吃苹果的行为。

continue类似于苹果有虫子:第3个苹果有虫子,不吃,继续吃第4个、第5个苹果,只是跳过有虫子的那个。

对比示例

使用break:

复制代码
for i in range(1, 6):
    if i == 3:
        break
    print(i)
# 输出:1, 2

使用continue:

复制代码
for i in range(1, 6):
    if i == 3:
        continue
    print(i)
# 输出:1, 2, 4, 5

总结

缩进的重要性

Python独有的缩进机制:用4个空格表示代码层级,相同缩进等于同级代码,增加缩进等于嵌套代码,不用大括号,更简洁清晰。

条件语句总结

如下表所示:

语句类型 语法 应用场景
if if 条件: 单一条件判断
if-else if 条件: ... else: 二选一
elif if ... elif ... else: 多选一
嵌套 if内套if 多层条件判断

循环语句总结

如下表所示:

循环类型 语法 特点 适用场景
while while 条件: 条件控制 不确定次数
for for i in range(): 次数控制 确定次数

循环控制总结

如下表所示:

关键字 作用 效果
break 终止循环 跳出整个循环
continue 跳过本次 进入下一次循环
相关推荐
天才测试猿17 小时前
Jmeter压测实战:Jmeter二次开发之自定义函数
自动化测试·软件测试·python·测试工具·jmeter·职场和发展·压力测试
QT 小鲜肉18 小时前
【孙子兵法之中篇】009. 孙子兵法·行军篇
人工智能·笔记·读书·孙子兵法
LO嘉嘉VE18 小时前
学习笔记二十五:支持向量机-核函数
笔记·学习·支持向量机
SadSunset18 小时前
(13)复杂查询
java·笔记·架构·mybatis
浩瀚地学18 小时前
【Java】ArrayList
java·开发语言·经验分享·笔记
haiyu_y18 小时前
Day 30 函数专题 1
python
培根芝士18 小时前
使用Scripting API获取CS2游戏数据
python·游戏
LeonIter18 小时前
《以日为鉴》读书随笔
笔记
CesareCheung18 小时前
用python写一个websocket接口,并用jmeter压测websocket接口
python·websocket·jmeter
xian_wwq19 小时前
【学习笔记】威胁情报
网络·笔记·学习