Python语言程序设计(第2版)(含视频教学) 课件 第1、2章 Python语言基础、顺序结构_第1页
Python语言程序设计(第2版)(含视频教学) 课件 第1、2章 Python语言基础、顺序结构_第2页
Python语言程序设计(第2版)(含视频教学) 课件 第1、2章 Python语言基础、顺序结构_第3页
Python语言程序设计(第2版)(含视频教学) 课件 第1、2章 Python语言基础、顺序结构_第4页
Python语言程序设计(第2版)(含视频教学) 课件 第1、2章 Python语言基础、顺序结构_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python语言程序设计(第2版)第1章Python语言基础Python语言的发展历史Python程序的运行开发环境常量与变量Python数据类型常用系统函数基本运算1.1.1Python语言的发展历史Python由荷兰的GuidovanRossum设计。Python第一个版本于1991年初公开发行。Python2.0于2000年10月发布,增加了许多新的语言特性。Python3.0于2008年12月发布,此版本不完全兼容Python2.0。1.1Python语言概述1.1.2Python语言的特点1.Python语言的优势(1)语法简洁。组成一个Python程序也没有太多的语法细节和规则要求,“信手拈来”就可以组成一个程序。(2)程序可读性好。通过强制程序缩进,Python语言确实使得程序具有很好的可读性,同时Python的缩进规则是也有利于程序员养成良好的程序设计习惯。(3)丰富的数据类型。除了基本的数值类型外,Python语言还提供了字符串、列表、元组、字典和集合等丰富的复合数据类型。(4)开源的语言。各种社区提供了成千上万不同功能的开源函数模块,而且还在不断地发展,这为基于Python语言的快速开发提供了强大支持。(5)解释型的语言。用Python语言编写的程序不需要编译成二进制代码,而可以直接运行源代码。(6)面向对象的语言。Python语言既可以面向过程,也可以面向对象,支持灵活的程序设计方式。2.Python语言的局限性Python程序的运行速度比较慢。1.1.3Python语言的应用领域1.系统维护与管理在Windows系统下,通过使用pywin32模块提供的WindowsAPI函数接口,就可以编写与Windows系统底层功能相关的Python程序。利用py2exe模块可以将Python程序转换为.exe可执行程序,使得Python程序可以脱离Python系统环境来运行。2.科学计算与数据可视化Python中用于科学计算与数据可视化的模块有很多,例如NumPy、SciPy、SymPy、Matplotlib等,涉及的应用领域包括数值计算、符号计算、二维图表、三维数据可视化等。

3.数据库应用Python数据库模块有很多,例如,可以通过内置的sqlite3模块访问SQLite数据库,使用pywin32模块访问Access数据库,使用pymysql模块访问MySQL数据库,使用pywin32和pymssql模块来访问SQLSever数据库。4.多媒体应用PyMedia模块是一个用于多媒体操作的Python模块,可以对包括WAV、MP3、AVI等多媒体格式文件进行编码、解码和播放;PyOpenGL模块封装了OpenGL应用程序编程接口,通过该模块可在Python程序中集成二维或三维图形;PIL(PythonImagingLibrary,Python图形库)为Python提供了强大的图像处理功能,并提供广泛的图像文件格式支持。5.网络应用Python语言提供了socket模块,对Socket接口进行了二次封装,支持Socket接口的访问;还提供了urllib、cookielib、httplib、scrapy等大量模块,用于对网页内容进行读取和处理;可以使用Python语言编写CGI程序,也可以把Python程序嵌入到网页中运行;Python语言还支持Web网站开发,比较流行的开发框架有web2py、django等。6.电子游戏应用Pygame就是用来开发电子游戏软件的Python模块,在SDL库的基础上开发,可以支持多个操作系统。使用Pygame模块,可以在Python程序中创建功能丰富的游戏和多媒体程序。7.数据科学和人工智能应用Pandas是基于NumPy的数据处理和分析工具,NLTK用于自然语言处理,jieba用于中文分词,Wordcloud可以生成词云图;Scikit-learn是常用的机器学习模块;TensorFlow、PyTorch则是常见的深度学习框架;Keras是一个用Python编写的开源人工神经网络库。1.2.1Python系统的下载与安装从Python官网下载Python系统文件。选择基于Windows操作系统的当时最新版本进行下载。下载完成后,运行系统文件,进入Python系统安装界面。选中“Addpython.exetoPATH”复选框,并使用默认的安装路径。安装完成后单击“Close”按钮即可。1.2Python语言的开发环境1.2.2Python程序的运行1.启动Python解释器1)命令行形式的Python解释器在Windows系统桌面选择“开始”菜单中的“Python3.11”→“Python3.11(64-bit)”命令,即启动命令行形式的Python解释器。2)图形用户界面形式的Python解释器在Windows系统桌面选择“开始”菜单中的“Python3.11”→“IDLE(Python3.1164-bit)”命令来启动图形用户界面形式的Python解释器。2.Python的运行方式1)Python的命令运行方式启动Python解释器后,可以直接在其提示符(>>>)后输入语句。>>>print("Hello,World!")Hello,World!>>>print(1+3/4)1.752)Python的程序运行方式在图形用户界面形式的Python解释器窗口中选择“File”→“NewFile”命令,或按Ctrl+N快捷键,打开Python程序编辑窗口。在其中键入程序的全部语句,然后存盘。1.常量在程序运行过程中,其值不能改变的数据对象称为常量(constant)。常量按其值的表示形式区分它的类型。例如,0、435、-78是整型常量,-5.8、3.14159、1.0是实型常量(也称作浮点型常量),'410083'、'Python'是字符串常量。1.3常量与变量2.变量的一般概念在高级语言中,变量(variable)可以看作是一个特定的内存存储区,该存储区由一定个数字节的内存单元组成,并可以通过变量的名字来访问。高级语言中的变量具有变量名、变量值和变量地址三个属性。变量在它存在期间,在内存中占据一定的存储单元,以存放变量的值。3.Python变量1)变量的数据类型Python语言是一种动态类型语言,变量的数据类型是在给变量赋值时确定,对变量的每一次赋值,都可能改变变量的类型。可以使用Python内置函数type()来查询变量的类型。2)对象及其引用Python语言采用基于值的内存管理方式,不同的值分配不同的内存空间。Python变量并不是某一个固定内存单元的标识,而是对内存中存储的某个数据的引用(reference),这个引用是可以动态改变的。4.Python标识符在Python中,标识符由字母、数字和下划线(_)组成,但不能以数字开头,标识符中的字母是区分大小写的。例如,abc、a_b_c、Student_ID都是合法的标识符,sum、Sum、SUM代表不同的标识符。单独的下划线(_)是一个特殊变量,用于表示上一次运算的结果。

5.Python关键字所谓关键字(keyword),就是Python语言中事先定义的、具有特定含义的标识符,有时又称保留字。关键字不允许另作它用,否则执行时会出现语法错误。可以在使用import语句导入keyword模块后使用print(keyword.kwlist)语句查看所有Python关键字。>>>importkeyword>>>print(keyword.kwlist)1.4.1数值型1.整型数据整型数据即整数,不带小数点,但可以有正号或负号。在Python中,整型数据的值在计算机内的表示不是固定长度的,只要内存许可,整数可以扩展到任意长度,整数的取值范围几乎包括了全部整数(无限大),这给大数据的计算带来便利。

1.4Python数据类型Python的整型常量有4种表示形式:(1)十进制整数。(2)二进制整数。它以0b或0B(数字0加字母b或B)开头,后接数字0,1的整数。(3)八进制整数。它是以0o或0O(数字0加小写字母o或大写字母O)开头,后接数字0~7的整数。(4)十六进制整数。它是以0x或0X开头,后接0~9和A~F(或用小写字母)字符的整数。2.浮点型数据浮点型数据表示一个实数,有两种表示形式:(1)十进制小数形式。它由数字和小数点组成,如3.23、34.0、0.0等。浮点型数据允许小数点后面没有任何数字,表示小数部分为0,如34.表示34.0。(2)指数形式。指数形式即用科学计数法表示的浮点数。例如,45e-5、45e-6、9.34e2是合法的浮点型常量,分别代表45×10-5、45×10-6、9.34×102。

3.复数型数据复数类型数据的形式为:a+bJ其中a是复数的实部,b是复数的虚部,J表示-1的平方根(虚数单位)。J也可以写成小写j,注意不是数学上的i。可以通过x.real和x.imag来分别获取复数x的实部和虚部,结果都是浮点型。1.4.2字符串型1.Python标准字符串在Python中定义一个标准字符串可以使用单引号、双引号和三引号(三个单引号或三个双引号),这使得Python输入文本更方便。例如,当字符串的内容中包含双引号时,就可以用单引号定义,反之亦然。用单引号或双引号括起来的字符串必须在一行内表示,这是最常见的表示字符串的方法。而用三引号括起来的字符串可以是多行的。2.转义字符转义字符以反斜杠“\”开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称转义字符,主要用来表示那些用一般字符不便于表示的控制代码。例如,“\n”表示以后的输出从下一行开始;“\r”表示对当前行作重叠输出(只回车,不换行);字符“\t”是制表符,其作用是使当前输出位置横向跳至一个输出区的第一列。3.基本的字符串函数1)eval()函数其调用格式为:eval(字符串)eval()函数的作用是把字符串的内容作为对应的Python表达式来求值。2)len()函数len()函数返回字符串的长度,即字符串中所包含的字符个数,其调用格式为:len(字符串)1.4.3布尔型在Python中,布尔型数据有True和False,分别代表逻辑真和逻辑假。Python的布尔表达式包括关系运算表达式和逻辑运算表达式,通常用来在程序中表示条件,条件满足时结果为True,不满足时结果为False。在Python中,逻辑值True和False实际上是分别用整型值1和0参与运算。例如:>>>x=False>>>x+(5>4)11.4.4复合数据类型列表、元组、字典和集合类型的数据包含多个相互关联的数据元素,所以称它们为复合数据类型。字符串其实也是一种复合数据,其元素是单个字符。列表、元组和字符串是有顺序的数据元素的集合体,称作序列(sequence)。序列可以通过各数据元素在序列中的位置编号(索引)来访问数据元素。字典和集合属于无顺序的数据集合体,不能通过位置编号来访问数据元素。1.列表列表(list)是写在中括号之间、用逗号分隔的元素序列,元素的类型可以不相同,可以是数字、单个字符、字符串甚至可以包含列表(所谓嵌套)。例如:>>>mlist=['brenden',45.3,911,'john',32]与Python字符串不同的是,列表中的元素是可以改变的。例如:>>>a=[1,2,3,4,5,6]>>>a[0]=9>>>a[9,2,3,4,5,6]2.元组元组(tuple)是写在小括号之间、用逗号隔开的元素序列。元组中的元素类型也可以不相同。元组与列表类似,不同之处在于元组的元素不能修改,相当于只读列表。例如:>>>mtuple=('brenden',45.3,911,'john',32)要注意一些特殊元组的表示方法。空的圆括号表示空元组。当元组只有一个元素时,必须以逗号结尾。任何一组以逗号分隔的对象,当省略标识序列的括号时,默认为元组。例如:>>>2,3,4(2,3,4)元组与字符串类似,元素不能二次赋值。其实,可以把字符串看作一种特殊的元组。元组和列表有几点重要的区别。列表元素用中括号[]括起来,且元素的个数及元素的值可以改变。元组元素用小括号()括起来,且不可以更改。元组可以看成是只读的列表。3.字典字典(dictionary)是写在大括号之间、用逗号分隔的元素集合,其元素由关键字(key,也称作键)和关键字对应的值(value)组成,通过关键字来存取的字典中的元素。列表和元组是有序的对象结合,字典是无序的对象集合。字典是一种映射类型(mappingtype),它是一个无序的“关键字:值”对集合。关键字必须使用不可变类型,也就是说列表和包含可变类型的元组不能做索引关键字。在同一个字典中,关键字还必须互不相同。例如:>>>dict={'name':'brenden','code':410012,'dept':'sales'}4.集合集合(set)是一个无序且包含不重复元素的数据类型。基本功能是进行成员关系测试和消除重复元素。可以使用大括号或者set()函数创建集合类型,注意:创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典。>>>student={'Tom','Jim','Mary','Tom','Jack','Rose'}Python的标准库包含很多模块,每个模块中定义了很多有用的函数,这些函数称为系统函数。例如,数学库模块(math)提供了很多数学运算函数,复数模块(cmath)提供了用于复数运算的函数,随机数模块(random)提供了用来生成随机数的函数,时间(time)和日历(calendar)模块提供了能处理日期和时间的函数。1.5常用系统函数在调用系统函数之前,先要使用import语句导入相应的模块,格式如下:import模块名还有一种导入模块的方法,格式如下:from模块名import函数名如果希望导入模块中的所有函数定义,则函数名用“*”。格式如下:from模块名import*1.5.1常用模块函数1.math模块函数math模块主要处理数学相关的运算。2.cmath模块函数cmath模块函数跟math模块函数基本一致,包括圆周率、自然对数的底,还有复数的幂指数、对数函数、平方根函数、三角函数等。cmath模块函数名和math模块函数名一样,只是math模块对实数运算进行支持,cmath模块对复数运算进行支持。3.random模块函数1)随机数种子2)随机挑选和排序3)生成随机数4.time模块函数例如,time()函数返回当前时间的时间戳。5.calendar模块函数日历(calendar)模块提供与日历相关的功能。在默认情况下,日历把星期一作为一周的第一天,星期日为最后一天。要改变这种设置,可以调用setfirstweekday()函数。1.5.2常用内置函数Python内置函数包含在模块builtins中,该模块在启动Python解释器时自动装入内存,而其他的模块函数都要等使用import语句导入时才会装入内存。内置函数随着Python解释器的运行而创建,在程序中可以随时调用这些函数。前面用到的print()函数、type()、id()函数都是常见的内置函数。1.range()函数range()函数的调用格式是:range([start,]end[,step])range()函数产生的数字序列从start开始,默认是从0开始;序列到end结束,但不包含end;如果指定了可选的步长step,则序列按步长增加,默认为1。例如:>>>range(2)#产生可迭代对象range(0,2)2.数值运算函数Python有些内置函数用于数值运算。abs(x):返回x的绝对值,结果保持x的类型。x为复数时返回复数的模。pow(x,y[,z]):省略z时,返回x的y次幂,结果保持x或y的类型。如果使用了参数z,其结果是x的y次方再对z求余数。round(x[,n]):用于对浮点数进行四舍五入运算,返回值为浮点数。它有一个可选的小数位数参数。divmod(x,y):把除法和取余运算结合起来,返回一个包含商和余数的元组。3.Python系统的帮助信息查看Python帮助信息可以使用内置函数dir()和help()。dir()函数的调用方法很简单,只需把想要查询的对象加到括号中就可以了,它返回一个列表,其中包含要查询对象的所有属性和方法。查看某个对象的帮助信息可以用help()函数。1.6.1算术运算1.算术运算符与算术表达式Python的算术运算符有:+(加)、-(减)、*(乘)、/(除)、//(整除)、%(求余)、**(乘方)1.6基本运算/、//和%运算符都是做除法运算,其中“/”运算符做一般意义上的除法,其运算结果是一个浮点数,即使被除数和除数都是整型,也返回一个浮点数;“//”运算符做除法运算后返回商的整数部分。如果分子或者分母是浮点型,它返回的值将会是浮点类型;“%”运算符做除法运算后返回余数。“**”运算符实现乘方运算,其优先级高于乘除运算,乘除运算优先级高于加减运算。Python表达式书写练习:2.浮点数的计算误差Python中能表示浮点数的有效数字是有限的,而在实际应用中数据的有效位数并无限制,这种矛盾,势必带来计算时的微小误差。对浮点数判断是否相等要慎用“==”运算符,恰当的办法是判断它们是否“约等于”,只要在允许的误差范围内,这种判断仍是有意义的。所谓“约等于”是指两个浮点数非常接近,即它们的差足够小(具体误差可以根据实际情况进行调整)。3.数据类型的转换常用的类型转换函数如下。int(x)将x转换为整型。float(x)将x为转换浮点型。complex(x)将x转换为复数,其中复数的实部为x和虚部为0。complex(x,y)将x和y转换成一个复数,其中实部为x和虚部y。1.6.2位运算1.按位与运算按位与运算符是&,按位运算规则为:0&0=0,0&1=0,1&0=0,1&1=12.按位或运算按位或运算符是|,按位运算规则为:0|0=0,0|1=1,1|0=1,1|1=13.按位异或运算按位异或运算符是^,按位运算规则为:0^0=0,0^1=1,1^0=1,1^1=04.按位取反运算按位取反运算符是~,按位运算规则为:~0=1,~1=05.左移运算左移运算符是<<。例如:>>>3<<2126.右移运算右移运算符是>>。移动对象为正数时,高位补0。为负数时,高位补1。例如:>>>-3>>2-1第2章顺序结构程序设计概述Python程序的书写规则赋值语句数据输入/输出顺序结构程序举例2.1.1程序设计的基本步骤分析问题,确定数学模型或方法设计算法,画出流程图选择编程工具,按算法编写程序调试程序,分析输出结果2.1程序设计概述2.1.2算法及其描述1.算法的概念计算机解决问题的方法和步骤,就是计算机解题的算法。例2-1求例2-2输入20个数,要求找出其中最大的数。2.算法的描述1)用传统流程图描述算法例2-3用传统流程图来描述例2-1和例2-2的算法。用传统流程图描述的算法分别如图2-1和图2-2所示。用传统流程图描述例2-1的算法

用传统流程图描述例2-2的算法2)用结构化流程图描述算法(1)程序的三种基本结构:顺序结构、选择结构和循环结构。

顺序结构选择结构

(a)当型循环结构

(b)直到型循环结构三种基本程序结构具有如下共同特点:只有一个入口。只有一个出口。结构中无死语句,即结构内的每一部分都有机会被执行。结构中无死循环,即循环在满足一定条件后能正常结束。(2)结构化流程图(N-S图):以三种基本结构作为构成算法的基本元素,每一种基本结构用一个矩形框来表示,而且取消了流程线,各基本结构之间保持顺序执行关系。

顺序结构的N-S图

选择结构的N-S图

(a)当型循环结构

b)直到型循环结构例用N-S图描述例2-1和例2-2的算法。

用N-S图描述例2-1的算法用N-S图描述例2-2的算法2.2.1初识Python程序例输入三个变量的值,然后按小到大顺序输出。x=int(input('inputx:'))#输入x的值y=int(input('inputy:'))#输入y的值z=int(input('inputz:'))#输入z的值ifx>y:#如果x>y,则x和y的值互换x,y=y,xifx>z:#如果x>z,则x和z的值互换x,z=z,xify>z:#如果y>z,则y和z的值互换y,z=z,yprint(x,y,z)2.2Python程序的书写规则例已知f(x,y)=x2+y2,输入x,y的值,求出对应的函数值。程序如下:deff(x,y):returnx**2+y**2print("f(3,4)=",f(3,4))第一个语句定义了一个函数,然后调用该函数。前面的f(x,y)函数可以定义成lambda函数的形式。f=lambdax,y:x**2+y**2print("f(3,4)=",f(3,4))例输出Fibonacci数列前50项之和。程序如下:a,b=0,1s=0foriinrange(50):#i从0变化到49s+=ba,b=b,a+bprint("s=",s)程序段一:foriinrange(0,50):s+=ba,b=b,a+b2.2.2Python语句缩进规则Python通过语句缩进对齐反映语句之间的逻辑关系,从而区分不同的语句块。就一个语句块来讲,需要保持一致的缩进量。程序段二:foriinrange(0,50):s+=ba,b=b,a+b两种缩进方式可用流程图直观表示。(a)(b)两种缩进方式的比较2.2.3Python语句行与注释1.语句行在Python中,语句行从解释器提示符后的第一列开始,前面不能有任何空格,否则会产生语法错误。每个语句行以回车符结束。可以在同一行中使用多条语句,语句之间使用分号分隔。如果语句行太长,可以使用反斜杠将一行语句分为多行显示。如果在语句中包含小括号、中括号或大括号,则不需要使用多行续行符。2.注释注释对程序的执行没有任何影响,目的是对程序作解释说明,以增强程序的可读性。程序中的单行注释采用#开头,注释可以从任意位置开始,可以在语句行末尾,也可以独立成行。对于多行注释,一般推荐使用多个#开头的多行注释,也可采用三引号(实际上是用三引号括起来的一个多行字符串,起到注释的作用)。注意,注释行是不能使用反斜杠续行的。2.3赋值语句Python的赋值和一般的高级语言的赋值有很大的不同,它是数据对象的一个引用。2.3.1赋值语句的一般格式一个变量通过赋值可以指向不同类型的对象。赋值语句的一般格式为:变量=表达式赋值号左边必须是变量,右边则是表达式。赋值的意义是先计算表达式的值,然后使该变量指向该数据对象,该变量可以理解为该数据对象的别名。Python是动态类型语言,也就是说不需要预先定义变量类型,变量的类型和值在赋值那一刻被初始化。例如:>>>x=67.2>>>x="ABCD"Python中的赋值并不是直接将一个值赋给一个变量,而是通过引用传递的。在赋值时,不管这个对象是新创建的还是一个已经存在的,都是建立变量对该数据对象的引用(并不是值)。2.3.2复合赋值语句Python还提供了12种复合赋值运算符:+=、-=、*=、/=、//=、%=、**=、<<=、>>=、&=、|=、^=其中,前7种是常用的算术运算,后5种是关于位运算的复合赋值运算符。例如:x+=5.0x*=u+v分别等价于“x=x+5.0”和“x=x*(u+v)”。2.3.3多变量赋值1.链式赋值链式赋值语句的一般形式为:变量1=变量2=……=变量n=表达式例如:>>>a=b=10赋值语句执行时,创建一个值为10的整型对象,将对象的同一个引用赋值给a和b,即a和b均指向数据对象10。2.同步赋值同步赋值的一般形式为:变量1,变量2,……,变量n=表达式1,表达式2,……,表达式n其中赋值号左边变量的个数与右边表达式的个数要一致。同步赋值首先计算右边n个表达式的值,然后同时将表达式的值赋值给左边的n个变量,这并非等同于简单地将多个单一赋值语句进行组合。例如:>>>a,b,c=10,20,302.4.1标准输入/输出1.标准输入Python用内置函数input()实现标准输入,其调用格式为:input([提示字符串])其中,中括号中的“提示字符串”

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论