版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python程序设计第一章概述第1章概述本章学习目标理解计算机起源与结构知识掌握搭建Python开发和运行环境理解三方库的安装和配置目录1Python开发和运行环境从计算机到编程21计算机发展与冯·诺依曼结构计算工具的演化:从结绳记事到算盘、计算尺。埃尼阿克的诞生与计算机时代的开启。冯·诺依曼结构的组成:五大核心部件:控制器、运算器、存储器、输入设备、输出设备过渡到编程:编程是通过指令操作硬件的方式。2编程与Python语言编程范式:三种核心范式:面向过程、面向对象、函数式。不同范式对应的语言代表(如C、Java、Lisp)Python语言的历史:作者吉多·范·罗苏姆的愿景:结合C语言和Shell优点的通用语言。语言特性:简洁、易读、功能强大。总结:Python兼具多范式编程能力,适合快速上手和深入探索。目录1Python开发和运行环境从计算机到编程23Python的安装与配置下载步骤:打开浏览器,访问:https://www.P/点击“Downloads”,系统会自动推荐适合您操作系统的版本。下载适合的安装包:Windows:.exe文件macOS:.pkg文件Linux:通常已预装Python,也可以选择源码安装。确保下载最新的稳定版本(例如:Python3.x)。3Python的安装与配置macOS操作系统:双击.pkg文件启动安装。按提示完成安装。打开终端,输入以下命令测试安装是否成功:
python3--version3Python的安装与配置Linux操作系统:大多数Linux发行版已预装Python。如需安装或更新,可通过包管理工具(以Ubuntu为例):
sudo
apt-getinstallpython检查安装版本:python3--version3Python的安装与配置Windows操作系统:双击下载的.exe文件启动安装程序。勾选AddPythontoPATH(非常重要,用于命令行直接访问Python)。点击Customizeinstallation:选择安装路径(推荐使用默认路径)。可选组件:勾选pip(包管理工具)和tcl/tk(GUI支持)。点击InstallNow,等待安装完成。3Python的安装与配置配置环境变量(Windows专用):安装时勾选AddPythontoPATH,系统会自动配置。若未勾选,可手动配置:打开控制面板->系统->高级系统设置->环境变量。在“系统变量”中找到Path,点击“编辑”。添加Python的安装路径(如:C:\Python39\和C:\Python39\Scripts\)。验证配置是否成功:打开命令提示符,输入: python–version pip--version3Python的安装与配置如何验证Python安装是否成功?打开命令行工具(Windows:cmd,macOS/Linux:Terminal)。输入以下命令:
检查安装版本:python3–version如果正确显示版本号,则说明安装成功。4在windows中运行测试运行第一个Python程序Python运行的两种方式交互式(命令行式):一问一答模式执行命令代码文件方式(脚本程序方式):执行文件的方式4在windows中测试运行第一个Python程序1)启动IDLE
Windows:您可以在开始菜单中找到IDLE,或者通过搜索“IDLE”找到并启动它。
macOS:在Finder中,前往“应用程序”->“Python”目录,找到IDLE并打开。
Linux:在命令行中输入idle(或idle3,取决于Python版本),并按Enter键。4在windows中运行测试运行第一个Python程序4在windows中运行测试运行第一个Python程序2)运用IDLE运行代码交互式运行代码交互式是指Python解释器即时响应用户输入的代码,输出运行结果。4在windows中运行测试运行第一个Python程序4在windows中运行测试运行第一个Python程序文件式运行代码文件式是指用户将Python代码全部写在一个或多个文件中之后启动Python解释器批量执行文件中的代码。4在windows中运行测试运行第一个Python程序5管理第三方库使用pip安装库在命令行输入:pipinstallnumpy验证安装:python-c"importnumpy;print(numpy.__version__)"5管理第三方库为什么推荐使用Anaconda?优点:提供完整的Python和数据科学工具包(如NumPy、Pandas等)。内置包管理工具conda,更易管理依赖关系。包含JupyterNotebook、Spyder等开发工具。在Anaconda官网下载安装验证安装:conda--version6本章小结本章节主要涉及了计算机起源及其主要结构,再到编程的基础概念,也介绍了选择Python作为编程语言的理由。编写第一个Python程序的步骤,以及在不同系统环境中搭建Python开发和运行环境,重点介绍了IDLE中程序开发步骤,也涵盖了包括三方库的安装和配置的知识。在理解了如何搭建一个基本的开发环境之后,读者们可以更加自信地进入后续章节,进一步学习Python编程的更多知识。Python自学资源:
(Python官网)
/(菜鸟教程)
/(Github软件托管)/wiki/1016959663602400(廖雪峰Python教程)Python程序设计12-8月-26第二章程序数据描述第2章程序数据描述本章学习目标理解Python代码规范掌握Python数据类型掌握Python运算符与表达式理解python常用系统函数1理解Python的运算符与表达式目录认识Python数据类型2掌握Python系统函数的用法32.1理解Python代码规范Python语言有一套语法规范。了解其基本规范,有助于学习者更快地编写程序。2.1.1 注释注释是对程序进行解释的语句,目的是增强程序的可读性,便于读者理解。注释对程序的执行没有任何影响,Python解释器遇到注释语句时会跳过工忽略,不予执行。1.单行注释:单行注释以“#”为开头,到该行的末尾结束。#这是一条测试语句print('Helloworld!')print('Helloworld!')#这是一条测试语句2.多行注释多行注释以三引号为标识,注释内容在三引号内。'''这是一条测试语句'''print('Helloworld!')2.1.1 注释2.1.2 缩进在Python中,语句行从解释器提示符的第一列开始,即顶行开始写,前面不要有空格。Python使用缩进对齐来反映语句的逻辑关系与层次关系,从而区分不同的语句块。例2-1a=10ifa>=5*2:print(a,end='')print(">=5*2")else:print(a,end='')print("<=5*2")2.1.3 其他1.续行Python程序或命令里,通常一行写一条语句,没有语句结束符号。但也有代码过长导致一行写不下的情况,这时需要用到续行符“\”将下一行的内容与当前行连接起来,表示一条完整的命令或语句。例如:>>>a=3>>>b=4>>>print("Thisisalongmathexpression:","a*b=",a*b,\"a+b=",a+b,"a-b=",a-b,"a/b=",a/b)Thisisalongmathexpression:a*b=12a+b=7a-b=-1a/b=0.752.1.3 其他2.并行程序中有些代码很短,功能相似,若写多行造成代码篇幅较长不简洁的情况,这时可以在一行上写多条语句,然后用分号“;”将多条语句分隔开来即可。例如:>>>a=3;b=4>>>a3>>>b42.1.3 其他3.帮助信息初学者如果对Python语句或命令不熟悉,需要获得详细的帮助信息,可以用help()函数来调用解释器自带的帮助文档,了解其具体功能。例如,若读者不清楚print()函数的功能,则可用以下命令:>>>help(print)2.2Python数据类型在人们描述客观世界、分析问题时,需要用符号化的方法来描述和记录现实世界的客观事物与事物联系,这种符号化的方式被称为数据(data)。数据有不同的表现形式,例如可以是文字、声音、图形、图像、视频等;同时数据也具有不同的类型,例如数值数据可以有整数和实数等不同类型。下面分别介绍数据的表达和数据类型。2.2.1常量与变量1.常量在程序运行过程中,其值不能改变的数据对象称为常量。常量按其值的表示形式区分它的类型。例如,0、57、-23是整型常量,3.14、69.4、3.0是实型常量(也称作浮点型常量),'430077'、'Python'是字符串常量。2.变量在高级程序设计语言中,用户无须直接记住或使用内存地址,而是通过对内存单元进行命名,利用内存单元的名字来访问存储单元。内存单元的名字就是俗称的变量名可以通过变量的名字来访问该内存单元。高级程序语言中的变量具有变量名、变量值和变量地址三个属性。2.2.1常量与变量在Python中,不需要事先声明变量名及其类型,直接赋值即可创建各种类型的对象变量。这一点适用于Python任意类型的对象。例如:>>>x=3创建了整型变量x,并赋值为3,再例如语句>>>x='Helloworld.'创建了字符串变量x,并赋值为'Helloworld.'。2.2.1常量与变量——变量名的定义规范在定义变量名的时候,需要注意以下问题:Python语言中规定标识符由字母、数字、下划线构成,但不允许以数字开头,以下划线开头的变量在Python中有特殊含义;不能使用关键字作变量名,可以导入keyword模块后使用print(keyword.kwlist)查看所有Python关键字;变量名对英文字母的大小写敏感,例如student和Student是不同的变量。不建议使用系统内置的模块名、类型名或函数名以及已导入的模块名及其成员名作变量名,这将会改变其类型和含义。2.2.1常量与变量——变量与地址的关系赋值语句的执行过程是:首先把等号右侧表达式的值计算出来,然后在内存中寻找一个位置把值存放进去,最后创建变量并指向这个内存地址。>>>x=3Python中的变量并不直接存储值,而是存储了值的内存地址或者引用,这也是变量类型随时可以改变的原因,这种方式也称为基于值的内存管理方式。2.2.1常量与变量——变量与地址的关系>>>x=10>>>id(x)#查看变量x的内存地址2249186345488
>>>x=5.8>>>id(x)#查看变量x的内存地址2249221089456Python语言,可通过id()函数查看变量的内存地址,当变量的值发生变化,通常是该变量指向的地址发生了变化。Python属于强类型编程语言,Python解释器会根据赋值或运算来自动推断变量类型。Python还是一种动态类型语言,变量的类型也是可以随时变化的。2.2.1常量与变量——变量与地址的关系>>>x=3>>>print(type(x))<class'int'>>>>x='Helloworld.'>>>print(type(x))#查看变量类型<class'str'>2.2.2数值类型——整数型在Python中,内置的数值类型有整数、实数和复数。整数类型除了常见的十进制整数,还有:(1)二进制整数:由0和1两个数构成,进位规则是“逢二进一”。二进制整数需要在数字前加上0b或0B(数字0加字母b或B)。(2)八进制整数:由0~7组成,进位规则是“逢七进一”。二进制整数需要在数字前加上0o或0O(数字0加字母o或O)。(3)十六进制整数:由0~9和A~F组成,进位规则是“逢十六进一”。二进制整数需要在数字前加上0x或0X(数字0加字母x或X)。例如:>>>0B110113>>>0O2521>>>0XAD173Python支持任意大的整数,具体可以大到什么程度仅受内存大小的限制>>>9999**99#这里**是幂乘运算符,等价于内置函数pow()9901483535267234876022631247532826255705595288957910573243265291217948378940535134644221768269164339325869243866777662440320016237568214004329750512088202049800987355527038413623046699705106912438002182028403743293788006949203097919541851177984343295912121591062986999386699080675733747243312089424255448939109100732050490316567892208895607329629262263058657065935949178962767563968485149009899992.2.2数值类型——整数型浮点型数据表示实数,必须有小数部分。表达方式有两种:(1)小数形式,如3.14、3.0等。(2)指数形式,如5.78e2、-4.8e-32.2.2数值类型——浮点型由实数部分和虚数部分构成,虚数部分以字母j(或J)结尾,可表示为a+bj,或者complex(a,b),可通过x.real和x.imag分别获取复数x的实部和虚部,结果都是浮点型数据。>>>5+8j(5+8j)>>>x=complex(7,11)>>>x(7+11j)>>>x.real7.0>>>x.imag11.02.2.2数值类型——复数型2.2.3字符串在Python中,使用单引号、双引号、三单引号、三双引号作为定界符(delimiter)来表示字符串。Python没有字符类型,单个字符也是作为字符串使用,并且不同的定界符之间可以互相嵌套。Python3.x全面支持中文,中文和英文字母都作为一个字符对待,甚至可以使用中文作为变量名。2.2.3
字符串——标准字符串>>>str1='Helloworld!'>>>str1'Helloworld!'>>>ID="15872589">>>ID'15872589'>>>str2='''Hello!WelcometoBeijing!'''>>>str2'Hello!\nWelcometoBeijing!'>>>print(str2)Hello!WelcometoBeijing!2.2.3
字符串——转义字符转义字符由反斜杠“\”开头,后面跟一个或几个字符,表示特定的含义。转义字符描述转义字符描述\(在行尾时)续行符\n换行\a响铃\b退格符(Backspace)\0空格符\r回车\t水平制表符\\反斜杠符号\’单引号\”双引号\f换页\000空\oyy八进制数yy表示的ASCII码所代表字符\xyy十六进制数yy表示的ASCII码所代表的字符>>>print('Hello!\nWelcometoBeijing!')Hello!WelcometoBeijing!>>>print('Hello!\tWelcometoBeijing!')Hello! WelcometoBeijing!如果要忽略字符串中的转义字符,可以在字符串前添加字母r(或R)。例如:>>>print('ID:\t001678')ID:001678>>>print(r'ID:\t001678')ID:\t0016782.2.3
字符串——转义字符2.2.4布尔类型
布尔类型也称为逻辑型,只有逻辑真(True)与逻辑假(False)两种值。通常,描述条件成立的结果用True表示,条件不成立的结果用False表示。例如:>>>x=5>>>x<10True>>>x>3+4FalsePython语言中,逻辑真(True)与逻辑假(False)也可以分别代表整形值1和0进行运算。例如:>>>x=True>>>x+12>>>y=False>>>y+332.2.5复合数据类型(列表、元组、字典、集合)1.列表列表是用方括号括起来的,用逗号分隔的元素序列。元素的数据类型可以相同也可以不同。空列表用“[]”表示。>>>lst=['Alice',99,3.7,True,5+7j]#定义列表lst>>>lst#显示列表lst的值['Alice',99,3.7,True,(5+7j)]复合数据类型是指该类型数据不是单一的,可以包含多种具有相互关联的数据元素。Python语言中,列表、元组、字典、集合都是复合数据类型,字符串也可以被视为由多个字符构成的复合数据。2.2.5复合数据类型(列表、元组、字典、集合)2.元组元组是用圆括号括起来的,用逗号分隔的元素序列。元素的数据类型可以相同也可以不同。空元组用“()”表示。
>>>tpl=('Alice',99,3.7,True,5+7j)#定义元组>>>tpl('Alice',99,3.7,True,(5+7j))2.2.5复合数据类型(列表、元组、字典、集合)3.字典字典是用花括号括起来的,用逗号分隔的元素集合,其元素是由“关键字:键值”构成的键值对,反映从关键字到值的映射关系。同一字典中,关键字必须互不相同且是不可变数据类型。>>>dic={'name':'Joey','age':19,'gender':'male'}>>>dic#查看完整字典{'name':'Joey','age':19,'gender':'male'}>>>dic['age']#通过关键字访问对应的值192.2.5复合数据类型(列表、元组、字典、集合)4.集合集合是花括号括起来的,用逗号分隔的无序且不重复的数据聚集体,可用来消除重复元素。集合可用{}或set()函数创建,注意空集合只能由set()函数创建,因为空的花括号代表空字典。例如:>>>s1={3,5,7,3,6,9}#直接定义集合>>>s1{3,5,6,7,9}#集合中不包含重复元素2.2.6 数据类型判断与转换Python语言中可以用type()函数判断数据类型,例如:>>>a=3.6>>>b='hello'>>>type(a)<class'float'>#变量a是浮点数类型>>>type(b)<class'str'>#变量b是字符串类型2.2.6 数据类型判断与转换数据类型可以适当转换,一些常用类型转换函数如下:int(x):将x转换为整型数据。float(x):将x转换为浮点型数据。complex(x):将x转换为复数类型,复数的实部为x,虚部为0。complex(x,y):将x,y转换为复数,复数的实部为x,虚部为y。str(x):将x转换为字符串类型数据。>>>x=3571>>>y=str(x)#转化为字符串>>>y'3571'>>>z=float(x)#转化为浮点型数据>>>z3571.01理解Python的运算符与表达式目录认识Python数据类型2掌握Python系统函数的用法32.3Python运算符与表达式在高级程序设计语言中,表达式是由运算符与运算数构成的式子,用来完成指定的运算。2.3
Python运算符与表达式运算符功能说明+算术加法,列表、元组、字符串合并与连接,正号-算术减法,集合差集,相反数*算术乘法,序列重复/真除法//求整商,但如果操作数中有实数的话,结果为实数形式的整数%求余数,字符串格式化**幂运算<、<=、>、>=、==、!=(值)大小比较,集合的包含关系比较or逻辑或and逻辑与not逻辑非in成员测试is对象同一性测试,即测试是否为同一个对象或内存地址是否相同|、^、&、<<、>>、~位或、位异或、位与、左移位、右移位、位求反&、|、^集合交集、并集、对称差集@矩阵相乘运算符2.3.1
算术运算符(1)+运算符除了用于算术加法以外,还可以用于列表、元组、字符串的连接,但不支持不同类型的对象之间相加或连接。>>>[1,2,3]+[4,5,6]#连接两个列表[1,2,3,4,5,6]>>>(1,2,3)+(4,)#连接两个元组(1,2,3,4)>>>'abcd'+'1234'#连接两个字符串'abcd1234'2.3.1
算术运算符>>>'A'+1#不支持字符与数字相加,抛出异常TypeError:Can'tconvert'int'objecttostrimplicitly>>>True+3#Python内部把True当作1处理4>>>False+3#把False当作0处理32.3.1
算术运算符(2)*运算符除了表示算术乘法,还可用于列表、元组、字符串这几个序列类型与整数的乘法,表示序列元素的重复,生成新的序列对象。字典和集合不支持与整数的相乘,因为其中的元素是不允许重复的。>>>True*33>>>False*30>>>[1,2,3]*3[1,2,3,1,2,3,1,2,3]>>>(1,2,3)*3(1,2,3,1,2,3,1,2,3)>>>'abc'*3'abcabcabc'2.3.1
算术运算符(3)运算符/和//在Python中分别表示算术除法和算术求整商(floordivision)。>>>3/2#数学意义上的除法1.5>>>15//4#如果两个操作数都是整数,结果为整数3>>>15.0//4#如果操作数中有实数,结果为实数形式的整数值3.0>>>-15//4#向下取整-42.3.1
算术运算符(4)%运算符可以用于整数或实数的求余数运算,还可以用于字符串格式化,但是这种用法并不推荐。>>>789%23#余数7>>>123.45%3.2#可以对实数进行余数运算,注意精度问题1.849999999999996>>>'%c,%d'%(65,65)#把65分别格式化为字符和整数'A,65'>>>'%f,%s'%(65,65)#把65分别格式化为实数和字符串'65.000000,65'2.3.1
算术运算符(5)**运算符表示幂乘:>>>3**2#3的2次方,等价于pow(3,2)9>>>pow(3,2,8)#等价于(3**2)%81>>>9**0.5#9的0.5次方,平方根3.0>>>(-9)**0.5#可以计算负数的平方根(1.8369701987210297e-16+3j)>>>3**2**3???2.3.2赋值运算符赋值运算符由“=”构成,其表达形式为:变量=表达式。运算规则是将“=”右边表达式的计算结果赋值给“=”左边的变量。例如:>>>m=4*(3+6)>>>m36>>>n=(m+2)%5>>>n32.3.2赋值运算符若要将同一值赋给多个变量,可以将赋值运算符连写,这时是多个变量名称指向同一个内存地址,多个变量的内存地址是一致的。例如:
>>>x=y=z=10#多个变量赋相同值>>>x10>>>y10>>>z10>>>id(x)1593389089296#多个变量指向同一地址>>>id(y)1593389089296>>>id(z)15933890892962.3.2赋值运算符若要为不同变量赋予不同的值,可以写为以下形式:>>>x,y,z=4,7,11#多个变量赋不同值,默认按照位置对应赋值>>>x4>>>y7>>>z11Python还有赋值运算符=和+=、-=、*=、/=、//=、**=、|=、^=等大量复合赋值运算符。运算符含义示例+=加法赋值x+=y等同于x=x+y-=减法赋值x-=y等同于x=x-y*=乘法赋值x*=y等同于x=x*y/=除法赋值x/=y等同于x=x/y**=乘方赋值x**=y等同于x=x**y//=整除赋值x//=y等同于x=x//y%=求余赋值x%=y等同于x=x%y2.3.2赋值运算符>>>x=10>>>x+=5#等同于x=x+5>>>x15>>>x=10>>>x%=x-x//4>>>x22.3.2赋值运算符2.3.3关系运算符Python关系运算符最大的特点是可以连用。>>>1<3<5#等价于1<3and3<5True>>>3<5>2True>>>1>6<8False2.3.4逻辑运算符逻辑运算符and、or、not常用来连接条件表达式构成更加复杂的条件表达式。另外要注意的是,运算符and和or并不一定会返回True或False,而是得到最后一个被计算的表达式的值,但是运算符not一定会返回True或False。2.3.4逻辑运算符>>>x=10>>>y=20>>>x>5*3andy>=5*4False>>>x**2>=100ory<3**2True>>>3+True#算术运算True代表14>>>False*3#算术运算False代表00>>>10andTrue#非0表示真值True>>>0and5#0表示假值0>>>0or4#非0表示真值42.3.5成员测试运算符-in成员测试运算符in用于成员测试,即测试一个对象是否为另一个对象的元素。>>>3in[1,2,3]#测试3是否存在于列表[1,2,3]中True>>>5inrange(1,10,1)#range()是用来生成指定范围数字的内置函数True>>>'abc'in'abcdefg'#子字符串测试True2.3.6位运算符位(bit)是计算机中表示信息最小的单位。位运算是直接按二进制位进行操作,常用位运算符如表2-8所示。2.3.6位运算符例如:>>>a=3>>>b=10>>>a&b2运算过程是先将操作数转换为二进制补码,然后进行位运算计算,如下:a=00000011b=00001010a&b=00000010#十进制2的补码2.3Python运算符与表达式运算符优先级遵循的规则为:算术运算符优先级>位运算符>成员测试运算符>关系运算符>逻辑运算符等算术运算符遵循“先乘除,后加减”的基本运算原则虽然Python运算符有一套严格的优先级规则,但是强烈建议在编写复杂表达式时使用圆括号来明确说明其中的逻辑来提高代码可读性。1理解Python的运算符与表达式目录认识Python数据类型(内置对象)2掌握Python内置函数的用法32.4Python常用内置函数用法内置函数(BIF,built-infunctions)是Python内置对象类型之一,不需要额外导入任何模块即可直接使用,这些内置对象都封装在内置模块__builtins__之中,用C语言实现并且进行了大量优化,具有非常快的运行速度,推荐优先使用。使用内置函数dir()可以查看所有内置函数和内置对象:>>>dir(__builtins__)使用help(函数名)可以查看某个函数的用法。>>>help(sum)Helponbuilt-infunctionsuminmodulebuiltins:sum(iterable,start=0,/)Returnthesumofa'start'value(default:0)plusaniterableofnumbers
Whentheiterableisempty,returnthestartvalue.Thisfunctionisintendedspecificallyforusewithnumericvaluesandmayrejectnon-numerictypes.2.4.1常用内置函数1.range()函数range()函数的语法格式为range([start,]end[,step]),返回range对象,包含[start,end)左闭右开区间内以step为步长的整数序列。其中起点start可省略,默认从0开始;步长step也可省略,默认为1;终点end不能省略。>>>range(8)range(0,8)>>>list(range(1,8,2))[1,3,5,7]>>>list(range(10,0,-2))[10,8,6,4,2]2.4.1常用内置函数2.数值运算函数
(1)abs(x):返回x的绝对值,结果保持x的类型。x为复数时返回复数的模。例如:>>>abs(-3*5)15>>>abs(3+4j) #求复数的模
5.0(2)pow(x,y[,z]):其中的x,y是必选参数,z是可选参数,z加方括号,表示z是可选参数。表示x的y次方再对z求余数。省略z时,返回x的y次幂。>>>pow(3,4)81>>>pow(3,4,5)12.4.1常用内置函数(3)round(x[,n]):用于对浮点数进行四舍五入运算,第二个可选参数告诉round()函数将结果精确到小数点后指定位数,若省略表示精确整数位。例如:>>>round(3.56) 4>>>round(3.14159,3)
3.142(4)divmod(x,y):把除法和取余运算结合起来,返回一个包含商和余数的元组。对整数来说,它的返回值就是x/y取商的整数和x/y取余数的结果。例如:>>>divmod(10,4)(2,2)2.4.1常用内置函数3.map()函数内置函数map把一个可调用对象func函数依次映射到一个或多个可迭代对象的每个元素上,返回一个map对象,map对象属于迭代器类型,其中每个元素是原可迭代对象中元素经过func函数处理后的结果,不对原可迭代对象做任何修改。>>>list(map(str,range(5))) #把range对象中的每个元素通过str函数转换为字符串['0’,'1','2','3','4']>>>list(map(abs,range(10,-10,-2)))#把range对象中的每个元素通过abs函数求其绝对值[10,8,6,4,2,0,2,4,6,8]2.4.2常用模块函数Python的标准库包含很多模块,每个模块中定义了特定功能的函数,这些函数称为标准库函数。例如常用的math模块包含很多数学函数、random模块包含一些随机数函数等。在调用这些函数之前,先要导入相应的模块,导入有两种方法:方法一:导入:import模块名调用函数写:模块名.函数名方法二:导入:from模块名import函数名
调用函数写:函数名>>>importmath #导入math模块
>>>math.sqrt(2) #调用sqrt()函数
1.4142135623730951>>>frommathimportsqrt>>>sqrt(2)
1.41421356237309512.4.2常用模块函数在第二种方法中,为了避免每次都要导入具体的函数名称,也可以将函数名用“*”表示,表示导入该模块中的所有函数。>>>frommathimport*>>>sqrt(2)1.4142135623730951>>>sin(pi/2)1.0>>>log(1024,2)10.0使用这种方法书写简便,但要注意不同模块中可能有同名函数,需要注意函数名混淆的问题。2.4.2常用模块函数(math模块函数)(1)数学常量e:返回常数e(自然对数的底)。pi:返回圆周率π的值。>>>frommathimport*>>>e2.718281828459045>>>pi
3.1415926535897932.4.2常用模块函数(math模块函数)(2)绝对值和平方根函数fabs(x):返回x的绝对值(返回值为浮点数)。sqrt(x):返回x的平方根(x>=0)。>>>frommathimport*>>>fabs(-5)5.0>>>sqrt(100)
10.02.4.2常用模块函数(math模块函数)(3)幂函数和对数函数 pow(x,y):返回x的y次幂。exp(x):返回e(自然对数的底)的x次幂。log(x[,base]):返回x的以base为底的对数,base可省略,默认为e。>>>frommathimport*>>>log(e)1.0>>>log(100,10)#求100以10为底的对数2.0>>>log10(1000)#以10为底的对数3.0>>>pow(3,2)9.0>>>exp(2)#e的2次幂7.389056098930652.4.2常用模块函数(math模块函数)(4)取整和求余函数ceil(x):对x向上取整,返回比x大的最小整数。
floor(x):对x向下取整,返回比x小的最大整数。
fmod(x,y):返回求x/y的余数(返回值为浮点数),余数的符号与被除数相同。>>>frommathimport*>>>floor(5.8);floor(-5.8)5-6>>>ceil(4.1);ceil(-4.1)5-4>>>fmod(-7,3);fmod(7,-3)-1.01.02.4.2常用模块函数(math模块函数)(5)弧度角度转换函数 degrees(x):将弧度转换为角度。radians(x):将角度转换为弧度。 >>>frommathimport*>>>degrees(pi/2)90.0>>>radians(30)0.52359877559829882.4.2常用模块函数(math模块函数)(6)三角函数和反三角函数 sin(x):返回x(弧度)的正弦值。cos(x):返回x(弧度)的余弦值。 tan(x):返回x(弧度)的正切值。asin(x):返回x的反正弦值(弧度),如degrees(asin(1))返回90.0。 acos(x):返回x的反余弦值(弧度),如degrees(acos(-1))返回180.0。atan(x):返回x的反正切值(弧度),如degrees(atan(1))返回45.0。 2.4.2常用模块函数(math模块函数)>>>frommathimport*>>>sin(pi/2)1.0>>>cos(radians(30))0.8660254037844387>>>tan(radians(45))0.9999999999999999#极限接近1>>>asin(1)1.5707963267948966>>>degrees(asin(1))90.0>>>degrees(acos(0.866))30.002910931188026>>>degrees(atan(1))
45.02.4.2常用模块函数(cmath
模块函数)cmath模块函数跟math模块函数基本一致,cmath模块函数名和math模块函数名一样,只是math模块支持实数运算,cmath模块支持复数运算。>>>importcmath>>>cmath.sqrt(-1)1j>>>cmath.sqrt(3)(1.7320508075688772+0j)>>>cmath.sin(cmath.pi/2)(1+0j)>>>cmath.log10(100)(2+0j)>>>cmath.exp(2)(7.38905609893065+0j)>>>cmath.exp(2+3j)(-7.315110094901103+1.0427436562359045j)2.4.2常用模块函数(random模块函数)(1)choice(seq):从序列的元素中随机挑选一个元素。例如,choice([0,1,2,3,4,5,6,7,8,9]),从0~9中随机挑选一个整数。>>>importrandom>>>random.choice([0,1,2,3,4,5,6,7,8,9])4>>>random.choice(range(10))92.4.2常用模块函数(random模块函数)(2)sample(seq,k):从序列中随机挑选k个元素生成一个列表返回,并且k个元素不会重复。例如,random.sample(range(100),10),从0~100范围内随机抽取10个整数。>>>importrandom>>>random.sample(range(100),10)[15,85,65,24,67,97,61,49,88,9]>>>random.sample(range(100),1)>>>importrandom>>>a=[0,1,2,3,4,5,6,7,8,9]>>>random.shuffle(a)#列表a的顺序被打乱>>>a[0,2,6,3,1,8,7,4,5,9](3)shuffle(seq):将序列的所有元素随机排序2.4.2常用模块函数(random模块函数)(4)random():随机生成一个[0,1)范围内的实数,无参数。(5)uniform(a,b):随机生成一个[a,b]范围内的实数。>>>importrandom>>>random.random()0.47196873977079634>>>random.uniform(10,20)17.2145172328828622.4.2常用模块函数(random模块函数)(6)randrange(a,b,c):随机生成一个[a,b)范围内以c递增的整数,省略c时以1递增,省略a时初值为0。(7)randint(a,b):随机生成一个[a,b]范围内的整数,相当于randrange(a,b+1)。>>>random.randrange(10,20)11>>>random.randrange(20)9>>>random.randrange(10,20,3)19>>>random.randint(10,20)152.4.2常用模块函数(time模块函数)(1)time():返回当前时间的时间戳。时间戳是从Epoch(1970年1月1日00:00:00)开始到现在的秒数。(2)asctime([tupletime]):接收一个时间元组,并返回一个日期时间字符串。时间元组省略时,返回当前的系统日期和时间。例如:>>>importtime>>>time.asctime()'TueJan1620:22:092024'>>>fromtimeimport*>>>asctime(localtime())
'TueJan1620:23:072024'2.4.2常用模块函数(calendar模块函数)calendar(日历)模块里的函数均是与日历相关的功能。在默认情况下,星期一作为一周的第一天,星期日为最后一天。更改设置需要调用calendar、setfirstweekday()函数。(1)setfirstweekday(weekday):设置每个星期的开始工作日代码。weekday星期代码是0~6,代表的是从星期一~星期六。
(2)firstweekday():返回当前设置的每个星期开始工作日。默认是0,表示星期一是第一天。>>>fromcalendarimport*>>>firstweekday()#查看开始工作日0>>>setfirstweekday(6)#设置开始工作日是星期天>>>firstweekday()#查看开始工作日62.4.2常用模块函数(calendar模块函数)(3)isleap(year):year如果是闰年则返回True,否则为False。(4)leapdays(y1,y2):返回在[yl,y2)左闭右开范围内的闰年总数。>>>fromcalendarimport*>>>isleap(2024)True>>>leapdays(2000,2024)6(5)calendar(year):返回指定年份的日历。例如:>>>fromcalendarimport*>>>cal=calendar(2025)>>>print(cal)#输出2025年日历2.4.2常用模块函数(calendar模块函数)(6)month(year,month):返回指定年份和月份的日历。(7)monthcalendar(year,month):返回整数列表,每个子列表表示一个星期(从星期一到星期日)。>>>fromcalendarimport*>>>month(2024,2)'February2024\nSuMoTuWeThFrSa\n123\n45678910\n11121314151617\n18192021222324\n2526272829\n'>>>monthcalendar(2024,2)[[0,0,0,0,1,2,3],[4,5,6,7,8,9,10],[11,12,13,14,15,16,17],[18,19,20,21,22,23,24],[25,26,27,28,29,0,0]]2.4.2常用模块函数(calendar模块函数)(8)monthrange(year,month):返回两个整数,第一个数代表指定年月的第一天的星期代码,第二个数代表所指定月份的天数。(9)weekday(year,month,day):返回给定日期的星期代码。例如:>>>weekday(2019,10,1)>>>fromcalendarimport*>>>monthrange(2024,5)(2,31)#表示2024年5月第1天是星期三,该月有31天>>>weekday(2024,5,16)3#表示2024年5月16日是星期四Python自学资源:
(Python官网)
/(菜鸟教程)
/(Github软件托管)/wiki/1016959663602400(廖雪峰Python教程)Python程序设计12-8月-26第三章流程控制第3章程序流程控制本章学习目标掌握顺序结构程序设计及Python基础输入输出语句理解、认识并运用Python条件表达式掌握选择结构程序设计、可理解并运用选择的嵌套掌握选择循环程序设计、可理解并运用循环的嵌套使用三种基本程序流程控制方法进行综合程序设计目录1条件表达式顺序结构2
选择结构3循环结构4程序流程控制实例51顺序结构顺序结构是Python程序设计基本结构中最简单的一种,程序员只需按照处理顺序依次写出相应的语句即可。一个程序通常包括输入、处理和输出3个部分。输入语句和输出语句反映了程序运行中与用户的交互,而处理是指要进行的数据操作与运算,根据解决的问题不同而需要使用不同的语句来实现,其中最基本的数据处理语句是赋值语句。1顺序结构(输入语句)Python基本输入输出是指从键盘输入数据,输出则是到屏幕,也称为控制台输入输出。Python用内置函数input实现标准输入,其格式为:Input([输入提示字符串])注:[输入提示字符串]是可选项,如有则运行时在控制台原样显示,一般用于提示用户输入数据。1顺序结构(输入语句)input函数从标准输入设备(键盘)读取一行数据,并返回一个字符串(不包括最后的换行符)。1顺序结构(输入语句)input函数把输入的任何内容都作为字符串,如果要输入数值数据,可以使用类型转换函数将字符串转换为数值。1顺序结构(输入语句)除了显示提示给单个变量赋值以为,还可以使用input和eval函数嵌套,同时给多个变量赋值。1顺序结构(输出语句)基本的输出方法是用print函数,其调用格式为:print([输出项1,输出项2,…,输出项n][,sep=分隔符][,end=结束符])注:其中输出项之间以逗号分隔,没有输出项时输出一个空行。sep表示输出时各输出项之间的分隔符(默认以空格分隔),end表示结束符(默认以回车换行结束)。print函数从左至右求每一个输出项的值,并将各输出项的值依次显示在屏幕的同一行上。1顺序结构(输出语句)只要print函数确定了end结束符,则输出后不会换行,程序中后续输出会跟着一行输出。所以上面最后一条print函数如在程序中运行时,如后续还有输出语句,则输出会紧跟在#字符后。1顺序结构(顺序结构程序)
结合前面章节的数据类型、运算符和表达式等相关语句,可以按语句应该出现的前后顺序来编写顺序结构程序,程序会严格按语句的前后顺序依次执行的。目录1条件表达式顺序结构2
选择结构3循环结构4程序流程控制实例52条件表达式为了实现程序流程控制的多样化,Python程序允许根据具体条件(True和False)来有选择或是重复执行部分代码,这里的条件指通过关系运算和逻辑运算构成的条件表达式。在选择和循环结构中,条件表达式的值只要不是False、0、空列表、空字符串、空对象等,均认为与True等价。2条件表达式(关系运算及其表达式)Python的关系运算包括:小于<小于等于<=大于>大于等于>=等于==不等于!=关系运算符用于两个量的比较判断,关系运算的结果会根据比较结果具体取值True或False。与算数表达式类似,关系运算符和运算对象通过合理排列即形成的是关系表达式。2条件表达式(逻辑运算及其表达式)Python的逻辑运算包括:与and或or非not逻辑运算结果也是True或False。其中and和or是双目运算符,not是单目运算符,逻辑运算符中,not的优先级最高,其次是and、or。逻辑表达式是用逻辑运算符将逻辑量(可以是关系表达式、其它逻辑表达式)连接起来的式子。2条件表达式(其他条件表达式)成员运算符in主要判定某序列对象是否包含了特定成员,常用于在指定的序列中查找某个值是否存在,格式如下:<成员>in<序列对象><成员>notin<序列对象>身份运算符is和isnot也常用于程序中判定条件,是双目运算符,其格式为左右分别写一个变量,返回的是两个变量是否指向同一个对象。目录1条件表达式顺序结构2选择结构3循环结构4程序流程控制实例53.3选择结构根据条件表达式,Python即可通过计算得到的True或False来有选择的执行代码,从而形成不同的程序流程控制结构。选择结构也称为分支结构,是根据给定的条件表达式取值,来决定程序的执行流程,Python通过if语句来实现各种不同的选择结构。3.3选择结构(单分支选择结构)#输入两个整数,再按大小分别输出x1,x2=eval(input("请输入两个整数x1,x2:"))ifx1<x2:tmp=x2x2=x1x1=tmpprint("大数为:",x1,",小数为:",x2)3.3选择结构(双分支选择结构)#分别输入三角形边长,求三角形面积frommathimport*x,y,z=eval(input("输入三边长x,y,z:"))ifx+y>zandx+z>yandy+z>x:p=(x+y+z)/2s=sqrt(p*(p-x)*(p-y)*(p-z))print("三角形面积为:",s)else:print("输入数据作为三角形边长无法构成三角形,无法计算!")3.3选择结构(多分支选择结构)#输入两个数,比较并输出大小关系a,b=eval(input("请输入两个数a,b:"))ifx==y:print("两数相等!")elifx>y:print("较大数为:",x)else:print("较大数为:",y)3.3选择结构(选择结构的嵌套)#根据键盘输入的3个数,找出最大值a,b,c=eval(input("请输入三个数a,b,c:"))ifa>b:ifa>c:print("最大值为:",a)else:print("最大值为:",c)else:ifb<c:print("最大值为:",c)elseprint("最大值为:",b)目录1条件表达式顺序结构2选择结构3循环结构4程序流程控制实例54循环结构循环结构的基本思想是重复执行某些代码,其主要利用计算机运算速度快以及能进行逻辑控制的特点,来满足大量重复的程序功能需求。Python语言有两种语句用于循环结构的实现:while语句和for语句。4循环结构(while)#使用while循环计算1到100中所有整数的和。sum=0i=1whilei<=100:sum=sum+ii=i+1print("1到100的整数和为:"+sum)4循环结构(while)在while循环结构中,还可使用else子句,else中的语句会在循环正常执行完(条件表达式的值为False)的情况下执行。而循环非正常退出时(指在循环体内执行break语句强制退出),else语句则不会执行。#输入若干偶数,统计偶数个数并计算这个偶数个数。count=0sum=0number=int(input("输入一个正整数:"))whilenumber%2==0:count=count+1sum=number+sumnumber=int(input("输入一个正整数:"))else:print("输入的偶数个数为",count,",和为",sum)4循环结构(for)#使用for循环找出所有三位的水仙花数。fornumberinrange(100,1000):digit1=number//100digit2=(number//10)%10digit3=number%10ifdigit1**3+digit2**3+digit3**3==number:print("找到水仙花数:",number)else:print("循环正常结束,找到所有的水仙花数")4循环结构(break)在循环结构中,break语句可被用在循环体内,如break被执行,所在循环后续会立刻终止(包括循环的最后的else子句),即跳出所在循环体直接执行后续语句。#输入一个正整数,判断其是否为素数(break版本)t=int(input("请输入一个大于1的整数:"))foriinrange(2,t):ift%i==0:print(t,"不是素数")breakelse:print(t,"是素数")4循环结构(continue和pass)循环内如执行continue语句会结束本次循环,整个循环结构还不会退出。对于while,执行continue后会进行条件表达式判断,看是否进行下一轮循环;对于for,是先将序列对象的下个元素赋给变量后,根据情况决定是否继续循环。pass语句是一个空语句,执行不做任何操作,用于在某些场合下需要一个语句但实际却什么都不做的情况。4循环结构(循环的嵌套)#列出2-100间所有的素数。count=0foriinrange(2,101):j=2while(j<i):if(i%j==0):breakj=j+1else:count=count+1print("{:>5}".format(i),end="")ifcount%5==0:print("\n")目录1条件表达式顺序结构2选择结构3循环结构4程序流程控制实例55程序流程控制实例求一元二次方程ax2+bx+c=0的实数根。frommathimport*a,b,c=eval(input("输入方程的参数a,b,c:"))delta=b**2-4*a*cifdelta>0:x1=(-b+sqrt(delta))/(2*a)x2=(-b-sqrt(delta))/(2*a)print("方程有两个实根:{0},{1}".format(x1,x2))elifdelta==0:x=-b/(2*a)print("方程有一个实根:{0}".format(x))else:print("该方程无实根")5程序流程控制实例猜分数游戏,要求程序运行后会随机产生一个整数(1-100之间),给游戏者8次机会猜具体多少分,每次如猜错程序会提示所猜分数偏大或偏小,8次机会内游戏者如猜对则游戏通过。importrandomscore=random.randint(0,100)i=1while(i<=8):print("输入你猜的数,第",i,"次机会",end=":")num=int(input())if(num==score):Breakelif(num>score):print("猜的数大了!")else:print("猜的数小了!")i=i+1if(i<9):print("恭喜猜对了,分数的确是:",score)else:print("没有机会了,下次再来吧!")5程序流程控制实例打印乘法口诀表。显示任意两个个位数及其相乘的结果,一共9行,程序难点是如何设置循环。从规律上看,9行数据输出可以设计为一个循环,循环体执行一次输出一行,每行数据的显示又有规律可遵循,即可再设置内循环实现。i=1while(i<=9):j=1while(j<i):print(j,"*",i,"=","{:>2}".format(j*i),sep="",end=";")j=j+1print(j,"*",i,"=","{:>2}".format(j*i),sep="")i=i+1程序流程控制实验讲解程序运行录入某学生的姓名、专业、年龄以及语文、数学成绩,在使用输出语句在控制台显示出来。#使用标准化输入某大学生的个人信息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年幼儿园中班观察与表达练习
- 2026年金融风险管理专项训练题库
- 2026年河北省人教版小学英语上册第5单元阅读理解专项训练
- 2026年山西省初中物理力学计算与应用题
- 2026年河北省初中物理力学计算与应用题
- 2026年XX省小学英语三年级上册第4单元词汇专项练习
- 2026年普通话水平测试模拟试题
- 2026年山东省人教版初中语文上册第9单元文言文阅读理解习题集
- 2026年江苏省苏教版小学六年级数学上册第12单元期末测试卷
- 2026年江苏省人教版初中英语下册第4单元听力专项训练
- 信息技术必修一《数据与计算》第一章第一节《数据、信息与知识》教案
- 一《归园田居(其一)》公开课一等奖创新教案设计中职语文高教版(2023-2024)基础模块下册
- 雅马哈RX-V365使用说明书
- T-CRHA 046-2024 标准手术体位安置技术规范
- 草莓收购协议与草莓苗购销合同
- DZ∕T 0212.1-2020 矿产地质勘查规范 盐类 第1部分:总则(正式版)
- 《电力工程接地用导电防腐涂料技术条件》
- 2024年辽宁沈阳市沈河区残疾人工作专职干事招聘笔试冲刺题(带答案解析)
- 工业控制系统安全与实践 课件 第5、6章 工业控制系统漏洞检测技术、工业控制系统入侵检测与防护
- 意大利古罗马斗兽场课件
- 广东省珠海市九洲中学2024届数学七年级第二学期期末综合测试模拟试题含解析
评论
0/150
提交评论