当前位置: 首页 > news >正文

Python基础 3》流程控制语句

文章目录

  • 一、流程控制语句的三种方式
  • 二、顺序结构
  • 三、分支结构(if)
    • 1.单分支结构
    • 2.双分支结构
    • 3.多分支结构
    • 4.分支嵌套
  • 四、循环结构(for、while)
    • 1.while 循环
      • 1.1.while 循环语法
      • 1.2.while 循环嵌套
    • 2.for 循环
      • 2.1.range函数
      • 2.2.for 循环语法
      • 2.3.for 循环嵌套
    • 3.关键字(break、continue)

一、流程控制语句的三种方式

  • 顺序结构 ----> 按照顺序执行代码
  • 分支结构 ----> 有条件约束,达到了某个条件才会执行代码
  • 循环结构 ----> 循环执行代码

二、顺序结构

# 程序按照顺序依次执行代码,一句接一句的执行
# 我们平常写的代码都是顺序结构
print("a")
print("b")
print("c")

三、分支结构(if)

Python 的分支结构的语法是 if。

分支结构我举几个小结:

  1. 单分支结构
  2. 双分支结构
  3. 多分支结构
  4. 分支嵌套

注意点:

  1. 不要忘记写判断条件后的冒号. 且一定要是英文冒号.
  2. if语句下的代码, 要缩进一次. 缩进一次是4个空格.
  3. elif语句可以写多个.
  4. 条件判断是互斥且有序的.
  5. 满足条件1, 将不会执行2,3,4.
  6. 不满足条件1, 才会进入条件2, 如果条件2满足, 则不会执行3,4,依此类推.
  7. else不是必须写的. 如果条件不成立时没有要做的事情, 可以不写.

1.单分支结构

"""
分支结构是程序在运行过程中达到某一条件才会执行代码的结构。
单分支结构
- 程序在运行过程中,如果达到了某个条件,就会执行该条件下的代码
"""score = 89
if score >= 90:print(f"优秀")

2.双分支结构

"""
双分支结构
- 程序在运行过程中, 如果达到了某个条件, 就执行某个代码, 否则执行另一个代码.
- 语法:
-  if 条件表达式:
-     条件成立执行的代码
-  else:
-     条件不成立执行的代码
"""
# 编写一个高考学校的录取系统.
# 定义一个变量表示考试考了多少分.
score = int(input("请问你考了多少分?:"))
# 如果分数超过690分, 就可以去读清华大学.
# 如果分数没有达到此分数, 就不能去读了.if score > 690:  # bool(score > 690)print('恭喜你, 可以报考清华大学了')
else:print('很可惜, 还需要继续努力.')

3.多分支结构

"""
多分支结构
- 程序在运行过程中, 如果达到了某个条件, 就执行某个代码, 否则执行另一个代码.
- 语法:
-  if 条件表达式:
-     条件成立执行的代码
-  elif 条件表达式:
-     条件成立执行的代码
-  elif 条件表达式:
-     条件成立执行的代码
-  else:
-     条件不成立执行的代码
"""# 程序接收一个数, 为学生考试的分数. 给学生考试的分数分档次.
# (1)100: 则提示满分.
# (2)90-100: 优秀
# (3)80-90: 良好
# (4)70-80: 不错
# (5)60-70: 及格
# (6)60以下: 不及格score = int(input("请问你考了多少分?:"))
# 这种需求使用if + elif是最合适的.
if score == 100:print("恭喜你, 考了满分")
elif 90 <= score:print("恭喜你, 成绩优秀")
elif 80 <= score:print("恭喜你, 成绩良好")
elif 70 <= score:print("恭喜你, 成绩不错")
elif 60 <= score:print("及格边缘, 需要在努力")
else:print("不及格")

4.分支嵌套

"""
分支嵌套
- 程序在运行过程中, 如果达到了某个条件, 就执行某个代码, 否则执行另一个代码.
- 语法:
-  if 条件表达式:
-     条件成立执行的代码
-        if 条件表达式:
-            条件成立执行的代码
-  else:
-     条件不成立执行的代码
"""
# 考试分3科目: 语文, 数学, 英语. 每一科目满分150.单科及格分为90. 满分450.
# 有一所学校. 招生条件是分数达到360. 且有附加条件.
# 这所学校呢, 理科专业特别强. 所以数学, 需要单科达到130以上, 且总分需要360.
# 特例: 如果数学满分, 那么总分可以减少20即可录取.
# 语文跟英语不限制.
# 现在需要写一个程序来判断是否能够读这个学校.chinese = int(input('语文考了多少分:'))
maths = int(input('数学考了多少分:'))
english = int(input('英语考了多少分:'))total = chinese + maths + english# if maths == 150:
#     if total >= 340:
#         print('恭喜你以数学满分的成绩录取')
#     else:
#         print('很可惜, 语文英语还需努力.')
# elif maths >= 130:
#     if total >= 360:
#         print('恭喜你已经被录取')
#     else:
#         print('很可惜, 语文英语还需加倍努力.')
# else:
#     if total >= 360:
#         print("很可惜, 数学还需要努力")
#     else:
#         print("可惜, 你没有考上.")if total >= 360:if maths >= 130:print('恭喜你, 已经被录取')else:print("很可惜, 你没有被录取")
elif total >= 340:if maths == 150:print('恭喜你以数学满分的成绩录取')else:print('很可惜. 还差一点点.')
else:print('你没有被录取')

四、循环结构(for、while)

1.while 循环

1.1.while 循环语法

在程序中,循环功能和 if 条件判断一样,是程序最核心的逻辑功能。

用于在条件为真时重复执行一段代码块。

# while循环的基本语法:
while 条件:条件满足时,做的事情1条件满足时,做的事情2pass# 冒号和缩进不要忘了.# 当条件的运算结果为True的时候, 会运行while代码块下的代码.# 若while后的条件一直为True, 则会一直循环运行while代码块下的代码.# 若为False, 则表示结束循环.
# 所以需要设置循环终止的条件,否则将进入无限循环.

案例1:输出直角三角形

'''
*
**
***
****
*****
******
*******
********
*********
**********
'''
# 打印这样的一个高为10的直角三角形.
i = 1
while i <= 10:print('*' * i)i += 1

案例2:求 1-100 的累加和

# 求1-100的累加和.
# 1 +2 +3 +4 +5 + ... + 100i = 1
total = 0
while i <= 100:total += ii += 1
print(total)

案例3:整数反转

# 整数反转    12345   54321
# 通过while循环来做.
num = input("请输入一个正整数:")
new_num = ''i = len(num)  # 5while i >= 1:  # len 1 2  index  0new_num += num[i-1]  # num[0] num[1]i -= 1print(new_num)

1.2.while 循环嵌套

当我们需要在while循环内执行另一个循环时,我们可以使用while循环嵌套的形式。

# while循环嵌套的基本语法
while 条件1:条件1满足时,做的事情1条件1满足时,做的事情2passwhile 条件2:条件2满足时,做的事情1条件2满足时,做的事情2pass# 第一个while循环将重复执行内部代码块,直到条件1不再满足为止。在内部代码块中,我们有另一个while循环,它将重复执行内部代码块,直到条件2不再满足为止。这种嵌套的循环结构可以用于处理许多问题.# 需要注意的是,在使用嵌套循环时,我们需要仔细考虑内部和外部循环之间的交互,以确保程序能够正确地执行。另外,需要注意的是,循环嵌套可能会导致程序的执行速度变慢,因此我们应该尽可能地避免不必要的循环嵌套.

案例:打印99乘法表

"""
1x1=1
1x2=2   2x2=4
1x3=3   2x3=6  3x3=9
1x4=4   2x4=8  3x4=12 4x4=16
1x5=5   2x5=10 3x5=15 4x5=20 5x5=25
1x6=6   2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7   2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8   2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9   2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
"""
# 1. 外部循环 ✖右边是外部循环
# 2. 内部循环 ✖左边是内部循环i = 1while i <= 9:j = 1while j <= i:print(f'{j}x{i}={j*i}', end='\t')j += 1print('')i += 1

2.for 循环

2.1.range函数

在学习for循环之前, 先来学习range语句. 这是一个最常与for循环一起用的语句.

# 语法:
range(start, stop[, step])

参数说明:

  • start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
  • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
  • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

注意: 如果start=stop, 则取不到.

练习: 构建一个1-100之内的偶数列表。

# 构建一个1-100之内的偶数列表. (包含1和100)
a_list = list(range(2, 101, 2))
print(a_list)

2.2.for 循环语法

在Python中,除了while循环语句,还提供了另外一种循环:for循环语句

# 语法:
for 临时变量 in 序列(可迭代对象):# for循环体的代码块# for循环中定义了一个临时变量,那么在整个循环体中都可以使用这个变量,包括循环体内部的if语句或者嵌套的循环, 但是在for循环的循环体外就不要使用此临时变量了.

for循环是一种常见的迭代结构,用于遍历序列中的元素。

在Python中,for循环可以用于遍历 列表,元组,字典,字符串,集合等容器类型的元素,并将这些元素里面的值一个一个的赋值给临时变量,然后执行特定的操作,循环会一直重复执行,直到序列中的所有元素都被遍历完成。对于序列中的每个元素,都会执行一次循环体中代码块。

for循环通常由三大块组成:

  • 循环遍历
  • 序列(可迭代对象)
  • 代码块

for循环简单易懂,代码结构清晰,可读性强,是一种高效的可靠的循环结构。

for循环和while循环两者能完成的功能差不多,但也是有区别的:

  1. for循环用于遍历序列(例如列表、元组、字符串等)或其他可迭代对象,并且在每次迭代中,都会将序列中的一个元素赋值给循环变量,直到序列中的所有元素都被遍历完毕,循环结束. while循环则用于在条件为真时执行一段代码块,直到条件为假为止.
  2. for循环不需要显式地计数器变量,也不需要显式地定义循环条件,因为循环变量会自动遍历整个序列.而while循环则需要显式地定义循环条件,并在代码块内控制循环计数器的更新.

总之,for循环适用于已知数量的序列或可迭代对象的遍历,而while循环适用于未知数量的循环执行,需要手动控制循环计数器和条件.

案例1:遍历字符串

# 遍历字符串
python_string = 'hello python'
for i in python_string:print(i)

案例2:求字符串a_string中有多少个字母"i"

# 求字符串a_string中有多少个字母"i"
a_string = "life is short, i use python"
# print(a_string.count('i'))
total = 0
for i in a_string:if i == 'i':total += 1
print(total)

案例3:遍历列表

# 遍历列表
fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:print(fruit)

案例4:打印100次hello python

# 打印100次hello python
for _ in range(100):print("hello python")

案例5:使用for循环完成1-100的求和.

# 使用for循环完成1-100的求和.
total = 0
for i in range(1, 101):total += i
print("1-100的求和结果为:", total)

2.3.for 循环嵌套

# 语法:
for 临时变量1 in 序列1(可迭代对象):# for循环体的代码块# for循环体的代码块# for循环体的代码块for 临时变量2 in 序列2(可迭代对象):# for循环体的代码块# for循环体的代码块# for循环体的代码块for i in range(10):print(f"外层循环i:{i}")for j in range(10):print(f"内层循环j:{j}")

案例:打印99乘法表。

"""
1x1=1
1x2=2   2x2=4
1x3=3   2x3=6  3x3=9
1x4=4   2x4=8  3x4=12 4x4=16
1x5=5   2x5=10 3x5=15 4x5=20 5x5=25
1x6=6   2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7   2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8   2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9   2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
"""
# 1. 外部循环 ✖右边是外部循环   控制行数
# 2. 内部循环 ✖左边是内部循环   控制列数for i in range(1, 10):for j in range(1, i + 1):print(f'{j}x{i}={j * i}', end='\t')print('')

3.关键字(break、continue)

  • continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环.
  • break用来跳出整个循环

continue和break在嵌套循环中, 只对当前循环起作用。

案例1:使用for循环打印10以内的奇数, 使用continue。

for i in range(1, 11):if i % 2 != 0:print(i)continue

案例2:使用死循环打印1-10的整数。

# 使用while死循环
i = 1
while True:if 0 < i <= 10:print(i)i += 1else:break

案例3:计算number序列中数字大于3的数字的总和。

# 计算number序列中数字大于3的数字的总和
numbers = [2, 5, 3, 7, 8, 4, 1, 9, 10]
total = 0
for num in numbers:if num <= 3:continuetotal += num
print("numbers序列中数字大于3的数字总和:", total)
http://www.dtcms.com/a/389666.html

相关文章:

  • 牛客算法基础noob44——数组计数维护
  • 并发编程原理与实战(三十)原子操作进阶,原子数组与字段更新器精讲
  • 前端-详解Vue异步更新
  • 基于风格的对抗生成网络
  • 【JavaScript】SSE
  • JAVA算法练习题day15
  • 线性表---双链表概述及应用
  • 作业帮前端面试(准备)
  • 51单片机-使用单总线通信协议驱动DS18B20模块教程
  • 全文单侧引号的替换方式
  • NVIDIA RTX4090 在Ubuntu系统中开启P2P peer access 直连访问
  • 再次深入学习深度学习|花书笔记2
  • 中移物联ML307C模组OPENCPU笔记1
  • 计算机视觉
  • VScode实现uniapp小程序开发(含小程序运行、热重载等)
  • Redis的各种key问题
  • 元宇宙与医疗产业:数字孪生赋能医疗全链路革新
  • 为你的数据选择合适的分布:8个实用的概率分布应用场景和选择指南
  • 掌握Stable Diffusion WebUI:模型选择、扩展管理与部署优化
  • LVGL拼音输入法优化(无bug)
  • 多层感知机:从感知机到深度学习的关键一步
  • PostgreSQL绿色版整合PostGIS插件,以Windows 64位系统为例
  • GEO优化推荐案例:2025年上海源易信息科技的全链路实践
  • 时空预测论文分享:多模态融合 空间索引结构 超图 时演化因果关系
  • 智能手机产量增长4%
  • MySQL高可用MHA实战指南
  • Coze源码分析-资源库-创建工作流-后端源码-核心技术/总结
  • 《棒球团建》国家级运动健将·棒球1号位
  • 基于STM32单片机生理监控心率脉搏TFT彩屏波形曲线加体温测量
  • Selenium 浏览器自动化完全指南:从环境搭建到实战应用