书签 分享 收藏 举报 版权申诉 / 71
上传文档赚钱

类型Python课件1第3章 顺序结构.pptx

  • 上传人(卖家):momomo
  • 文档编号:7301033
  • 上传时间:2023-11-20
  • 格式:PPTX
  • 页数:71
  • 大小:1.83MB
  • 【下载声明】
    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之间有个

    17、空格1,2,3,4,5 1,2,3,4,5.split(,)1,2,3,4,5 input(Please input 5 number:).split()Please input 5 number:1 2 3 4 51,2,3,4,5利用字符串的分割和map()函数实现多数据同时输入 w=list(map(int,input(Please input 5 number:).split(;)Please input 5 number:1;2;3;4;5 w1,2,3,4,5map函数格式:map(func,*iterables)func:单参数函数的函数名,*iterables:序列或可迭代对象

    18、将每个元素传递给单参数处理,得到各项函数值返回map对象利用字符串的分割和map()函数实现多数据同时输入 x=input(Please input 5 number:)Please input 5 number:1;2;3;4;5 y=x.split(;)y1,2,3,4,5 z=map(int,y)z#返回的map对象是可迭代对象,但不能直接显示其内部各元素值 w=list(z)w1,2,3,4,5标准输出 缺省file则输出到屏幕 缺省sep则以空格间隔。缺省end则显示n,即默认情况,显示数据后会换行。格式:print(value,.,sep=,end=n,file=sys.stdou

    19、t,flush=False)sep:指定多输出项之间的间隔字符end:指定显示最后一项value后显示的字符,file:指定输出流作用:显示value到输出流或标准输出设备(即屏幕)sys.stdout标准输出 print(1,OK,98.12,1,2,3,None)1 OK 98.12 1,2,3 None print(1,OK,98.12,1,2,3,None,sep=!);print(-)1!OK!98.12!1,2,3!None-print(1,OK,98.12,1,2,3,None,sep=!,end=);print(-)1!OK!98.12!1,2,3!None -3.3.2 格式

    20、化输出 标准输出时,小数位数是Python内部自动控制的 Python中,可以用以下方法控制输出内容的格式:利用字符串格式化运算符%利用内置函数format()利用字符串的format()方法字符串格式化运算符%格式字符由以下内容组成:%-+0 m.n 数据类型说明符 格式字符串由%开始,数据类型说明符则根据数据项的数据类型来指定格式字符串%(数据项1,数据项2,数据项3,)格式字符串可以有普通字符和格式字符组成普通字符按原样输出一组格式字符与一个数据项对应格式符号格式符号格式化结果格式化结果%字符百分号%。%c单个字符。%s字符串,等价于str()的返回值。%r字符串,等价于repr()的返

    21、回值。%d或%i十进制整数。%o八进制整数。%x或%X十六进制整数,其中的字符用小写或大写。%e或%E科学计数法表示的浮点数,用e或E表示。%f或%F非科学计数法表示的浮点数。%g或%G浮点数,系统自动根据值的大小采用%e、%E、%f或%F。-左对齐输出。+对正数加正号。0空位用0填充。mm是数字,指定最小宽度。.nn是数字,指定精度,采用%e、%E、%f、%F、%g或%G时含义不同。字符串格式化运算符%的用法 print(%t%ct%st%r%(A,abc,abc)%A abc abc print(%d,%i,%o,%x,%X%(299,299,299,299,299)299,299,453

    22、,12b,12B print(Name:%s Age:%d Height:%f%(Aviad,25,1.83)Name:Aviad Age:25 Height:1.830000 print(Name:%s Age:%d Height:%f%(Aviad,25,1.83)Name:Aviad Age:25 Height:1.830000字符串格式化运算符%的用法 print(Name:%-10s Age:%-8d Height:%-8.2f%(Aviad,25,1.83)Name:Aviad Age:25 Height:1.83 print(Name:%010s Age:%08d Height:

    23、%08.2f%(Aviad,25,1.83)Name:Aviad Age:00000025 Height:00001.83 print(Name:%010s Age:%0+8d Height:%+08.2f%(Aviad,25,1.83)Name:Aviad Age:+0000025 Height:+0001.83 print(Name:%(name)010s Age:%(age)0+8d Height:%(height)+08.2f%name:Aviad,height:1.83,age:25)#输出字典Name:Aviad Age:+0000025 Height:+0001.83字符串格式化

    24、运算符%的用法%g%12345.456789901234#自动根据数据大小选择小数形式或指数形式12345.5%f%12345.456789901234#小数形式12345.456790%e%12345.456789901234#指数形式1.234546e+04%14.5g%12345.456789901234#自动形式中的精度指有效数字数 12345%14.5f%12345.456789901234#小数形式中的精度指小数点后的位数 12345.45679%14.5e%12345.456789901234#指数形式中的精度指前面数字的小数位数 1.23455e+04%-+0*.*f%(16,

    25、2,100.93)#在运算符%后指定最小宽度和精度,+100.93 format()函数 省略第二个参数时,format函数等价于str()格式字符串中的基本格式控制符如下:整数:d十进制、b二进制、o八进制、x或X十六进制:print(format(95,X),format(95,o),format(95,b)5F 137 1011111format(输出项,格式字符串)将单项的“输出项”数据,按格式字符串进行格式化为字符串format()函数 格式字符串中的基本格式控制符(续1):浮点数:f或F小数形式、e或E科学计数、g或G自动判定 print(format(162.28193,e),f

    26、ormat(162.28193,g),format(162.28193,f)1.622819e+02 162.282 162.281930 c输出字符、%输出百分数、,输出浮点数时,带千分位符,print(format(31416.123,f)31,416.123000format()函数 格式字符串中的基本格式控制符(续2):用形如m.n的格式来控制输出宽度和精度,m和n都是数字。输出整数或浮点数时,可以使用+表示正数带正号。在指定输出宽度时,在输出宽度前可以使用0、表示用0填充空位(默认用空格填充空位)、左对齐、右对齐和居中对齐。print(format(2.11,10),format(2

    27、.11,010),format(2.11,+10)2.11 0000002.11 +2.11字符串的format()方法 格式说明模板格式字符串.format(键名0=输出项0,键名1=输出项1,)格式字符串中可以包括普通字符和格式说明模板可以有多个格式说明模板,普通字符原样输出输出项序号|键名:格式说明符是输出模板的定界符输出项序号为0、1、2、,键名与输出项前的键名匹配多个格式说明模板与多个输出项按自然位置对应显示字符串的format()方法 print(Name:0 Age:2 Height:1.format(Aviad,1.83,25)Name:Aviad Age:25 Height:

    28、1.83 print(Name:name Age:height Height:age.format(name=Aviad,height=1.83,age=25)Name:Aviad Age:1.83 Height:25 print(0:010b|0:10o|0:10 x|0:print(0:018|0:18|0:18.2|0:print(:14|:14|:print(0:*18|0:?18|0:-18.format(test)*test|?test?|test-3.4 顺序结构程序举例程序编写的一般方法 程序编写一般经历以下步骤:(1)分析问题;(2)确定算法;(3)编写代码;(4)测试代码;

    29、(5)提交并发布代码。大多数程序的基本功能框架如下:获取原始数据 对数据进行处理 输出或存储处理结果顺序结构程序举例 程序的主结构是顺序结构,即程序总是按照语句出现的先后顺序依次执行的。【例3-2】A汽车从甲地开往乙地,以平均速度45公里/小时行驶,B汽车从乙地开往甲地,以平均速度53公里/小时行驶,两辆车行驶了2小时13分钟后相遇。编写程序,输入A、B的速度和行驶的时间,求甲乙两地相距多少公里?【例3-2】编程的解题过程(一般步骤示范)(1)分析问题找到基本的数学公式“距离=(A速度+B速度)*行驶时间”(2)确定算法按程序三部曲(输入、处理、输出)结合本问题的特点,确定算法的每一步。(3)

    30、编写代码:【例3-2】的代码#1.va,vb=eval(input(输入A车和B车的速度:)#2.h,m=eval(input(输入行驶时间:)#3.time=h+m/60#4.s=time*(va+vb)#5.print(甲乙两地相距公里。.format(s)(4)测试代码输入A车和B车的速度:45,53输入行驶时间:2,13甲乙两地相距217.23333333333335公里。【例3-3】求点到直线的距离 求点(x,y)到直线Ax+By+C=0的距离。编写程序输入点的坐标(x,y)值和直线方程的参数A、B、C的值,输出距离。求绝对值:内置abs()函数 平方:一个数乘以自身 开平方:乘方运

    31、算*#1.x,y=eval(input(x,y:)#2.a,b,c=eval(input(方程系数A,B,C:)#3.s=abs(a*x+b*y+c)/(a*a+b*b)*2#4.print(点到直线的距离:.format(s)【例3-4】整数各位数字之和 输入一个3位整数,计算该数中各位数字之和。例如,输入392,各位数字之和是3+9+2=14。方法一:#1.x=input(请输入一个三位数:)#2.x=int(x)#3.a=x/100#获取百位数#4.b=x/10%10#获取十位数#5.c=x%10#获取个位数#6.print(a+b+c)【例3-4】整数各位数字之和 方法二:#1.x=i

    32、nput(请输入一个三位数:)#2.x=int(x)#3.a,b=divmod(x,100)#a得到百位数,b得到后两位数#4.b,c=divmod(b,10)#b得到十位数,c得到个位数#5.print(a+b+c)方法三:#1.x=input(请输入一个三位数:)#2.a,b,c=map(int,x)#采用map函数依次得到百、十、个位数#3.print(a+b+c)【例3-5】整数的英文表达 从键盘输入一个3位整数,将该整数转换为英文表达。例如,输入392,输出three hundred and ninety two。#1.x=input(请输入一个三位数:)#2.a,b,c=map(i

    33、nt,x)#3.eng1=,one,two,three,four,five,six,seven,eight,nine#4.eng2=,ten,twenty,thirty,forty,fifty,sixty,seventy,eighty,ninety#5.print(hundred and-.format(eng1a,eng2b,eng1c)【例3-5】运行结果 测试代码(1)请输入一个三位数:392three hundred and ninety-two 本题的解法是有缺陷 当末两位是1119或末尾为0时翻译结果是不正确的 用选择结构解决该缺陷 测试代码(2)请输入一个三位数:312three hundred and ten-two清华大学出版社谢谢观赏谢谢观赏

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Python课件1第3章 顺序结构.pptx
    链接地址:https://www.163wenku.com/p-7301033.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库