Python课件1第3章 顺序结构.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Python课件1第3章 顺序结构.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python课件1第3章 顺序结构 Python 课件 顺序 结构
- 资源描述:
-
1、第3章 顺序结构程序的三种控制结构 顺序结构 分支结构 循环结构目录 3.1 Python程序的编码规范 3.2 赋值语句 3.3 数据的输入/输出 3.4 顺序结构程序举例3.1 Python程序的编码规范3.1.1 一个Python程序语句分隔注释语句续行缩进Python程序元素程序元素3.1.2注释两种注释方式块注释:以三个单引号()或三个双 引号()开头和结尾#1.#2.#3.#4.#5.#6.#7.#8.#9.#10.#11.#12.#13.#14.#15.#16.#17.#18.#19.#20.#21.行末注释:在语句的行末增加#,并在其后添加注释的内容3.1.3 缩进 Pytho
2、n用不同的缩进表明代码块之间不同的层次关系 缩进默认四个空格 保持同层代码块前的空格数量相同 缩进也可使用Tab键 不能空格和Tab键混用3.1.4 语句续行与分隔通常是一行写一条语句可以多个语句写在一行上,语句之间加上分号(;)3.1.4 语句续行与分隔 一条语句可以分成多行 每行后使用反斜杠 最后一行末,无需添加反斜杠 在语句中的小括号()、中括号、花括号的内部分行,则不需要使用换行符 三引号之间的内容也可以不加换行符,直接分多行书写3.2 赋值语句3.2.1 赋值语句 a=1 b=2 c=3 a,b,c(1,2,3)12基本格式:var=objvar是一个变量等号的右侧可以是常量、变量、
3、表达式、对象和函数等复合赋值 x=5 x+=1#等价于x=x+1 y=-1 y*=x+0.5#等价于y=y*(x+0.5)x,y(6,-6.5)+=-=/=/=*=1.计算等号右侧的表达式的值2.再与左侧的变量进行运算3.结果存回左侧的变量中多变量赋值 a=b=c=100 a,b,c(100,100,100)格式:var1=var2=var3=表达式链式赋值用于将同一个值赋给多个变量多变量赋值 a,b,c=-2.3,12,ab a-2.3 b12 cab格式:var1,var2,var3=表达式1,表达式2,表达式3同步赋值等号两侧的变量数和表达式数要一致按位置将表达式值分别赋值给变量两个值的
4、交换操作 a=10 b=9.123 t=a a=b b=t a9.123 b10 a=10 b=9.123 a,b=b,a a9.123 b103.2.2 变量的共享引用*数值类型和字符串的共享引用 当变量所赋的值为不可变数据类型,将该变量的值赋给别的变量时,多个变量都会指向同一个数据。元组tuple的共享引用 元组被称为只读列表,数据可以被查询,但不能被修改。当各个元组值是不可变数据类型时,其共享引用的方式与数值数据类型情况相同 若在元组中的元素是可变数据时,则该元组元素的数据值是可变的,但变量指向的元组空间没有变化整数int的共享引用示例 x=1 y=x x,y(1,1)id(x)=id(
5、y)True x is yTrue x=90 x,y(90,1)id(x)=id(y)False实数float的共享引用示例 x=3.1238 y=x x,y(3.1238,3.1238)id(x)=id(y)True x is yTrue x=5.678 x,y(5.678,3.1238)id(x)=id(y)False复数complex的共享引用示例 x=3+4j y=x x,y(3+4j),(3+4j)id(x)=id(y)True x is yTrue x=-2-9j x,y(-2-9j),(3+4j)id(x)=id(y)False字符串str的共享引用 x=Hi!y=x x,y(H
6、i!,Hi!)id(x)=id(y)True x is yTrue x=x+Bye!x,y(Hi!Bye!,Hi!)id(x)=id(y)False元组tuple的共享引用元组值是不可变数据类型 x=(1,2,3)y=x x,y(1,2,3),(1,2,3)x=yTrue id(x)=id(y)True x is yTrue x=(6,7,8)x,y(6,7,8),(1,2,3)x=yFalse id(x)=id(y)False x1=100Traceback(most recent call last):File,line 1,in x1=100TypeError:tuple object
7、does not support item assignment元组tuple的共享引用元组值是可变数据类型 x=(1,3,10,11)y=x x,y(1,3,10,11),(1,3,10,11)x=yTrue id(x)1501033441536 id(x)=id(y)True x is yTrue x20=99 x,y(1,3,99,11),(1,3,99,11)x=yTrue id(x)=id(y)True id(x)1501033441536 x is yTrue元组tuple的共享引用元组值是可变数据类型 x20=99列表、字典、集合的共享引用 列表、字典、集合的元素是不可变数据时,
8、改变某个元素值时,数据存储空间的位置不变,数据值发生改变。列表、字典、集合的元素是可变数据时,进行赋值操作或调用相关数据类型的方法改变某个可变数据元素值时,值的变化就会各不相同列表的共享引用示例 x=1,2,3 y=x x,y(1,2,3,1,2,3)id(x),id(y)(2349538144328,2349538144328)x1=100 x,y(1,100,3,1,100,3)id(x),id(y)(2349538144328,2349538144328)x is yTrue字典的共享引用示例 i=F:1,H:2,Y:3 j=i iY:3,H:2,F:1 jY:3,H:2,F:1 id(
9、i),id(j)(2349538516360,2349538516360)iF=99 iY:3,H:2,F:99 jY:3,H:2,F:99 id(i),id(j)(2349538516360,2349538516360)i is jTrue集合的共享引用示例 m=3,4,5 n=m m,n(3,4,5,3,4,5)id(m),id(n)(2349538945064,2349538945064)m.add(99)m,n(99,3,4,5,99,3,4,5)id(m),id(n)(2349538945064,2349538945064)m is nTrue列表、字典、集合的元素是可变数据(1)x
10、=1,2,9,10 y=x id(x),id(y)(2349539132360,2349539132360)x=x+4#发生了浅复制 x1,2,9,10,4 y1,2,9,10 id(x),id(y)(2349539131656,2349539132360)列表、字典、集合的元素是可变数据(2)x0=100#独立引用 x100,2,9,10,4 y1,2,9,10 y20=-1#共享引用 x100,2,-1,10,4 y1,2,-1,10 id(x),id(y)(2349539131656,2349539132360)浅复制与深复制 以下发生了浅复制 x=1,2,3*31,2,3,1,2,3,
11、1,2,3 x00=10 x10,2,3,10,2,3,10,2,3浅复制与深复制 以下代码发生了深复制 import copy names=小明,小红,小黑,粉色,小黄,小白 deep_names=copy.deepcopy(names)names30=Pink names小明,小红,小黑,Pink,小黄,小白 deep_names小明,小红,小黑,粉色,小黄,小白3.2.3 对象的垃圾回收机制*Python对象的存储问题 对于整数和短小的字符串等,Python会执行缓存机制,即将这些对象进行缓存,不会为相同的对象分配多个内存空间。容器对象(如列表、元组、字典等)存储的其他对象,仅仅是其他对
12、象的引用,即记录对象地址,并不是这些对象本身。import sys sys.getrefcount(3)#3在Python内部已经被多次引用,故引用计数大于2184 h=3 x=3,3,3Python对象的存储问题 sys.getrefcount(3)188 id(h),id(x0),id(x1),id(x2)(1900216848,1900216848,1900216848,1900216848)sys.getrefcount(OK)21 sys.getrefcount(123)4 sys.getrefcount(3.1)2引用计数器 每个对象都有指向该对象的引用总数,即引用计数 增加引用计
13、数 对象被创建,计数增加1;对象被引用,计数增加1;对象被当作参数传入函数,计数增加2,因为调用函数中有两个属性在引用该对象;对象存储到容器对象中,计数增加1。引用计数器 减少引用计数 对象的别名被销毁,计数减少1;对象的别名被赋予其他对象,计数减少1;对象离开自己的作用域,计数减少1;对象从容器对象中删除,或者容器对象被销毁,计数减少1。在检测到对象引用个数为0时,对普通的对象进行释放内存的机制处理垃圾回收 当Python中的对象越来越多时,它们将占据越来越大的内存。Python会在适当的时候,启动垃圾回收,将没用的对象清除。垃圾回收时,Python不能进行其他的任务。如果内存中的对象不多,
14、就没有必要总启动垃圾回收 Python只会在特定条件下,自动启动垃圾回收。3.3 数据的输入/输出3.3.1 标准输入/输出 标准输入/输出是指从键盘输入和在屏幕显示,又叫控制台输入/输出 标准输入 多数据同时输入并转换 标准输出 格式化输出标准输入 input(Please input your name:)Please input your name:SamSam格式:input(prompt=None)接受标准输入设备键盘的输入参数prompt是输入时的提示文字,可选项返回一个去除行末回车符后的字符串使用int()或float()函数转换输入 input(Please input you
15、r age:)Please input your age:1919 int(input(Please input your age:)Please input your age:1919 float(input(Please input your score:)Please input your score:75.575.5利用eval()函数实现多数据同时输入 eval(help(eval)a=100 b=eval(a/2.0)b50.0格式:eval(source,globals=None,locals=None)参数source是一串待计算的表达式或待执行的代码利用eval()函数实现多
16、数据同时输入 a,b,c=eval(input(a,b,c=)a,b,c=1,2,3 a1 b2 c3利用字符串的分割和map()函数实现多数据同时输入 省略sep,则分割字符是空白字符(包括空格、Tab和回车n),省略maxsplit,则不限制分割次数,字符串分割的格式:S.split(sep=None,maxsplit=-1)S:被处理的字符串,sep:分割字符,maxsplit:分割的次数返回一个包含分割后子串的列表字符串的分割 1 2 3.split(,1)#1 2 3的1、2、3之间有个空格,共分割1次1,2 3 1 2t3n4 5.split()#字符串的1、2之间和4、5之间有个
展开阅读全文