前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >py学习(流程控制语句和组合数据类型)

py学习(流程控制语句和组合数据类型)

作者头像
废江_小江
发布2022-09-05 11:27:16
1.6K0
发布2022-09-05 11:27:16
举报
文章被收录于专栏:总栏目

流程控制语句

• 简介 • pyth代码在执行时是按照自上向下顺寻执行的 • 通过流程控制语句,可以改变程序的执行顺序,也可以让指定的程序反复执行多次 • 流程控制语句分成两大类: 条件判断语句 , 循环语句 • 条件判断语句(if语句) • 语法 : if 条件表达式 : 语句(代码块) • 执行的流程 :if语句在执行时,会对条件表达式进行求值判断,如果为true,则执行if后的语句;如果为false,则不执行 • 默认情况下,if语句只会控制紧随其后的语句,如果希望,if可以控制多条语句,则可以在if后面跟着一个代码块 • 代码块 • 代码块中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行 • 代码块就是一种为代码分组的机制 • 如果要编写代码块,语句就不呢个紧随在:后边,而是要写在下一行 • 代码块以缩进开始,直到代码恢复到之前的缩进级别时结束 • 缩进有两种方式,一种是使用tab键,一种是使用四个空格。python代码中使用的缩进方式必须统一 • input函数 • 该函数用来获取用户的输入 • input()调用后,程序会立即暂停,等待用户输入 • 用户输入完成内容以后,点击回车程序才会继续向下执行 • 用户输入完成以后,其所输入的内容都会以返回值形式返回,input的返回值是一个字符串 • input()函数中可以设置一个字符串作为参数,这个字符串将会作为提示文字显示 • input()也可以用于暂时阻止程序结束 • If – else 语句 • 语法 : if 条件表达式 : 代码块 else : 代码块 • If-elif-else 语句 • 语法 : if 条件表达式 : 代码块 elif 条件表达式: 代码块 elif 条件表达式: 代码块 else : 代码块 • 循环语句 • whlie循环 + for循环 • While循环 • 语法: While 条件表达式: 代码块 Else : 代码块 • 执行流程:while语句在执行时,会先对后的条件表达式进行求值判断,如果判断为true,则执行循环体(代码块),循环体执行完毕,继续对条件表达式进行求职判断,以此类推,直到判断结果为false,则循环终止 • 如果循环有对应的else,则执行else后的代码块 • 循环的三个要件(表达式) • 初始化表达式,通过初始化表达式初始化一个变量 • 条件表达式,通过初始化表达式一个变量 • 更新表达式,修改初始化变量 • While 的练习 • 求100以内所有奇数之和 ○ Result=0 ○ While I <100 : ○ i+=1 ○ if i%2 != 0: ○ result += I ○ Print('result =' , result) • 求水仙花数 ○ I = 100 ○ While I <1000: ○ A= i//100 ○ B =I//10 %10 ○ C=i%10 ○ If a**3 +b**3 +c**3 == i: ○ print(i) ○ i+=1 • 循环嵌套 • i=0 • While i< 5: • j=0 • while j<5 : • print("*",end='') • j+=1 • print() • i+=1 • 打印99乘法表 ○ i=0 ○ While i< 0 : ○ I +=1 § J=0 § While j< i: § J+=1 § Print(f"{j}*{i} ={i*j}",end="") ○ Print() • break和continue • break可以用立即退出循环语句(包括else) • continue可以用来跳过当次循环 • break和continue都是只对离他最近的循环起作用 • 质数练习 • 求100以内的质数,最初代码 • i=2 • while i<= 100: flag=True j= 2 While j

列表,元组,字典,集合

• 列表 • 列表是python中的一个对象 • 对象(object)就是内存中专门用来存储数据的一块区域 • 之前学习的对象,像数值,它只能保存一个单一的数据 • 列表中可以保存多个有序的数据 • 列表的使用:1列表的创建,2列表的操作 • 列表的创建,通过[]来创建列表 ○ 例如:My_list =[]#创建了一个空列表 • 列表存储的数据,我们称为元素 • 一个列表中可以存储多个元素,也可以在创建列表时,来指定列表的元素 • 当列表中添加多个元素时,多个元素之间使用,隔开 ○ 例如:my_list = [10,20,30,40,50]#创建了一个保存有五个元素的列表 • 列表可以保存任意的对象 ○ 例如:My_list=[10,’hello’,True,None,[1,2,3],print] • 列表中的对象会按照插入的顺序存储到列表中, • 第一个插入的对象保存到第一个位置,第二个保存到第二个位置 • 我们可以通过索引(index)开获取列表中的元素 • 索引时元素在列表中的位置,列表中每一个元素都有索引 • 索引是从0开始的整数,列表中第一个位置索引为0,第二个位置索引为1…… • My_list=[10,20,30,40,50] • 通过索引获取列表中的元素 • 语法: my_list [索引] ○ 例如print(my_list[1]) • 获取列表的长度,列表中元素的个数 • len()函数,通过该函数可以获取列表的长度 • 获取到的长度的值,是列表的最大索引+1 • 切片 • 切片指从现有列表中,获取一个子列表 • 列表的索引可以是负数 • 如果索引是负数,则从后向前获取元素,-1表示倒数第一个,-2表示倒数第二个,以此类推 • 通过切片来获取指定元素 • 语法: 列表[起始 :结束] • 通过切片获取元素时,会包括起始位置的元素,不会包括结束位置的元素 • 做切片操作时,总会返回一个新的列表,不会影响原来的列表 • 如果省略结束位置,则会一直截取到最后 • 如果省略开始位置,则会从第一个元素开始截取 • 语法 列表[起始 :结束 : 步长]#默认步长为1 • 步长不能时0,步长可以是负数 • 如果是负数,则会从列表的后部向前取元素 • 通用操作 • +可以将两个列表拼接成一个列表 • *可以将列表内元素重复指定次数 • in用来检查制度那个元素是否存在于列表中 • 如果存在,返回True,否则返回Flase • Not in 与in语法相反 • min()获取列表中的最小值 • max()获取列表中的最大值 • 两个方法(method),方法和函数基本是一样的,只不过方法必须通过对象.方法()的形式调用 • 实际上就是和对象关系紧密的函数 • S.index()获取指定元素在列表中的第一次出现的索引 • index的第二个参数,表示查找的起始位置 • 第三个参数,表示查找的结束位置 • 如果没查到到会报错。。。。。。。 • S.count() • 统计列表中指定元素出现的次数 • 序列 • 序列是pyth中最基本的一种数据结构 • 数据结构指计算机中数据存储的方式 • 序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置(索引) • 并且序列的数据会按照添加的顺序来分配索引 • 序列的分类: • 可变序列:列表(list) • 不可变序列:字符串(str)元组(tuple) • 以上的函数,方法对序列都是有效的,即不仅可以对列表使用,也可以对字符串和元组使用 • 修改列表 • 修改列表中的元素 • 直接通过索引来修改元素 • 通过del来删除元素 ○ 例如 del my_list[2] # 删除索引为2的元素 • 通过切片来修改列表 • 在给切片进行赋值时,只能使用序列 • My_ list[0:0] #向索引中为0的位置插入元素 • 当设置了步长时,序列中元素的个数必须和切片中元素的个数一致 • 通过切片来删除元素,例如: • Del mylist[0 :2] • Mylist[ 1:3] =[] • 以上操作只适用于可变序列 • 不可变序列,无法通过索引来修改 • 可以通过list()函数将其他序列转换为list • 列表的方法 • x表示元素 • append() • 向列表的最后添加一个元素 ○ 例如 : s.append(x) • insert() • 向列表中指定位置插入一个元素 ○ 例如 : s.insert(2,x) • extend() • 使用新的序列来扩展当前序列 • 需要一个序列来作为参数,它会将该序列中的元素添加到当前列表中 ○ 例如s.extend(一个列表) • clear() • 清空序列 ○ 例如s.claer() • pop() • 根据索引删除并返回指定元素 • 如果()不指定元素则默认删除最后一个元素 • remove() • 删除指定值的元素,如果相同值的元素有多个,只会删除第一个 • reverse() • 反转列表 • sort() • 用来对列表中的元素进行排序,默认是升序排列 • 如果需要降序排列,则需要传递一个revserse=True作为参数 • 遍历列表 • 遍历列表,指的就是将列表中所有的元素取出来 • 通过while循环来遍历 • 通过for循环来遍历列表 • 语法 : • for 变量 in 序列 : • 代码块 • for循环中的代码块会执行多次,序列中有几个元素执行几次,每执行一次就会将序列中的一个元素赋值给变量 • EMS员工管理系统 • 做命令行版本的员工管理系统 • 功能: • 1-查询:显示当前系统中的所有员工 • 2-添加:将员工添加到当前系统中 • 3-删除:将员工从当前系统删除 • 4-退出:退出当前系统 • range()是一个函数,可以用来生成一个自然数序列 • R =range(5)#生成一个[0,1,2,3,4]这样的序列 • Print(list(R)) • 该函数需要三个参数 • 1 起始位置(可以省略,默认是0) • 2 结束位置 • 3 步长(可以省略,默认是1) • 通过range()可以创建一个执行指定次数的for循环 • For I in range (x) : • print(i) • for()循环除了创建方式意外,其余和while一样,包括else,包括break,continue,都可以在for循环中使用 • 元组 tuple • 元组是一个不可变序列 • 它的操作方式基本上和列表一致 • 一般当我们希望数据不变时,就是用元组,其余情况使用列表 • 创建元组:使用()创建元组 • My_tuple=()创建了一个空元组 • 当元组不是空元组时,括号可以省略 • 当元组不是空元组,它里边至少有一个, • 元组的解包(解构) • 不光元组可以解包,字符串和列表也都可以解包 • a,b,c,d=my_tuple • 交互a,b的值: a,b=b,a • a,b,*c=my_tuple • 在对一个元组进行解包时,变量的数量必须和元组中的数量一致 • 也可以在变量前边添加一个*,这样变量会将获取元组中所有剩余的元素,并且返回值为一个列表 • 可变对象 • 每个对象中都保存了三个数据: • id(标识) • type(类型) • value(值) • 列表就是一个可变对象 • a=[1,2,3] • 改对象:a=[0] #这种方式不是修改变量,而是通过变量去修改对象的值,所以说列表是可变对象 • 当我们去修改对象时,如果有其他变量也指向了该对象,则修改也会在其他变量中体现 • 改变量:a=[4,5,6] #这钟操作是在给变量重新赋值,这种操作会改变变量所指向的对象 • 为一个变量重新赋值时,其他变量不会改变 • ==和is • ==和!=比较的是对象的值是否相等 • Is 和is not比较的是对象的id是否相等 • 字典(dict) • 字典属于一中新的数据结构,称为映射(mapping) • 字典的作用和列表类似,都是用来存储对象的容器 • 列表的存储数据的性能很好,但是查询数据的性能的很差 • 在字典中每一个元素都有一个唯一的名字,通过这个唯一的名字可以快速查到指定的元素 • 在字典中可以保存多个对象,每个对象都会有唯一的名字 • 这个唯一的名字,称其为键(key),通过key可以快速查询value • 这个对象,称其为(value) • 每个字典中都可以有多个键值对,每一个键值对我们称其为一项 • 使用{}来创建字典 • 语法: {key:value,key:value,key:value} • 字典的值可以是任意对象 • 字典的键可以是任意的不可变的对象(int,str,bool,tuple) , 字典的键是不能重复的,如果出现了重复的后边的会替换前边的 • 需要根据键来获取值,例如:print(dict[ 键]) • 字典的使用_1 • 使用dict()函数来创建字典 • 每一个参数都是一个键值对,参数名就是键,参数值就是值 • 也可以将一个包含双值子序列的序列转换为字典 • 双值序列,序列中只有两个值,[1,2] • 子序列,如果序列中的元素也是序列,那么称这个元素为子序列 • len()获取字典中键值对的个数 • in检查字典中是否包含指定的键 • Not in类似 • 获取字典中的值,根据键来获取值 • 语法 : dict[key] • get(key[,default])该方法用来根据键来获取字典中的值 • print(d.get(‘name’)) • 修改字典 • Dict[key]=value • 如果key在字典中存在,则会修改,如果key不存在,则会向字典中添加改键值 • setdefault(key[,default])可以用来添加键值对 • 如果key已经存在于字典中,则返回key 的值,不会对字典做任何操作 • 如果key不存在,则向字典中添加这个key,并设置value • update([other]) • 将其他字典的key-value添加到当前字典中 • 如果有重复的key,则后边的会替换到当前的 Dict1.update(dict2) • 字典的使用-2 • 可以使用del来删除字典中的键值对 • 例如: del dict【’a’】 • popitem() • 随机删除字典里的一个键值对,一般都会删除最后一个键值对 • 删除之后,它会将删除的key-value作为返回值返回 • 返回的是一个元组,元组中有两个元素,第一个元素是删除的key,第二个删除的value • Dict.popitem() • Pop(key【,default】) • 根据key删除字典中的key-value • 会将被删除的value返回! • 如果删除不存在的key,会抛出异常 • 如果指定了默认值,在删除不存在的key时,不会报错,而是直接返回默认值 • Dict.pop(‘键‘,’默认值‘) • clear() • 用来清空字典 • copy() • 改方法用于对字典进行浅复制(两个对象) • 复制以后的对象和原对象是独立,修改一个不会影响另一个 • 注意,浅复制会简单复制对象内部的值,如果值也是一个可变对象,这个可变对象不会被复制 • 遍历字典 • keys()改方法会返回字典的所有的key • 改方法会返回一个序列,序列中保存字典的所有的键 • 通过keys()来获取所有的键 • values() • 该方法会返回一个序列,序列中保存字典的左右的值 • items() • 该方法会返回字典中所有的项 • 会返回一个序列。序列中包含双值子序列 • 双值分别是字典中的key和value • For k,v in dict.item() : • print (k, ‘=’ ,v) • 集合(set) • 集合和列表非常相似 • 不同点: • 1 集合只能存储不可变对象 • 2 集合中存储的对象是无序的(不是按照元素的插入顺序保存) • 3 集合中不能出现重复的元素 • 使用{}来创建集合 • s={1,2,3,4} • 使用set()函数来创建集合 • s=set() #空集合 • 可以使用set()来将序列转换为集合 • 使用set()将字典转换为集合时,只会包含字典中的键 • 使用in 和not in来检查集合中的元素 • 使用len()来获取集合中的元素的数量 • add()向集合中添加元素 • update()将一个集合中的元素添加到当前集合中 • update()中可以传递序列或字典作为参数,字典只会使用键 • pop()随机删除并返回一个集合中的元素 • remove()删除集合中的指定元素 • clear()清空集合 • copy()对集合进行浅复制 • 集合的运算 • 在对集合做运算时,不会影响原来的集合,而是将运算结果返回 • &交集运算 • | 并集运算 • -差集运算 • ^异或集 • <=检查一个集合是否是另一个集合的子集 • <检查一个集合是否是另一个集合的真子集 • >=检查一个集合是否是另一个集合的超集 • >检查一个集合是否是另一个集合的真超级

废江博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 转载请注明原文链接:py学习(流程控制语句和组合数据类型)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-11-13),如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 流程控制语句
  • 列表,元组,字典,集合
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档