- 三大流程
顺序结构:按照顺序依次逐行执行代码的过程。自左向右,自上而下。
选择结构:程序按照不同的条件执行不同的处理代码的过程。
循环结构:程序按照指定的条件,如果条件满足就重复指定一端处理代码的过程。
在任何一门编程语言中,必不可少的需要三大流程(顺序、选择、循环),为什么呢?
因为在真正开放中我们的代码总是有运行顺序的,其实我们的代码总是遵循这样一个运行顺
序:自左向右,自上而下。这个也是三大流程中的顺序运行代码。然而代码有时候仅仅这样
是不够的,如我们有时候需要判断一下情况,如果成立了我们就如何运行,如果不成立了又
如何运行,这个就是选择结构。有时候我们需要重复执行一些代码好些次,那么我们就需要
循环执行对应的代码,这个就是循环流程。顺序流程没什么可说的,只要知道就行了,所以
今天的重点就是选择和循环流程。
- 选择流程
正常情况下,我们完成一件事情的过程中,可能会存在多种条件限制。
如:要进入教室,如果有钥匙则开锁进入,没有钥匙则进入不了,需要找钥匙。
这样的情况下,需要根据不同的条件,执行不同的逻辑处理过程,反映在我们的程序中
也是一样的,也就是我们接下来要说的程序结构
- 选择结构语法
选择结构中执行的代码,代码缩进 4 个 空格,也就是一个 Tab 键[强制规范]
- 循环结构
程序结构中的循环结构,用于重复执行一段相同处理逻辑的代码。
如:要计算 1~10 的加法运算,我们常规的可以通过 1+2+...+10 来进行编码运算;但是
1~100 甚至 1~10000 的叠加运算,普通的编码方式就不适合了,此时就需要用到循环结构
python 提供了两种循环结构
for [variable] in [list] 循环
while [expression] 循环
for…in 循环的语法结构如下:
for 变量 in 一组数据的列表:
//直接使用变量,这里的变量每次就是一个列表中的元素
while 循环结构
python 为了方便通过条件进行数据的循环控制,提供了 while 循环,当条件满足时重复
执行,当条件不满足时跳出循环。
while 循环语法结构:
while 条件表达式:
//循环体中的代码
break 关键字
break 关键字,主要用在循环体的代码中,用于在满足一定条件时跳出循环
如:计算 1~100 的和,如果一旦出现 20,代码则跳出不在执行。
continue 关键字
continue 关键字和 break 关键字一样,都是用来控制循环的,不同的是 continue 关键字,
主要是满足条件后终止本次循环之后进入下一次循环。
列表
- 概念:列表是一种存储大量数据的存储类型
- 特点
- 列表具有索引概念,可以通过索引操作列表中的数据
- 列表中的数据可以进行添加、删除、修改、查询等操作
- 列表的定义和使用
变量名=[数据1,数据2,……] #创建
变量名[索引] #获取列表中的数据
变量名[索引]=值 #修改列表中的数据
- 操作列表常用方法
方法名 | 功能 | 参数 | 返回值 |
append(data) | 在列表的末尾加数据 | data:要追加的数据 | None |
insert(index,data) | 在列表的指定位置插入数据(如果索引位置超过最大位置,数据将插入到列表末尾) | index:插入数据的索引位置 data:要插入的数据 | None |
extend(model) | 在列表的末尾追加参数对象中的所有数据 | model:保存有数据的存储模型,该模型接受列表、元组、集合类型的对象 | None |
remove(data) | 从列表中删除指定的数据(如果数据不存在将报错) | data:要删除的数据 | None |
pop(index) | 从列表中获取并删除指定索引位置上的数据(如果索引值不存在将报错) | index:指定索引位置 | 获取到的数据 |
clear() | 清空列表中所有数据 | 无 | None |
index(data) | 查询列表中指定数据对应的索引(如果数据不存在将报错) | data:要查询的指定数据 | 查询的数据第一次出现的索引 |
count(data) | 统计列表中指定数据出现的次数 | data:要统计的指定数据 | 统计的数据的出现的次数 |
演示:
- 概念:元组是一种存储固定数据的存储模型
- 特点
- 元组具有索引概念,可以通过索引操作元组中的数据
- 元组中的数据可以进行查询操作,但不能进行添加、删除、修改操作
- 元组的创建和使用
变量名=(数据1,数据2,……) # 创建
变量名[索引] # 获取元素
方法名 | 功能 | 参数 | 返回值 |
index(data) | 查询元组中指定数据对应的索引(如果数据不存在将报错) | data:要查询的数据 | 查询的数据第一次出现的索引 |
count(data) | 统计元组中指定数据出现的数量 | data:要统计的数据 | 统计的数据的出现次数 |
演示:
- 注意事项
- 元组中的数据如果是非引用类型数据,不允许修改;如果是引用类型对象,该对象不允许替换,而对象的属性值可以发生改变
- 元组的特殊应用:自动解包、自动组包
自动解包:将多个数据赋给一个变量时,多个数据将包装成一个元组,将元组赋值给变量,该过程称为自动组包。
eg:return 1,2,3 相当于 return (1,2,3)
自动解包:将元组赋值给多个变量时,如果元组数据的数量与变量的数量相同,元组将被自动拆分成多个值,并赋值给对应变量,该过程称为自动解包。
eg:a,b,c=(1,2,3) 等同于 a=1,b=2,c=3
- 概念:集合是一种存储大量无序不重复数据的存储类型
- 特点
- 集合没有索引的概念
- 集合中的元素可以进行添加、删除等操作
- 集合的创建
变量名={数据1,数据2,……}
- 集合常用方法
方法名 | 功能 | 参数 | 返回值 |
add(data) | 向集合中添加数据 | data:要添加的数据 | None |
remove(data) | 从集合中删除指定元素(如果数据不存在将报错) | data:要删除的元素 | None |
pop() | 从集合中获取并删除第一个元素 | 无 | 获取到的数据 |
clear() | 清空集合中所有数据 | 无 | None |
演示:
- 概念:字典是一种使用“键值对结构”存储数据的存储类型
- 特点
- 字典不具有索引概念,字典使用键key代替索引,可以通过键操作字典中存储的数据值value
- 字典可以根据键key进行数据的添加、删除、修改、查询等操作
- 字典的创建和使用
变量名={键1:值1,键2:值2,……} #创建
变量名[键] #获取
变量名[键]=值 #修改
变量名[键]=值 #如果此时键不存在,该语句会添加新键和数据
- 常用方法
方法名 | 功能 | 参数 | 返回值 |
pop(key) | 从字典中删除指定键key对应的键值对(如果键key不存在将报错) | key:要删除的值value对应的key | 被删除的value |
popitem() | 删除并获取字典中最后一对键值对 | 无 | 返回被删除的键值对 |
setdefault(key,value) | 添加新的键值对(如果存在对应的键,则忽略该操作) | key:要添加的新键值对对应的键 value:要添加的新键值对对应的值 | 添加成功返回value,没有添加则返回原始key对应的value |
update(dict) | 使用新字典中的数据对原始字典进行更新 | dict:新字典对象 | None |
get(key) | 根据键key查询字典中对应的值(如果key不存在将返回None) | key:要查询的键key | key对应的value |
keys() | 获取字典中所有的键key组成的列表数据 | 无 | 所有键组成的列表 |
values() | 获取字典中所有的值value组成的列表数据 | 无 | 所有值组成的列表 |
items() | 获取字典中所有键值对列表数据 | 无 | 由键值对组成的列表,键值对的格式是元组数据 |
clear() | 清空字典中所有数据 | 无 | None |