分支和循环

本文深入讲解Python中的控制结构,包括顺序执行、分支结构(if单分支、双分支、多分支)和循环结构(for、while)。通过实例演示如何使用这些结构进行条件判断和循环操作,适合初学者和进阶者学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、分支结构

1、控制流程

1)顺序执行:从上往下依次执行代码(默认)
2)分支结构:根据条件执行某段代码
注:python中实现分支结构的方式只有一种:if
3)循环结构:让指定的代码重复执行操作
注:python中实现循环结构的方式有两种: for, while

2、分支结构:if

1)if 单分支结构 - 满足某个条件就执行某个操作,不满足不执行

语法:

if 条件语句:
	代码块

说明:
if - 关键字,固定写法
条件语句 - 可以是任何有结果的表达式,比如:独立的数据,运算表达式(不能是赋值运算),函数调用表达式
: - 固定写法
代码块 - 和 if 保持一个缩进的一条或者多条语句,满足条件才会执行一条或者多条语句(至少有一条语句)

执行过程:先判断条件语句是否为True(如果不是布尔值,先转换成布尔值在判断)如果为True就执行if语句中的代码块,否则就不执行

练习1:输入一个整数,要求:如果输入的数字是偶数就打印,否则不打印

num = int(input("请输入一个整数"))
if num % 2 == 0:
	print("数字为偶数")
或者:
num = int(input("请输入一个整数"))
if num & 1 == 0:
	print("数字为偶数")

练习2:输入年龄,根据年龄值得范围打印"成年人"

age = int(input("请输入年龄"))
if age >= 18:
	print("成年人")

2)if 双分支结构 - 满足某个条件就执行某个操作,否则执行另一个操作

语法:

if 条件语句:
	代码块1
else:
	代码块2

说明:
else - 关键字,固定写法
: - 固定写法
条件语句 - 可以是任何有结果的表达式,比如:独立的数据、运算表达式(不能是赋值运算)、函数调用表达式
代码块1 - 和 if 保持一个缩进的一条或者多条语句,满足条件才会执行的一条或者多条语句。(至少有一条语句)
代码块2 - 和 else 保持一个缩进的一条或者多条语句,条件不满足的时候需要执行的一条或者多条语句。(至少有一条语句)

执行过程:
先判断条件语句是否为True(如果不是布尔值,就先转换成布尔值在判断)
如果为True就执行if语句中的代码块1,否则就执行else语句中的代码块2

练习3:根据输入的年龄范围打印‘成年’或者‘未成年’

age = int(input("请输入年龄"))
if age >= 18:
	print("成年人")
else:
	print("未成年")

3)if 多分支结构 - 满足不同的条件执行不同的操作(后面的条件是在前面的条件不成立的时候判断的)

语法:

if 条件语句1:
    代码块1
elif 条件语句2:
    代码块2
elif 条件语句3:
    代码块3
...
else:
    代码块N

说明:
elif - 关键字,固定写法
这个结构中 elif 可以根据情况有1个或者多个,else 也可以根据情况有或者没有

执行过程:
从前往后依次判断每个条件语句是否成立,如果哪个条件是成立的,就执行对应的代码块,然后整个结构直接结束。
如果前面的条件都不成立,才执行 else 中的代码块

练习3:根据分数进行等级的判定 ([0, 60)-D,[60, 80) -C,[80, 90)-B,[90, 100]-A)

score = 85
if score < 0:
    print("不合法")
elif score < 60:
    print("等级:D")
elif score < 80:
    print("等级:C")
elif score < 90:
    print("等级:B")
elif score <= 100:
    print("等级:A")
else:
    print("不合法")

二、循环结构

1、for循环

语法:

for 变量 in 序列:
    循环体

for - 关键字,固定写法
变量 - 可以是已经赋值过的变量,也可以是没有赋值过的变量
in - 关键字,固定写法
序列 - 任何容器型数据类型的数据、字符串、列表、元组、集合、字典、迭代器、生成器、range…
: - 固定写法
循环体 - 和 for 保持一个缩进的一条或者多条语句,需要被重复执行的一条或者多条语句

执行过程:
让变量去序列中取值,一个一个的取,取完为止,每取一个值执行一次循环体
(for 循环的循环次数由序列中元素的个数决定)
例:

for x in "hello":
    print("===")

写一个循环将打印 10 的操作执行三次

for x in "abc":
    print("10")

2、range 函数 - 用来产生指定范围内的数字序列

  1. range(N) - 产生 0 ~ N-1 的数字序列(N必须是正整数)
    range(3) - 0, 1, 2
for x in range(3):
  print("+++")

2)range(M, N) - 产生 M ~ N-1 的数学序列(M,N是整数,M < N)
range(5, 11) - 5, 6, 7, 8, 9, 10

for x in range(5, 11):
    print(x)
    
for x in range(-5, 5):
    print(x)

3)range(M, N, step) - step表示步长
range(1, 10, 2): 1, 3, 5, 7, 9
range(10, 0, -1): 10, 9, 8, 7, 6, 5, 4, 3, 2, 1

for x in range(5, 1, -1):
    print(x)

for x in range(1, 101, 2):
    print(x)

练习1:打印 0~100 中能够被3整除的数的数

for x in range(0, 100, 3):
    print(x)

练习2:打印 0~100 中能够被3整除并且个数是3的所有的数

for x in range(0, 100, 3):
    if x % 10 == 3:
        print(x)

练习3:统计 100~200 能够被3整除但是不能被2整除的数的个数

count = 0
for x in range(102, 201, 3):
    if x & 1 == 1:
        count += 1
print(count)
或者:
count = 0
for x in range(102, 201, 3):
    if x % 2 != 0:
        count += 1
print(count)

练习4:计算1+2+3+…+100的和

sum1 = 0
for num in range(1, 101):
    sum1 += num
print(sum1)

运算过程分析:
sum1 = 0
num = 1, sum1 += num -> sum1 += 1 ->sum1 = sum1 + 1 = 1
num = 2, sum1 += num -> sum1 += 2 ->sum1 = sum1 + 2 = 1 + 2
num = 3, sum1 += num -> sum1 += 3 ->sum1 = sum1 + 3 = 1 + 2 + 3

3、while循环

语法:

while 条件语句:
    循环体

说明:
while - 关键字,固定写法
条件语句 - 任何有结果的表达式,独立的数据,运算表达式(不能有赋值运算)、函数调用表达式
: - 固定写法
循环体 - 和while保持一个缩进的一条或者多条语句,需要重复执行的语句

执行过程:
先判断条件语句是否为True(如果不是布尔值,先转换布尔值),如果是,就执行一次循环体
执行完在判断条件语句是否为True,为True再执行循环体,以此类推,直到条件语句的结果是False循环就结束

注:

变量 = 0
while 变量 < 次数
    需要重复执行的操作
    变量 += 1

练习1:执行3次打印"hello"的操作

num = 0
while num < 3:
    print("hello")
    num += 1

过程解析:
num = 0
num < 4(True),print(“hello”),num += 1 -> num = num + 1 = 0 + 1
num < 4(True),print(“hello”),num += 1 -> num = num + 1 = 1 + 1 = 2
num < 4(True),print(“hello”),num += 1 -> num = num + 1 = 2 + 1 = 3
num < 4(True),print(“hello”),num += 1 -> num = num + 1 = 3 + 1 = 4
num < 4(False)

练习2:1+2+3+…+10

num1 = 0
count = 0
while num1 < 10:
    num1 += 1
    count += num1
print(count)

练习3:统计所有两位数中个位数加十位数是5的数字的个数(并且打印每一个符合要求的数字)

num2 = 9
count1 = 0
while num2 < 50:
    num2 += 1
    if num2 % 10 + num2 // 10 == 5:
        count1 += 1
        print(num2)
print(count1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值