Python入门(五):程序控制结构

2024-04-09 19:18

本文主要是介绍Python入门(五):程序控制结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 程序控制结构
    • 顺序结构
    • 分支结构
      • 条件判断操作符
      • 单分支结构
      • 二分支结构:if-else语句
      • 多分支结构:if-elif-else 语句
      • assert关键词
    • 循环结构
      • 遍历循环
      • 常用函数
      • 无限循环
      • 循环控制保留字
      • 循环扩展
      • 推导式

程序控制结构

顺序结构

顺序结构只要按照解决问题的顺序写出相应的语句即可,是最简单也是最常用的程序结构,执行顺序是自上向下,依次执行。

分支结构

计算机之所以可以做许多自动化的任务,一个重要的原因在于它可以通过特定语法自行判断。分支结构其实就是根据判断条件结果而选择不同向前路径的运行方式。

条件判断操作符

在这里插入图片描述

单分支结构

使用方式如下:

if <条件>:<语句块>
word = input()
if word == "一心一懿":print("无问西东")

二分支结构:if-else语句

使用方式如下:

if <条件>:<语句块1>
else:<语句块2>

例:小明的成绩为75分,60分为及格线,请判断小明是否及格

grade = 75
if grade >= 60:print("及格")
else:print("不及格")

:Python代码中具有相同缩进的代码被视为代码块,请严格遵循缩进规则:4个空格,尽量不要使用Tab。(虽然我一直用的是Tab。。。,但建议还是要有的)

多分支结构:if-elif-else 语句

使用方式如下:

if <条件1>:<语句块1>
elif <条件2>:<语句块2>
...
else:<语句块n>

例:小华的成绩为75分,学校规定90分及以上为A,75分及以上为B,60分及以上为C,60分以下为D,请判断小华的成绩等级。

grade = 75
if grade >= 90:print("A")
elif grade >= 75:print("B")
elif grade >= 60:print("C")
else:print("D")

assert关键词

  • assert这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError的异常。
  • 在进行单元测试时,可以用assert在程序中置入检查点,只有条件为 True 才能让程序正常运行。
    在这里插入图片描述

循环结构

计算机在具有重复性规律的事物上的工作效率极高,其原因在于它可以以极快的速度遍历并且循环该事物。

遍历循环

在 Python 中,我们可以通过 for 循环遍历任何有序序列,如str,list,tuple等,也可以遍历任何可迭代对象,如dict。这种遍历称为迭代
使用方式如下:

for <循环变量> in <遍历结构>:<语句块>

字符串迭代

for i in "April":print("Hello:",i)  #可以试着比较下与 print("Hello:"+i) 的差异

列表迭代

for word in ["一身诗意千寻瀑","万古人间四月天"]:print(word)

索引迭代
在 Python 中,迭代永远是取出元素本身,而非元素的索引。
然而对于有序集合,如列表,元组等,元素是有索引的,因此我们通过 enumerate函数来遍历索引和元素本身。
enumerate函数会把['A','B','C'] 变成 [(0,'A'),(1,'B'),(2,'C')],因此迭代的每一个元素实际上为一个元组。
:在迭代 [‘A’, ‘B’, ‘C’, ‘D’] 时,利用迭代语句打印出顺序 - 字母(顺序从1开始)。

L = ['A', 'B', 'C', 'D']
for index, name in enumerate(L):print (index+1, '-', name)   

字典迭代
我们知道 dict 是可迭代对象,但是用 for 循环直接迭代只能拿到其 key 值,
如果我们要拿到 value 值 ,就需要借助 dict 中的 values 方法。
该方法是将 dict 转换成一个包含所有 value 的列表。
:给定一个学习小组成员的编号及其成绩:
d = { ‘A’: 96, ‘B’: 81, ‘C’: 60, ‘D’: 59 }
请计算该组成员的平均分。

d = { 'A': 96, 'B': 81, 'C': 60, 'D': 59 }
sum = 0.0
for v in d.values():sum += vmean = sum/len(d)
print(mean)

那么如何同时迭代 key和value 呢?方法是借助于 dict 中的 items 方法。
:给定一个学习小组成员的编号及其成绩:
d = { ‘A’: 96, ‘B’: 81, ‘C’: 60, ‘D’: 59 }
请打印该组每一名成员的成绩计算该组成员的平均分。(用 平均分:分数 格式来表示)

d = { 'A': 96, 'B': 81, 'C': 60, 'D': 59 }
sum = 0.0
for k,v in d.items():sum += vmean = sum/len(d)print(k,':',v)
print("平均分:",mean)

多重迭代
在循环内部还可以嵌套循环。
例:对100以内的两位数,请使用两重循环输出所有十位数数字比个位数数字小的数。

for x in [1,2,3,4,5,6,7,8 ]:for y in [ 2,3,4,5,6,7,8,9 ]:if x < y:print(10*x+y)

常用函数

  • range([start,],stop[,step=1])
    • 这个BIF(Built-in functions)有三个参数,其中用中括号括起来的两个表示这两个参数是可选的
    • step=1表示第三个参数(间距)默认为1
    • range这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的字符序列,该序列包含start的值但不包含stop的值。

:请用for循环迭代数列 1-100 并打印出7的倍数。

for i in range(1,101):if i % 7 == 0:print (i,end=",")  #end=","表示结果以行表示,每个元素用逗号隔开
  • enumerate(sequence,[start=0])
    • sequence–一个序列,迭代器或其他支持迭代对象
    • start – 下标起始位置
    • 返回 enumerate(枚举) 对象
      在这里插入图片描述

无限循环

无限循环指的是由条件控制的循环运行方式,程序会反复执行语句块,直到条件不满足时结束。 while 循环根据表达式判断循环是否结束 。 使用方式如下:

while <条件>:<语句块1>
else:<语句块2>

例:计算911以内奇数的和

sum = 0
x = 1
while x <= 911:sum += xx += 2
print(sum)

循环控制保留字

  • break跳出并结束当前整个循环,执行循环后的语句。
    注:break仅跳出当前最内层循环
for c in "April":if c=="r":breakprint(c,end="")
s = "Python"
while s != "":for c in s:print(c,end="")s = s[:-1]
s = "Python"
#比较上下两个程序运行结果的差异,说明break语句的作用
while s != "":for c in s:if c=="t":breakprint(c,end="")s = s[:-1]
  • continue结束当次循环,继续执行后续次数循环
for c in "April":if c==r:continueprint(c,end="")
  • pass意思即为“通过”。它是空语句,不做任何操作,只起到占位的作用,其作用是为了保持程序结构的完整性。如果暂时不确定要在一个位置上放上什么样的代码,可以先放置一个pass语句,让代码可以正常运行。

循环扩展

在这里插入图片描述
注:当循环没有被break语句退出时,执行else语句块,即else语句块是对程序正常运行的额外奖励。
在这里插入图片描述

推导式

  • 列表推导式
    [ expr for value in collection [if condition] ]
    在这里插入图片描述
  • 元组推导式
    ( expr for value in collection [if condition])
    在这里插入图片描述
  • 字典推导式
    {key_expr: value_expr for value in collection [if condition]}
    在这里插入图片描述
  • 集合推导式
    { expr for value in collection [if condition] }
    在这里插入图片描述
  • 其他推导式
    在这里插入图片描述

这篇关于Python入门(五):程序控制结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/889003

相关文章

Conda与Python venv虚拟环境的区别与使用方法详解

《Conda与Pythonvenv虚拟环境的区别与使用方法详解》随着Python社区的成长,虚拟环境的概念和技术也在不断发展,:本文主要介绍Conda与Pythonvenv虚拟环境的区别与使用... 目录前言一、Conda 与 python venv 的核心区别1. Conda 的特点2. Python v

Python使用python-can实现合并BLF文件

《Python使用python-can实现合并BLF文件》python-can库是Python生态中专注于CAN总线通信与数据处理的强大工具,本文将使用python-can为BLF文件合并提供高效灵活... 目录一、python-can 库:CAN 数据处理的利器二、BLF 文件合并核心代码解析1. 基础合

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

Python函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互