Python程序设计基础(第2版)全套教学课件_第1页
Python程序设计基础(第2版)全套教学课件_第2页
Python程序设计基础(第2版)全套教学课件_第3页
Python程序设计基础(第2版)全套教学课件_第4页
Python程序设计基础(第2版)全套教学课件_第5页
已阅读5页,还剩560页未读 继续免费阅读

下载本文档

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

文档简介

Python程序设计基础全套可编辑PPT课件Python程序设计基础(第2版)第1章初识Python第2章Python语言基础第3章Python容器数据类型第4章程序控制结构第5章函数第6章文件第7章NumPy科学计算库第8章Pandas数据分析库第9章Matplotlib绘图库第10章财经数据可视化第11章Python金融分析应用第12章配套实验Python程序设计基础第1章初识Python第1章

初识Python

1.1Python语言概述1.2Python的开发优势1.3安装Python1.4

IDLE开发环境1.5

Anaconda开发环境1.6

JupyterNotebook介绍1.1Python语言概述Python语言是由荷兰人GuidovanRossum于1989年设计实现的高级程序设计语言。1991年发布Python版本0.9,后续于1994年、2000年和2008年相继发布了Python1.0、Python2.0和Python3.0等多个版本。截至2024.6月最新版本是3.12.3。官网/Python2.x和Python3.x不完全兼容。目前使用3.x,本书采用3.12版环境,实际使用3.10-3.12版均可。应用方向:数据分析、机器学习、人工智能、组件集成、网络服务、科学计算等众多领域。1.2Python的开发优势简单易学:摈弃复杂结构、简化语法,提供易用的数据类型,使得Python程序结构更简单、可阅读性更强。免费开源:开放源代码、免费。跨平台和可移植性:Python程序可在很多平台上运行,包括Windows、MacOS、iOS、Android及各种Linux/Unix系统。解释型:采用解释方式执行,非编译方式。Python语言特性:1.2Python的开发优势面向对象:支持过程式编程、面向对象编程和函数式编程(体现为lambda,map,filter等高阶函数)丰富的库:内建很多库,现已有40多万个项目(第三方库),扩展了Python的功能。官方库网站

/常用的python开发环境:python标准安装包自带的IDLEAnaconda中的spyder或jupyternotebook(本书使用)pycharm等第三方开发工具vscode中安装python插件亦可1.3安装Python安装:在官网/downloads下载安装程序,标准安装包大约30MB。最新版3.12.3,本课程使用3.10-3.12版均可。1.3安装Python安装Python:双击下载的Python安装包,进入Python安装向导进行安装,如下图所示:安装时可选"Customizeinstallation",建议:(1)选中上图"Addpython.exetoPATH"选项,(2)将安装目录修改为简短的C:\python312,便于后续命令行上的操作。1.4IDLE开发环境1.4.1PythonIDLE集成开发环境IDLE是python安装包自带的开发环境启动方式:选择Windows的“开始”菜单

“Python程序组”

“IDLE(Python3.12)”菜单项启动后,提示符为>>>,每行输入一条命令,按回车键即执行。1.4IDLE开发环境1.4.2Python程序编辑器1.新建程序文件:选择IDLE的“File”菜单

“NewFile”命令,或按快捷键“Ctrl+N”。(在IDLE中演示下面的操作)1.4IDLE开发环境2.保存程序文件:选择“File”菜单

“SaveFile”命令或者按快捷键“Ctrl+S”将程序代码保存为Python文件,文件的扩展名为“.py”。3.打开程序文件:选择“File”菜单

“OpenFile”命令,或者按快捷键“Ctrl+O”。4.语法高亮:在PythonIDLE中注释用红色显示,函数用紫色显示,字符串显示为绿色。1.4IDLE开发环境5.自动完成:输入命令单词的开头部分,IDLE可自动补全。选择“Edit”菜单

“ShowCompletions”命令,或按快捷键Tab实现自动补全。(a)IDLE命令窗口(b)Python程序编辑器窗口1.4IDLE开发环境1.4.3Python程序书写规范Python源程序的书写规范主要体现在语句的格式、语句块与缩进、注释等方面。1.语句:原则上要求Python程序一行只写一条语句。如果非要在一行内写多条语句,那么必须用分号";"隔开不同语句。如果一条语句过长,可使用“\”字符分割成多行书写。#程序示例x=input('输入x:')x=int(x)#转换为整数ifx>=0:print('>=0')else:print('<0')1.4IDLE开发环境例:多条语句写在同一行a=10;b=20;c=30例:一条语句占多行,用“\”做续行符content='在Python源程序中\如果一行内写多条语句,\语句间用分号(;)隔开。\如果一条语句过长,可以使用反斜杠符\实现多行书写。'1.4IDLE开发环境2.语句块与缩进:语句块是指多个语句构成的复合语句,它是程序中完成相对复杂功能且逻辑独立的语句组合体。Python程序中的语句块相对上级语句必须采用缩进(语句前面插入空格)格式。a=20b=10ifa>b:#此处必须有冒号c=a#三条下级语句都要缩进,且缩进一致a=bb=cprint(a,b)1.4IDLE开发环境代码的缩进非常重要,需要注意以下几点:语句块相对上级语句(if/for/while/def等)应缩进;用空格实现缩进(或按Tab键自动转为4个空格);缩进是分级别的,同一级别缩进必须对齐,否则会导致语法错误。a=20b=10ifa>b:

c=a#错误,未缩进a=bb=c#错误,缩进不一致1.4IDLE开发环境3.注释:注释用于描述程序或语句的功能,目的是增强程序的可读性。执行程序时会忽略所有注释。Python的注释分单行注释和多行注释两种。单行注释:以字符“#”开始至该行结束为止。多行注释:使用3个引号(单引号或双引号)作为注释的开始和结束标记。#-*-coding:utf-8-*-单行注释"""多行注释CreatedonMonMay1315:09:152019@author:"""print('Hello,Python!')#输出Hello,Python!1.4IDLE开发环境1.4.4Python程序的运行1.Python程序的运行原理Python程序运行原理解释器将.py源代码解释为字节码(中间码),然后由虚拟机执行,与java的运行原理类似。1.4IDLE开发环境2.Python程序的运行方式运行方式有交互方式和文件方式两种。(1)交互方式:在shell对话窗口中执行单条语句1.4IDLE开发环境(2)程序文件运行方式:编写程序(.py)运行#FirstPython.py

print('Hello,Python!')x=10print(x)1.5Anaconda开发环境1.5.1Python软件包管理工具Python得以广泛应用的主要原因就在于有众多的第三方软件包扩展其功能。PyPI(PythonPackageIndex/)是Python官方的第三方包集合。这些包可通过pip工具下载安装,pip工具在python标准安装包中已包含。1.5Anaconda开发环境(1)查看已安装的Python软件包运行cmd,进入Windows命令提示符窗口,输入命令piplist(2)查看可升级的Python软件包在命令提示符窗口中输入命令piplist--outdated1.5Anaconda开发环境(3)安装Python软件包在命令提示符窗口中输入命令pipinstall软件包名

pipinstall软件包名==版本号安装指定版本号的包例如要安装numpy包,则pipinstallnumpy有时访问国外软件仓库网速慢易出错,可用下面的清华镜像,快且稳定pipinstall-i/simplenumpy(4)更新升级Python软件包在命令提示符窗口中输入命令pipinstall

--upgrade软件包名(5)卸载Python软件包在命令提示符窗口中输入命令

pipuninstall

软件包名1.5Anaconda开发环境1.5.2Anaconda软件包Anaconda是一个免费的集成Python软件平台,包含了常用的AnacondaPrompt窗口、IPython工具、Spyder开发环境和JupyterNotebook开发环境等。本课程推荐使用其中的Spyder和JupyterNotebook。Anaconda官网:历史版本下载:

/archive/1.5Anaconda开发环境Anaconda程序安装用户可自行修改安装路径。注意:用户名为中文的用户应修改默认的目录路径,确保安装路径中不含中文。路径中含有中文可能导致JupyterNotebook使用时报错。在后续窗口中建议勾选上图的“AddAnaconda3tomyPath”选项,便于以后在命令行使用Python和JupyterNotebook。1.5Anaconda开发环境1.5.3Anaconda

Prompt窗口1.AnacondaPrompt窗口的启动该窗口为用户设置好了各种Anaconda环境变量,便于在命令行上使用各种命令。选择“Anaconda3程序组”

“AnacondaPrompt”命令。重要提示:用户机器中允许共存多个python环境,如使用pip为anaconda环境安装新软件包,请进入anacondaprompt窗口操作,不要进入Windows的cmd窗口操作,这样可保证软件包安装在anaconda中。1.5Anaconda开发环境2.Anaconda软件包管理:在AnacondaPrompt窗口中可使用conda工具对Python软件包进行安装、更新和删除等操作,也可用pip方式安装。命令描述condalist显示当前环境下的所有Python包condainstallpackagename安装名为packagename的包condasearchpackagename搜索packagename包condaupdatepackagename更新packagename包condaremovepackagename删除packagename包1.5Anaconda开发环境3.Anaconda环境管理:在AnacondaPrompt窗口中可使用conda实现虚拟环境管理。不同环境可安装不同版本的python(如2.x和3.x)和软件包,以适应不同的软件需求,虚拟环境之间互不影响。默认具有base环境。(1)创建虚拟环境condacreate-nenv_namepython=versionpackage_names#创建一个名为python37的python

3.7环境例condacreate-npython37python=3.7(2)查看Python的虚拟环境condaenvlist1.5Anaconda开发环境(3)切换虚拟环境condaactivateenv_name例condaactivatepython37(4)退出虚拟环境,退出后默认进入base环境condadeactivate(5)删除虚拟环境condaenvremove-nenv_name例condaenvremove-npython371.5Anaconda开发环境1.5.4IPython开发工具IPython是增强shell,比IDLE好用。推荐使用Spyder中的IPython。1.IPython交互式命令窗口的启动方法1:启动AnacondaPrompt窗口,在窗口中输入“ipython”命令启动。方法2:选择“Anaconda3程序组”

“Spyder”命令,Spyder中内含Ipython。1.5Anaconda开发环境Spyder环境集成了IPython开发工具,在窗口的“控制台窗口区”提供了IPython交互命令窗格。1.5Anaconda开发环境PythonIDLE以“>>>”作为输入提示符,IPython采用“In[序号]:”提示符表示代码输入位置,“Out[序号]:”提示符表示执行结果的输出位置。本书后续省略序号,只以In和Out表示输入和输出。2.IPython简单使用(1)Tab键自动补全在IPython命令窗口中输入代码时按下Tab键,系统会自动列出与当前输入的字符串匹配的内容1.5Anaconda开发环境(2)历史记录功能使用“history”命令(或hist)查看历史输入内容格式描述history输出命令的历史记录history-n序号输出指定序号的命令记录history-g字符串搜索内容In[1]:a=20In[2]:b=10In[3]:a+bOut[3]:30In[4]:history #显示所有历史输入a=20b=10a+bhistory1.5Anaconda开发环境(3)自省在IPython中可使用符号“?”查看系统已有的命令、变量或函数的相关信息,这种功能被称为自省。例:使用“?”获取变量的信息In[1]:a=10In[2]:a?Type:intStringform:10Docstring:int([x])->integer

使用dir()和help()也可以显示内建的帮助信息In:dir(a)In:help(a)1.5Anaconda开发环境(4)直接调用操作系统的命令可用“!操作系统命令”的形式直接调用操作系统的命令。#调用Windows系统的dir命令显示当前目录中的文件,此处不是Python的dirIn:!dir#创建目录mywork,md是Windows创建目录的命令In:!mdmywork#!pip直接在Ipython中安装包,不用先进入操作系统命令行界面,方便用户操作In:!pipinstalljieba1.5Anaconda开发环境(5)magic命令IPython将任何首字母为%的行视为magic命令,提供了更多的扩展管理功能。命令描述%quickref

显示IPython的快速参考%magic显示所有魔术命令的详细文档%history打开命令的输入(可选输出)历史%reset删除当前命名空间中的全部变量、名称%run源程序文件执行Python源程序%prunstatement通过cProfile执行statement,并打印分析器的输出结果%timestatement报告statement的执行时间%timeitstatement多次执行statement以计算其平均执行时间,适合测试执行时间非常短的代码%who、%who_ls、whos显示命名空间中定义的变量前导符%默认也可以省略。这些命令只能在Ipython中使用,不要写入.py的普通python程序中。1.5Anaconda开发环境【例】magic命令的使用1.使用%run运行Python程序文件In:%rund:\pythonspace\FirstPython.pyHello,Python!102.使用%timeit测试运行时间In:%timeitlist(range(100)) #测试list(range(100))的运行时间914ns±6.09nsperloop(mean±std.dev.of7runs,1000000loopseach)1.5Anaconda开发环境1.5.5Spyder集成开发环境Spyder是一个用于科学计算的Python集成开发环境。它结合了集成开发工具的高级编辑、分析、调试功能,以及数据探索、交互执行和数据可视化功能,为用户带来了很大的便利。Spyder集成开发环境窗口主要包含程序编辑区、控制台窗格区、帮助、变量和文件浏览区等。1.5Anaconda开发环境1.新建程序文件启动Spyder集成开发环境窗口后,在程序编辑区默认打开的程序文件为“temp.py”。如果要新建一个程序文件,有下列方法:方法1:选择菜单栏的File

Newfile命令;方法2:单击工具栏中的“新建文件”按钮;2.打开程序文件步骤1:选择菜单栏的File

Open命令,或单击工具栏中的“打开文件”按钮,或按快捷键“Ctrl+O”键,弹出“打开文件”对话框。步骤2:在对话框中选择需要打开的程序文件后单击“打开”按钮。1.5Anaconda开发环境3.编辑程序文件在程序编辑区可以按照1.4.3节介绍的程序书写规范对源程序进行编辑。a=[10,80,20,5,6]print('排序前:',a)a.sort()#排序print('排序后:',a)4.运行程序文件选择Run

Run菜单命令,或单击工具栏的“执行文件”按钮

,或按快捷键F5键。1.6JupyterNotebook介绍JupyterNotebook是一款基于网页的python编程平台,在网页的单元格中可编写和运行代码,运行结果显示在单元格下方。其最突出的优点就是将代码、输出结果和笔记(图片、数学公式、图形等)存于同一文件中(扩展名.ipynb),便于查阅和重现程序结果。1.6.1

安装与启动JupyterNotebookanaconda中已包含Notebook,可直接在程序组中启动。启动后自动弹出服务器终端窗口(见教材图1.22,此窗口不能关闭),同时浏览器将自动启动JupyterNotebook主页(见下图)。1.6JupyterNotebook介绍如果是从"开始"菜单项启动Jupyter,则工作目录默认为Windows个人目录,例如用户Administrator的个人目录为C:\Users\Administrator。用户可先将.ipynb文件复制到此目录,或用Upload按钮加载到该目录中。选择上图的“New/Python3(ipykernel)"将创建一个新文件。1.6JupyterNotebook介绍另一种启动方式是先进入AnacondaPrompt窗口,切换到要操作的.ipynb文件所在的目录,然后在命令行输入jupyternotebook启动。如下命令启动后将把D:\mywork作为工作目录,浏览器中将显示该目录的文件。(base)C:\Users\admin>d:(base)D:\>cdmywork(base)D:\mywork>jupyternotebook1.6JupyterNotebook介绍1.6.2

程序的编辑与运行Notebook网页中的单元格分两类:代码格和Markdown标记格。代码格中存放可运行的Python代码,Markdown标记格存放标记文本,这些文本可设置格式,例如标题、上标、颜色等,见下页示图。格式设置方法详见本书配套的“Jupyter配置.ipynb”文档。

工作模式分为:命令模式和编辑模式。例如,单击单元格左侧边栏(或按Esc键)将进入命令模式。按A键在当前单元格前面插入新单元格;按B键在后面插入新单元格;连按两次D键删除当前单元格。更多快捷键参见Help菜单下的"KeyboardShortcuts"。如果在单元格上单击或按回车键则进入编辑模式,可修改其内容。单击工具栏上的"运行"按钮将执行单元格代码,并在下方显示结果。按Shift+Enter键也可执行,执行后光标移到下一单元格;按Ctrl+Enter键执行单元格且保持光标不变。1.6JupyterNotebook介绍图1.25第4章配套的.ipynb代码截图Python程序设计基础ThankYou!Python程序设计基础第2章Python语言基础第2章Python语言基础2.1基本数据类型2.2变量2.3运算符与表达式2.4输入与输出2.5内置函数2.6常用模块2.1基本数据类型2.1.1数值型计算机处理数据时需要用合适的数据类型存储数据。Python中的数值类型有如下三类:整型(int):用int表示整数类型,python的整型不限大小。例如x=2**1000(2的1000次方)浮点型(float):即数学中的实数,浮点类型用float表示。

例如y=1.5复数型(complex):复数是由实数部分和虚数部分构成的数,表示为x+yj,其中x是实数部分(实部),y是虚数部分(虚部),j为虚数单位。例如z=1+2j;p=-1jPython中变量不用事先定义,在赋值的同时系统会根据值的类型决定变量的类型。2.1基本数据类型使用复数类型时需注意:(1)虚部单位必须用j或者J表示,和数学中惯例用i表示虚部不同;(2)虚部不能单独存在(p=-j错误,可写为p=-1j)。x=10 #整型y=3.14 #浮点型z=1+2j #复数型type(x),type(y),type(z) #用type()函数测试变量的数据类型Out:(int,float,complex)#分别为整型、浮点型、复数型2.1基本数据类型2.1.2逻辑型布尔型(bool)也称逻辑型,用于表示逻辑真假值。逻辑值在程序中用于条件判断,它只有“真”和“假”两个取值。“真”用True表示,“假”用False表示。x=10;x>5#结果为Truey=False#注意大小写,不能写为falsetype(y)#bool型y+1#结果为1逻辑型也被视为整型的子类,True和False对应整数1和0。因此“False+1”是合法的计算,结果为1。Python中0或空集(空列表、空元组等)对应的逻辑值都是False.2.1基本数据类型2.1.3字符串Python采用字符串表示和存储文本。字符串用成对的单引号(')、双引号(")或者三引号('''或""")界定,其中单引号和双引号用于单行文本,三引号通常用作界定多行文本。例:下面都是内容为"Python程序设计"的字符串。'Python程序设计' #单引号定界符Out:'Python程序设计'

"Python程序设计" #双引号定界符Out:'Python程序设计'"I'mastudent" #双引号中可包含单引号'单引号中也可包含"双引号'2.1基本数据类型1.转义字符:一些有特殊含义且难以用一般方式表达的字符,例如回车符、换行符等。“\特殊字符”表达转义。转义字符描述\(行尾)续行符\\反斜杠符号\'单引号\"双引号\a响铃\b退格(Backspace)\000空\n换行\v纵向制表符\t横向制表符\r回车\f换页\0yy八进制数,yy代表八进制数,例如\012表示十进制的10\xyy十六进制数,yy代表十六进制数,例如\x1a表示十进制的26print('a\tb\tc\t\nxyz')#\t制表符,\n换行符。输出如下:2.1基本数据类型2.多行字符串Python使用三引号作多行字符串的界定符,也可在字符串的行尾用续行符(\)来实现多行字符串。例:包含了3行的字符串In:'''Python

程序

设计'''Out:'Python\n程序\n设计'例:续行符'\'实现的多行字符串In:'Python\

程序\

设计'Out:'Python程序设计'2.1基本数据类型3.字符串格式化

字符串格式化将数据按某种格式要求(如长度、类型等)转为字符串。主要有“%”、“format”和“f-string”三种转换方法。x=3.457;y=10 'x=%.2fy=%d'%(x,y) #%格式,旧格式,不推荐使用Out:'x=3.46y=10''x={:.2f}y={}'.format(x,y) #format格式Out:'x=3.46y=10'f'x={x:.2f}y={y}' #f-string格式,推荐使用Out:'x=3.46y=10'2.1基本数据类型(1)%格式(旧格式,不推荐使用)%充当占位符,用后面的实际数据替换前面的%格式为:%[flag][width][.precision]typeflag:对齐方式,可省略,默认右对齐,'-'左对齐width:字符串宽度,可省略;.precision:数值型数据保留的小数位数,可省略;type:格式类型符,不可省略,详见下表'%5d'%2 #指定5位宽,d整数类型,默认右对齐Out:'2' #前面补4个空格,共5位字符宽'%-5d'%2 #'-'左对齐Out:'2' #后面补4个空格'%05d'%2 #右对齐且前面补0Out:'00002'2.1基本数据类型%的格式符type

%c格式化字符及其ASCII码

%s格式化字符串

%d格式化整数%o格式化无符号八进制数%x格式化无符号十六进制数%X格式化无符号十六进制数(大写)%f小数,可指定小数点后的精度%e用科学计数法格式表示%g根据值的大小决定使用%f或%e【例】使用%格式化字符串'%-10d%d'%(12,34.56)#此行有两个数据,要括起来Out:'1234' #第0个数据左对齐(10位宽),第1个数据%d取整

'%f'%3.14 #浮点数格式Out:'3.140000'

'%6.2f'%3.1415927#指定宽度为6,小数部分2位Out:'3.14'2.1基本数据类型(2)format格式'{}'充当占位符,用后面的实际数据替换。格式为:'{:格式字符串}'.format(参数)格式字符串:可省略,冒号开头,格式符和%的格式符类似参数:匹配替换的内容r=4.5s='r={},area={:.2f}'.format(r,3.14*r*r)#{}中不能有多余的空格print(s)Out:'r=4.5,area=63.59'2.1基本数据类型{}格式符的语法为:

[fill][align][sign][width][,][.precision][type]fill:填充的字符,可省略,默认为空格;align:对齐方式,^、<、>分别是居中、左对齐、右对齐,可省略,默认右对齐;sign:设置数值型数据前的符号,+表示在正数前加正号,可省略;width:设置格式化后的字符串宽度,可省略;逗号(,):为数字添加千位分隔符,可省略;.precision:数值型数据保留的小数位数,可省略;type:设置格式化类型,可省略#*填充字符,>右对齐,6宽度,.2小数位,f浮点数格式

'{:*>6.2f}'.format(3.1415926)Out:'**3.14'2.1基本数据类型format()的格式化类型符

明b格式化二进制数c格式化字符及其ASCII码s格式化字符串d格式化整数o格式化无符号八进制数x格式化无符号十六进制数X格式化无符号十六进制数(大写)f格式化浮点数,可指定小数点后的精度e用科学计数法表示g根据值的大小决定使用f或e%浮点数按百分比格式输出2.1基本数据类型【例】使用format格式化字符串,注意序号匹配#长度为10,使用二进制数值,内容居中对齐'{:^10b}'.format(12)Out:'1100'#第0个数用百分比,第1个数用科学计算法,均保留2位小数'{0:.2%}和{1:.2e}'.format(0.1234,123456)Out:'12.34%和1.23e+05'x=3.1415926'pi={0:.0f}pi2={0:.2f}pi4={0:.4f}'.format(x)#x对应3个{}Out:'pi=3pi2=3.14pi4=3.1416''name={1}age={0}'.format(20,'john')Out:'name=johnage=20'2.1基本数据类型(3)f-string格式(推荐使用)在格式字符串前加上f前缀,{}内可包含:变量、表达式、函数、格式符等,{}内的表达式可计算。name='Python程序设计'price=50.0f'书名:{name},单价:{price}' #{}内可直接用变量名Out:'书名:Python程序设计,单价:50.0'f'两本书价格{price*2}'#f格式串支持{}内的运算Out:'两本书价格100.0'#将数值12格式化为长度为10的二进制数值,^居中对齐f'{12:^10b}'Out:'1100'2.2变量2.1.1关键字(keyword)和标识符1.关键字:也称保留字,是程序语言中被赋予特定含义的一些单词,不能用于自定义的变量名。andasassertasyncawaitbreakclasscontinuedefdelelifelseexceptFalsefinallyforfromglobalifimportinislambdaNonenonlocalnotorpassraisereturnTruetrywhilewithyield

使用help()函数查看Python关键字:help('keywords')if=5#错误,if是关键字,不能用于定义变量

print=5#语法上可行,print不是关键字,但最好不要这样定义,因为会覆盖原有的输出函数print2.2变量2.标识符:表示变量、函数、类、模块及对象的名字。标识符需要满足如下规定:(1)标识符可以包含字母、数字及下划线(_),但必须以非数字字符开始;(2)标识符区分大小写,长度没有限制;(3)保留关键字不能用作标识符。下面是Python中合法的标识符:student、_num、a1、姓名下面是非法标识符:2count、a-b、for、myname、high@2.2变量2.2.2变量用标识符命名的存储单元称为变量,变量用于存储数据,通过标识符可获取变量的值。赋值语句格式为:

变量名=表达式值

In:age=18In:ageOut:18

In:age=20 #变量值发生改变In:print(age)20注意:在IPython交互窗口中,只输入变量名或print(变量名)均可显示变量内容,但在.py源程序中如需输出,必须用print(变量名)。【例】变量赋值及改变变量的值2.2变量【例】改变变量的数据类型In:age=18In:type(age)#初始是整型Out:intIn:age='18岁' #变量的数据类型改变In:print(age)18岁In:type(age)#字符串类型Out:str【例】变量在使用前需要先赋值In:num1=10In:num2=num1#num1必须先有值,才能赋值给num2同时给多个变量赋值,可写为a,b,c=10,20,30交换两个变量的值,可写为a,b=b,a2.3运算符与表达式2.3.1运算符按运算功能区分,运算符有下面几类:算术运算符:-(求负)、+、-、*、/、//、%、**关系运算符:==、!=、>、>=、<、<=逻辑运算符:not、and、or赋值运算符:=、+=、-=、*=、/=、%=、**=、//=位运算符:&、|、^、~、<<、>>成员运算符:in、notin身份运算符:is、isnot2.3运算符与表达式1.算术运算符运算符功能示例-求负数运算-a+加运算a+b-减运算a-b*乘运算a*b/除运算a/b//整除运算a//b%求余(取模)运算a%b**幂(指数)运算a**b2.3运算符与表达式【例】算术运算符的应用In:x=13;y=4

In:-xOut:-13

In:x+yOut:17

In:x*yOut:52

In:x/yOut:3.25

In:365//7 #整除运算,计算一年有多少个星期Out:52

In:365%7 #求余运算Out:1

In:x**y #幂(指数)运算,等同于pow(x,y)Out:285612.3运算符与表达式2.关系运算符关系运算符用于比较两个值的大小,运算结果为逻辑型的值True或False。运算符功能示例==等于a==b!=不等于a!=b>

大于a>b>=大于等于a>=b<

小于a<b<=小于等于a<=b关系运算符示例x=2;y=3

x==yOut:False

x!=yOut:True

x>yOut:False

x<=yOut:True2.3运算符与表达式3.逻辑运算符逻辑运算是操作数和运算结果都是逻辑值的运算。运算符功能示例not逻辑非notxand逻辑与xandyor逻辑或xory逻辑非:真变假,假变真逻辑与:x和y必须都为真,结果才为真逻辑或:x或y有一个为真,结果就为真关系运算符示例x=Truey=False

notxOut:False

notyOut:True

xandyOut:False

xoryOut:True2.3运算符与表达式4.赋值运算符赋值运算符"=","="前再加上其他运算符构成扩展赋值运算符。例如a+=5等价于a=a+5。Python没有++运算符。运算符功能示例=赋值b=a+=加法赋值运算符b+=a等效于b=b+a-=减法赋值运算符b-=a等效于b=b-a*=乘法赋值运算符b*=a等效于b=b*a/=除法赋值运算符b/=a等效于b=b/a//=整除赋值运算符b//=a等效于b=b//a%=求余赋值运算符b%=a等效于b=b%a赋值运算符示例(1)“+=”运算符a,b=10,20b+=abOut:30(2)“*=”运算符a,b=10,20b*=abOut:2002.3运算符与表达式5.位运算符

位运算符是将操作数视为二进制数并按位进行运算,多用于外部设备控制或需要按位处理的情况(例如图像处理)。运算符功能示例~按位取反运算符~a&按位与运算符a&b|按位或运算符a|b^按位异或运算符a^b>>

右移位运算符a>>b<<

左移位运算符a<<bpython使用位运算符较少,此处不举例介绍了。2.3运算符与表达式6.成员运算符成员运算符(in)用于测试某个变量是否为某个容器对象中的数据成员,返回True或False。这里的容器主要指字符串、列表、元组或集合等。运算符功能示例in包含于ainbnotin不包含anotinb'P'in'Python' #True'x'in'Python' #Falsein[2,3,4] #True2notin[2,3,4] #False2.3运算符与表达式7.身份运算符身份运算符是判定两个变量所指向的存储区域是否相同的运算符,可用于辅助理解python的变量管理机制。运算符功能示例is等同aisbisnot不等同aisnotbx=300y=300print(x==y)#输出Trueprint(id(x),id(y))#输出两个不同的内存地址,id()返回内存地址print(xisy)#输出False,说明x和y的内存地址不同

2.3运算符与表达式【例】身份运算符的应用(1)“is”运算符a=[1,2]b=a id(a),id(b) #a,b指向同一内存区域Out:(2465754443592,2465754443592)aisb #a,b等同,结果为TrueOut:Truec=a.copy() #通过a.copy(),a和c指向不同的内存区域aiscOut:False #a,c不等同,结果为False(2)“isnot”运算符aisnotcOut:True2.3运算符与表达式2.3.2表达式表达式是将各种数据(包括值、变量和函数)通过运算符连接起来的式子,执行指定的运算并返回结果,如"a+b"和"x>y"等。表达式运算时按照运算符的优先级顺序从高到低进行。算术运算符优先级高于关系运算符,关系运算符优先级高于逻辑运算符,逻辑运算符优先级高于赋值运算符。2.3运算符与表达式表2.13运算符优先级(从高到低)运算符描述**指数(最高优先级)~,-按位翻转,求负数*,/,%,//乘、除、取模和整除+,-加法、减法>>,<<右移、左移运算符&按位与运算符^,|按位异或、或运算符<=,<,>,>=比较运算符==,!=等于、不等于运算符=,+=,%=,-=,*=,/=,//=,**=赋值运算符is,isnot身份运算符in,notin成员运算符not逻辑非运算符and逻辑与运算符or逻辑或运算符lambdaLambda表达式2.3运算符与表达式2.3.3数据类型转换1.自动转换表达式运算时,如数据类型不一致,Python会检查表达式操作数是否可以转换成需要的类型,如果可以,则将操作数转换成需要的类型并运算,这种类型转换称为自动转换。5+2 #都为整数,无需转换5+2.1#会将5视为5.0,自动转换为小数5+'2.1'#报错,不能自动转换,应写为5+float('2.1')2.3运算符与表达式在数值型数据类型中,自动转换的规则是:(1)整型数据可以自动在数据后面加上“.0”转换成浮点型数据。5+2.1#5.0+2.1(2)非复数数据可以自动在数据后面加上“0j”转换成复数。5+(2+3j)#视为(5+0j)+(2+3j)2.显式转换Python中,整型可自动转浮点型,但反过来不行。如需将浮点型转成整型,需使用转换函数,这种转换称为显式转换。例5+int(2.1)#int()转为整型2.3运算符与表达式表2.14python常用类型转换函数函数格式描述int(x[,base])将字符串和其他数值类型的数据转换成整型float(x)将字符串和其他数值类型转换成浮点数complex(real,imag)转复数,real是字符串或数字;image只能为数字,默认为0str(x)将数值转为字符串repr(x)返回一个对象的字符串格式eval(str)将str转换成表达式,返回表达式的运算结果tuple(seq)将seq转为元组,seq可为列表、集合或字典list(seq)将序列转变成一个列表,s可为元组、字典set(seq)将一个可迭代对象转变为集合chr(x)返回整数x对应的unicode字符ord(ch)返回字符ch对应的ASCII码或Unicode码hex(x)把整数x转为十六进制字符串oct(x)把整数x转为八进制字符串2.3运算符与表达式【例】数据类型转换的例子(1)int转换函数int(12.6),int('12'),int('12',base=16)#按16进制转换Out:(12,12,18)ord('A') #将字符'A'转换为ASCII编码Out:65(2)转换成复数a=1;b=2.3complex(a,b)Out:(1+2.3j)(3)字符串转换为数值eval('1.2+3.5')Out:4.7float('3.5')int('3.5')#报错,int不能转小数字符串2.4输入与输出2.4.1输入函数input()在Python中,内置函数input()用来获取用户输入的数据,输入的数据都视为字符串。input的语法格式如下:变量=input(<prompt>)<prompt>:字符串,用于提示用户输入的文本内容例如age=input('输入年龄:')

典型错误age=input#漏了小括号注:python的输入语句和c语言的输入语句差别很大scanf("%d",&i)//C语言的输入语句2.4输入与输出【例】从键盘输入数据In:num=input('请输入一个数值:')

请输入一个数值:10

Out:'10'#num为字符串'10'num+20 #将报错,字符串不能和整数直接相加TypeError:canonlyconcatenatestr(not"int")tostr#将字符串转为整数再执行算术运算,也可写为eval(num)+20int(num)+20 Out:30#补充:一次输入多个变量的方法x,y,z=eval(input('请输入三个数(逗号分隔):'))请输入三个数(逗号分隔):1,2,3执行后x=1,y=2,z=32.4输入与输出2.4.2输出函数print()内置函数print()用于输出显示,格式为:print(<expr>[,<expr>,…][,sep=<string>][,end=<string>])<expr>:输出内容的表达式,可省略;sep:分隔符,可省略,默认为空格;end:末尾输出内容,默认是换行符\n;例

print(1,2,3)#输出时,多个数据默认空格隔开

print(1,2,3,sep='+')#输出时,数据用+隔开print(99,end='');print(100,end='')#输出时end=''表示不换行2.5内置函数在计算机程序中,函数是用于实现某一特定功能的代码集合。函数通常实现较为单一的功能,可多次调用,提高了代码的复用性。函数调用时一定要有括号。x=abs(-10)#abs绝对值函数y=

pow(2,10)+x#pow幂函数Python提供了很多内置函数,这些内置函数自动加载,可直接使用。用下面的命令可查看有哪些内置函数:dir(__builtin__)#此处前后都是两个下画线2.5内置函数2.5.1数学运算函数表2.15常用数学运算函数函数名功能abs(x)返回x的绝对值divmod(x,y)返回一个(x//y,x%y)的元组,即x除以y的整除商和余数max(seq)返回seq序列中的最大值min(seq)返回seq序列中的最小值pow(x,y)返回x的y次方round(x,precison)返回浮点数x的四舍五入值sum(seq)返回seq序列元素的和2.5内置函数【例】数学运算函数的应用abs(-1.2) #绝对值Out:1.2

divmod(16,5) #返回整除的商和余数Out:(3,1)

x=max(2,-1,8,3) #最大值Out:8

y=min(2,-1,8,3) #最小值Out:-1

pow(2,3) #次方函数Out:8

round(3.14159) #默认取整Out:3

round(3.14159,3) #四舍五入,保留3位小数Out:3.142sum([1,2,3,4,5]) #求和Out:152.5内置函数2.5.2字符串处理函数字符串是一种常用的数据类型,Python提供了对字符串进行大小写转换、查找替换、统计、对齐及拆分合并的函数。

表2.16字符串对象s常用的转换函数函数名功能s.capitalize()字符串首字母大写,其余字母小写s.lower()字符串中所有字母都小写s.upper()字符串中所有字母都大写s.swapcase()字符串中所有字母大小写互换s.title()字符串中每个单词的首字母大写,其余字母小写s='pYthonjava's.capitalize()#首字母大写,Pythonjava

s.lower()#转小写,python

javas=s.upper()#转大写,PYTHON

JAVA注:这些函数都不直接改变s,而是返回新字符串。2.5内置函数表2.17字符串对象s的搜索替换函数函数名功能s.find(substr,[start,[end]])返回字符串中第一次出现substr的位置,如果字符串中没有substr,则返回-1s.index(substr,[start,[end]])与函数find()相同,但是字符串中没有substr时,返回一个运行时错误s.replace(oldstr,newstr,[count])将字符串中oldstr字符替换为newstr字符,count为替换次数s.rfind(substr,[start,[end]])返回从右侧算起,字符串中第一次出现substr的位置,如果字符串中没有substr,则返回-1s.rindex(substr,[start,[end]])与rfind()相同,字符串中没有substr时,返回一个运行时错误2.5内置函数【例】字符串搜索替换函数的应用s='Hello,Python!'s.find('o')Out:4

#'o'在第4个位置s.find('o',6) #从第6个位置开始查找Out:10

s.index('th')Out:8

s.index('abc')#index未找到时将报错,find未找到时返回-1ValueError:substringnotfound

'Hello,Python!'.replace('Python','Java')Out:'Hello,Java!'

'Hello,Python!'.rfind('o')#从右侧向左侧查找Out:10

2.5内置函数

表2.18字符串对象s常用的统计函数函数名功能s.count(substr,[start,[end]])返回substr在字符串中出现次数。统计范围从字符串的start开始到end结束len(s)返回字符串s的长度(注:不要写为s.len())s='字符串函数用于处理各种字符串's.count('字符串')#2len(s)#142.5内置函数【例】字符串统计函数的应用'Hello,Python!'.count('o') #统计'o'的次数Out:2'Hello,Python!'.count('o',0,8) #在[0,8)位置统计'o'的次数Out:1'abab'.count('o') #统计'o'的次数,不出现则返回0Out:0 len('Hello,Python!') #字符串长度Out:13 s='eggEgghamhamEGGeGG's.count('egg')#1个s.lower().count('egg')#4个2.5内置函数

表2.19字符串对象s的判断函数函数名功能s.startswith(substr)判断字符串是否以substr开头,是则返回True,否则返回Falses.endswith(substr)判断是否以substr结尾,是则返回True,否则返回Falses.isalnum()判断是否完全由字母或数字组成,是则返回True,否则返回Falses.isalpha()判断是否只由字母组成,是则返回True,否则返回Falses.isdigit()判断是否只包含数字,是则返回True,否则返回Falses.islower()判断是否全是小写字母,是则返回True,否则返回Falses.isnumeric()是否只含0-9或罗马数字或中文数字,是则返回True,否则返回Falses.isspace()只含空格'

',制表\t,分页\f,换行\n符,是则返回True,否则返回Falses.isupper()判断是否全是大写字母,是则返回True,否则返回False2.5内置函数【例】字符串判断函数的应用'Hello,Python'.startswith('Python') #判断开头Out:False'cat.jpg'.endswith(('.jpg','.bmp','.png')) #判断结尾Out:True

'Python3'.isalnum() #是否全由字母和数字构成Out:True'123'.isdigit() #全为数字Out:True'123ⅥⅩ一二'.isnumeric()#ⅥⅩ罗马数字,'一二'中文数字均支持Out:True

2.5内置函数【例】字符串判断函数的应用'hello,python!'.islower()#是否全部小写Out:True'Hello,Python!'.isupper()#是否全部大写Out:False'Hello,Python!'.isspace()#是否全部是空格/制表键/回车符等空白字符Out:False'\t\f\n'.isspace()#空格''、制表符\t、分页符\f、换行符\n均是空白符Out:True2.5内置函数

表2.20字符串对象s的拆分合并函数函数名功能s.join(seq)将seq中所有元素以指定的字符串s连接起来s.split(sep,[num])以sep为分隔符(默认空格)拆分字符串,返回列表,num为拆分次数s='Iamastudent'lst=s.split() #默认以空格为分隔符print(lst)print(f'单词数={len(lst)}')2.5内置函数【例】字符串拆分合并函数的应用lst=['Hello','Python','Java']','.join(lst)Out:'Hello,Python,Java''+'.join(['a','b','c','d','e'])Out:'a+b+c+d+e'

#默认以空格为分隔符拆分字符串,返回列表lst='Pythonisaprograminglanguage'.split() Out:['Python','is','a','programing','language']s='1,2,3,4's.split(',') #此处必须指定以逗号为分隔符Out:['1','2','3','4']2.5内置函数

表2.21字符串对象s的对齐函数函数名功能s.center(width[,fillchar])返回长度为width的字符串,原串居中对齐,长度不足部分以fillchar填充,默认空格填充s.ljust(width[,fillchar])返回长度为width的字符串,原串左对齐,长度不足部分以fillchar填充,默认空格填充s.rjust(width[,fillchar])返回长度为width的字符串,原串右对齐,长度不足部分以fillchar填充,默认空格填充s.zfill(width)返回长度为width的字符串,原串右对齐,长度不足前面填充02.5内置函数【例】字符串对齐函数的应用'Python'.center(10,'*') #居中对齐Out:'**Python**'

'Python'.ljust(10) #左对齐Out:'Python'

'2'.zfill(3)

#填充0Out:'002'#输出金字塔forxinrange(1,13,2):s='*'*xprint(s.center(21))2.5内置函数2.5.3其他函数Python还提供了包括help()、dir()、type()和id()等内置函数,用于查询对象或方法的相关信息。

表2.22其他函数函数名功能dir([object])无object时,返回当前范围内的变量、方法和定义的类型列表;带object时,返回object的属性、方法列表。help([object])返回object(模块、类型、对象、方法、属性)的帮助信息id(object)返回object对象的唯一标识符(内存地址)type(object)返回object对象的数据类型dir('abc') #显示字符串的各种方法importmathdir(math) #显示math库内的函数2.5内置函数【例】dir()、help()、type()和id()函数的应用(1)dir()函数dir([1,2,3]) #[1,2,3]

温馨提示

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

评论

0/150

提交评论