Python数据分析与数据挖掘 课件 第1-3章 Python概述、Python基础语法、函数_第1页
Python数据分析与数据挖掘 课件 第1-3章 Python概述、Python基础语法、函数_第2页
Python数据分析与数据挖掘 课件 第1-3章 Python概述、Python基础语法、函数_第3页
Python数据分析与数据挖掘 课件 第1-3章 Python概述、Python基础语法、函数_第4页
Python数据分析与数据挖掘 课件 第1-3章 Python概述、Python基础语法、函数_第5页
已阅读5页,还剩156页未读 继续免费阅读

下载本文档

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

文档简介

第1章Python概述主讲人:***15-10月-23Python数据分析与数据挖掘目录contentsPython简介&特点和应用领域0102Python开发环境的搭建03Python运行原理及编写规范Python简介&特点和应用领域011.1Python简介姓名Python出生地荷兰国家数学和计算机科学研究所成长地Python社区出生年月1989.12偶像ABC语言业界称号胶水语言父亲GuidoVanRossum老师C语言信念让用户感觉更好免费开源:方便地阅读它的源代码、对源代码进行改进与应用简单易用:像阅读英语一样读懂代码提供了丰富的库:提供了广泛的标准库和许多其他高质量的库规范的代码风格:《PythonEnhancementProposal#8》代码风格指南运行效率高:底层以及标准库等均是C编写的;避开了编译、链接等障碍1.2

python特点和应用领域易于移植、部署:支持所有的主流操作系统,并且部署方便可扩展、可嵌入:C或者C++进行扩展、嵌入1.2

python特点和应用领域目前Python主要应用于Web开发、数据分析、机器学习、编写网络爬虫进行数据采集、系统管理等领域,Web开发和数据分析是使用Python语言最常见的方式。Python开发环境的搭建021.3.1Python下载下载Python的安装版本/downloads/查看Python的最新源码,二进制文档

/Python文档下载/doc/1.3Python开发环境搭建Unix&Linux平台安装Python打开Web浏览器访问/downloads/source/选择Unix/Linux的源码压缩包下载及解压压缩包如果你需要自定义一些选项可修改Modules/Setup执行./configure脚本makemakeinstall注意:Python会安装在/usr/local/bin目录中Python库安装在/usr/local/lib/pythonXX,XX为你使用的Python的版本号1234561.3.2Python安装Windows平台安装Python打开Web浏览器访问/downloads/windows/在下载列表中选择Windows平台安装包,包格式为:python-XYZ.msi文件Windows系统必须支持MicrosoftInstaller2.0搭配使用保存安装文件到本地计算机后运行,检查机器是否支持MSI下载后,双击下载包,进入Python安装向导,只需要使用默认的设置一直单击“下一步”按钮,直到安装完成即可12341.3.2Python安装3最流行的Python/R的开源数据科学平台,提供了在Linux、Windows和MacOSX系统上使用Python的最简单的方式。Anaconda包含了Python,并使用Conda来管理库、依赖项和环境,同时集成了多个科学包及其依赖项。Anaconda工具包下载安装数据分析包:Dask、NumPy、pandas、Numba等机器学习包:scikit-learn数据可视化包:Matplotlib、Bokeh、Datashader、Holoviews等下载地址:

/download/#windows1.4Anaconda的下载安装1.5.1Jupyter使用1.5Anaconda中的Python开发环境是什么:JupyterNotebook是一个开源的Web应用程序,是一个集说明性文字、数学公式、代码和可视化图表于一体的网页版交互式Python语言运行环境。怎么用:Anaconda菜单--单击“JupyterNotebook”菜单项--启动JupyterNotebook。(启动后默认浏览器将会自动打开,显示Jupyter的工作状态)选择Upload,实现已有文件的上传(后缀为.ipynb)

选择New,实现新建特定类型的文件进行编辑和运行用途:数据清洗和转换、数值模拟、统计建模、数据可视化、机器学习实例化:选择新建Python3--打开一个新的浏览器窗口,在其中按Cell输入代码,并在Cell菜单中选择相应的项或单击

运行。1.5.2Spyder使用1.5Anaconda中的Python开发环境是什么:Spyder是Python(x,y)的作者开发的一个跨平台的集成开发环境。和其他的Python开发环境相比,它最大的优点就是模仿MATLAB的“工作空间”的功能,可以很方便地观察和修改数组的值。1.5.2Spyder的使用1.5Anaconda中的Python开发环境代码区Variableexplorer窗口IPythonconsoleIPythonconsole

窗口代码区,编写后,可选择Run菜单中的相应菜单项运行。如运行整个文件,可单击Run菜单项或按下F5如只运行部分代码,可选中要执行的代码后单击Runcell或按下Ctrl+回车。1.5.2Spyder的使用Variableexplorer窗口,观察当前程序中的变量情况,包括变量的名字、类型、大小和取值情况。在某个变量名上双击,可以打开窗口查看该变量的详细情况。1.5.2Spyder的使用右下侧的是IPythonconsole,显示代码的运行结果。我们也可以在IPythonconsole输入语句,直接运行观察结果1.5.2Spyder的使用1.5.3使用conda管理包1.5Anaconda中的Python开发环境查看已安装包安装包卸载和更新包查看已经安装的包:condalist安装新的包:condainstallpackage_name可以同时安装多个包:例:condainstallnumpyscipypandas还可以添加版本号:例:condainstall

numpy

=

1.10卸载包:condaremovepackage_name查看某个具体包的安装情况:condalistpackage_name更新包:condaupdatepackage_name更新环境中所有包:condaupdate–all1.5.4第三包管理的例子1.5Anaconda中的Python开发环境Scikit-learn包的安装和测试Scikit-learn官网地址:Anaconda中默认已经安装了Scikit-learn工具包,我们测试是否正确安装。1.6使用百度AIStudio云计算编程环境百度AIStudio(ArtificialIntelligenceStudio,人工智能平台)是集成了大数据和人工智能的云计算平台。该平台集合了AI教程、代码环境、算法算力和数据集,为开发者提供了免费的在线云计算编程环境,用户不需要再进行环境配置和依赖包等繁琐步骤,可以随时随地上线AIStudio开展深度学习项目。123登录AIStudio平台平台的网址为:创建项目启动并运行项目1.6使用百度AIStudio云计算编程环境Python运行原理及编写规范03解释器将程序代码编译为字节码,字节码在Python虚拟机程序里对应的是PyCodeObject对象,而字节码在磁盘上是以后缀为.pyc文件的形式存在,默认放置在Python安装目录的_pycache_文件夹下。由开发人员编写程序代码,也就是编码阶段,此时产生的文件是以.py为后缀的。解释器将编译好的字节码载入一个Python虚拟机中,由虚拟机一条一条执行字节码指令,进而完成程序的运行。1.7Python的运行原理

Python的代码块不使用大括号{}或者begin…end来控制类、函数以及其他逻辑判断,而是使用代码缩进和冒号来分隔代码块。Python接受空格和制表符作为缩进,但是需要注意的是空格和制表符不能混用。缩进的数量是可变的,但要求所有的代码块语句须包含相同的缩进量,一般使用一个制表符或者四个空格来表示特定的代码块。当采用了不合理的代码缩进时,会出现错误。1.8Python的编写规范行和缩进

Python语句中一般以新行作为语句的结束符。但是我们可以使用斜杠“\”或者括号:[]、{}、()将一行的语句分为多行显示。1.8Python编写规范多行语句

Python中引号(‘)、双引号(“)、三引号(’‘’或”“”)都可以用来表示字符串,需要注意的是引号的开始与结束必须的相同类型的。

一般情况下,单引号和双引号的效果是一样的,但在字符串中包含单引号的时候,使用双引号可以省略转义字符,更有利于避免错误、提高可阅读性。同理,如果字符串中包含双引号,则使用单引号会使代码看起来更加简化。1.8Python编写规范Python引号

三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串。

三引号还起到了换行的作用。同时,三引号还有一个特别的作用,就是在文件的特定地点,可以起到注释的作用。1.8Python编写规范Python引号Python中使用“#”来进行单行注释。1.8Python编写规范Python注释Python中使用三引号来进行多行注释,其中三个单引号(’’’)和三个双引号(”””)的作用是一样的。第一章Python概述谢谢!Python数据分析与数据挖掘第2章Python基础语法主讲人:***15-10月-23Python数据分析与数据挖掘目录contents标识符与变量0102输入与输出03Python数据结构04运算符与表达式程序的流程控制052.1标识符与变量012.1.1

Python标识符Python中的标识符可以由英文、数字以及下划线(_)组成,但不能以数字开头。Python中的标识符是区分大小写的。以下划线开头的标识符有特殊意义:以单下划线开头的(如_test)代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用fromxxximport*的形式导入;以双下划线开头的(如__test)代表类的私有成员;以双下划线开头和结尾的(如__test__)代表Python里特殊方法专用的标识,如__init__()代表类的构造函数。2.1.2

Python关键字关键字是在Python内部已经使用的标识符,这些关键字不能用作常数或变数,或任何其他标识符名称。可以使用如下语句查看Python中的关键字。[例2-1]查看Python中的关键字。2.1.3变量与赋值Python的变量一般不需要声明,可以根据赋值给变量的数据来自动确定变量的类型,然后分配相应的存储空间。

定义一个变量,就是向内存申请一个带地址的访问空间对象,用来存储数据,可以通过变量名找到(指向)这个值。内存中变量主要包括变量的标识、名称和数据这些信息。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。等号(=)用来给变量赋值。等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。2.2输入与输出022.2.1数据输入Python中从键盘输入数据可以使用input()函数,该函数的返回值是字符串。语法:变量名=input(“输入提示信息字符串”)功能:从标准输入读取一行,并以字符串形式返回,去掉结尾的换行符。[例2-2]input函数输入数据

Input函数[例2-3]input函数外使用类型转换函数

2.2.1数据输入Python可以使用eval函数接收多个数据输入,字符串数据输入时要带上引号,间隔符必须是逗号。语法:eval(expression[,globals[,locals]])功能:eval()函数用来执行一个字符串表达式,并返回表达式的值。[例2-4]eval函数输入数据

eval函数2.2.1数据输入input()函数会把所有输入值(包括数字)视为字符串。若a=input(),输入数字123后,用type(a)输出a的类型,将显示为<class'str'>

eval()函数将会去掉字符串最外层的引号,将其解释为一个变量。

若b=eval(input()),输入数字123后,用type(b)输出b的类型,将显示为<class'int'>,即整型。input函数和eval函数区别2.2.2数据输出

Python中最常用的数据输出方式就是使用print()函数,与相关格式化函数组合使用,如:使用(%)或str.format()函数来格式化输出值;用repr()或str()函数将输出的值转成字符串。语法:print(*objects,sep='',end='\n',file=sys.stdout,flush=False)功能:把objects中每个对象都转化为字符串的形式,然后写到file参数指定的文件中,默认是标准输出(sys.stdout)。每一个对象之间用sep所指的参数进行分隔,默认是空格。所有对象都写到文件后,会写入end参数所指字符,默认是换行。2.2.2数据输出格式:%[(name)][flags][width].[precision]typecode[例2-5]字符串百分号(%)格式化输出

字符串%格式输出常见格式化对照说明输出类型格式说明整数输出%o按oct八进制输出整数%d按dec十进制输出整数%x按hex十六进制输出整数浮点数输出%f保留小数点后面六位有效数字%.nf,保留n位小数位%e保留小数点后面六位有效数字,指数形式输出%.3e,保留3位小数位,使用科学计数法%g在保证六位有效数字的前提下,使用小数方式,否则使用科学计数法,%.3g,保留3位有效数字,使用小数或科学计数法字符串输出%s字符串输出%10s右对齐,占位符10位%-10s左对齐,占位符10位%.2s截取2位字符串%10.2s10位占位符,截取两位字符串2.2.2数据输出Format()函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号‘{}’作为特殊字符代替‘%’格式:[[fill]align][sign][#][0][width][,][.precision][type][例2-6]按位置访问参数输出实例。

format函数格式化输出[例2-8]对齐文本并指定宽度输出实例。[例2-7]按名称访问参数输出实例[例2-9]编写程序,输入三个分数,计算并输出平均分,输出结果保留2位小数。2.2.3输入和输出实践例题2.2.3输入和输出实践例题[例2-10]编写程序,将华氏温度转成摄氏温度,换算公式:C=(H-32)*5.0/9,其中C是摄氏温度,H是华氏温度。[例2-11]打印99乘法表,并按左下三角格式输出。2.2.3输入和输出实践例题2.3Python数据结构032.3.1标量-基本数据类型Python使用对象模型来存储数据,每一个数据类型都有一个相对应的内置类,新建一个数据,实际就是在初始化并生成一个对象。基本数据类型主要包括:整型(int):可以是正整数或负整数,无小数点、无大小限制。整数类型包括:十进制整数、二进制整数(以0b开头)、八进制整数(以0o开头)及十六进制整数(以0x开头)。浮点型(float):由整数部分和小数部分组成,也可以使用科学计数法表示。布尔型(bool):运算结果是True和False常量,这两个常量的值仍然是1和0,可以和数值型数据进行运算。复数(complex):由实数部分和虚数部分构成,可以用a+bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。

[例2-12]数值数据类型及转换测试。

2.3.2序列类型序列类型包括列表、元组和字符串,这些类型有相同的访问模式,包括:可以通过下标位移量来访问序列中的元素,可以通过切片的方式一次性得到列表中多个元素。序列的常用操作符(注意优先级顺序从高到低)方法说明Seq[index]返回序列中下标为index的元素Seq[in1:in2]返回序列中下标从in1到in2之间的元素集合Seq[i:j:k]按间隔k,返回序列中下标从i到j之间的元素集合Seq*n序列重复n次Seq1+Seq2两个序列连接elementinseq判断元素是否在序列中elementnotinseq判断元素是否不在序列中s.index(x[,

i[,

j]])x在s中首次出现的索引(或在索引i处或之后,在索引j之前)seq.count(x)返回x在序列中出现的次数2.3.2序列类型序列类型的类型转换函数可以用来在列表、元组和字符串几种序列类型间进行转换。表2-3序列类型转换函数

函数说明list(iter)把可迭代对象转换为列表tuple(obj)把一个可迭代对象转换为元组对象str(obj)把obj对象转换为字符串对象其他常用序列类型函数:len()、max()、min()、sorted(),请自行练习。

2.3.2序列类型1、创建:用方括号括起所有元素,并且元素之间用逗号分隔。一对空的方括号表示空列表。列表2、截取:使用方括号([])的切片,其中,列表使用从前往后从0开始的正向索引或从-1开始的从后往前的逆向索引来标注元素的位置列表的数据项可以进行修改或更新:使用del语句来删除列表的元素。列表运算符“+”用于合并列表,“*”用于重复列表。[例2-14]列表的截取。[例2-13]列表的创建

2.3.2序列类型3、列表方法列表方法说明list.append(x)添加元素x到列表末尾list.extend(iter)将另一个列表添加到列表的末尾list.insert(i,x)在下标为i的元素之前加入一个元素list.remove(x)从列表里删除第一个值为x的元素list.pop([i])删除列表中给定位置的项,然后将其返回。如果没有指定索引,a.pop()将删除并返回列表中的最后一项list.clear()从列表中删除所有元素list.count(x)返回x出现在列表中的次数list.sort(key=None,reverse=False)对原列表中的项目进行排序list.reverse()反转列表元素list.copy()返回列表的shadow副本。相当于a[:]3.1序列类型列表4、解析:对列表中的每个元素应用一个函数进行计算,从而将一个列表映射为另一个列表,称为列表解析。列表解析的基本语法格式如下:[<表达式>for<变量>in<列表>][<表达式>for<变量>in<列表>if<条件>][例2-16]列表实例,注意以下两种写法等价:[例2-17]列表的解析

2.3.2序列类型元组是元素的有序序列,与列表类似不同之处在于元组中的元素值不能修改。元组的创建很简单,只需要在括号中添加元素,并使用逗号隔开即可,元组中没有append,extend和insert等方法。元组的内置函数包括len,max,min,tuple等。[例2-18]元组的创建及访问。元组2.3.2序列类型Python中的字符串是一个有序字符的集合,用于表示和存储文本信息。字符串可以使用单引号(')、双引号(")或三引号(''')来创建。其中,三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。Python中,可以使用‘+’、“*”等运算符对字符串进行连接及重复等运算。Python提供了丰富的字符串内建函数,可以对字符串实现查找、检测、大小写转换等功能。字符串[例2-19]字符串创建。[例2-20]字符串的运算符。字符串常用的字符串运算符2.3.2序列类型常用的字符串内建函数字符串[例2-21]字符串的内建函数。2.3.3映射类型-字典字典是Python中一种非常有用的映射类型,可以存储任意类型对象。字典中的每个数据称作项,项由键/值对组成,每个键/值对(key=>value)用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如下所示:dict={key1:value1,key2:value2}常见操作:访问字典中的值增加新的键/值对修改或删除已有键/值对删除字典元素检测字典中是否存在键

[例2-22]字典实例

2.3.4集合类型Python中的集合(set)是不重复元素的无序集合。常用功能:成员关系测试,消除重复元素,科学计算,如并、交、差、对称差等。分类:可变集合(set)、不可变集合(frozenset)可变集合:可以添加和删除元素不可变集合:不允许添加和删除元素[例2-23]集合实例

2.3.5数据结构实践例题[例2-24]列表实例,用列表判断输入的字符串是不是回文。[例2-25]

集合实例,用0-10间的随机数生成一个长度为20的列表,统计其中各个数出现的频率。[例2-26]列表实例,从键盘输入一个单词sdel,将字符串sall中与sdel相同的单词都删除。[例2-27]字符串实例,恺撒密码,也称移位密码,是最简单和最广为人知的加密技术之一。它是一种替换密码,其中明文中的每一个字母都被一个字母替换,这个字母在字母表中的位置是固定的。例如,如果右移2,a将被c替换,b将变为d,依此类推,如图2.2所示。这种方法是以凯撒大帝的名字命名的,他在私人信件中使用了这种方法。[例2-28]字典实例,统计data目录下文件ci.txt中保存的歌曲“Myheartwillgoon”中的词频,将词频排在前10的单词输出。运算符与表达式042.4运算符与表达式赋值运算符:=(简单的赋值运算符),+=(加法赋值运算符),-=(减法赋值运算符),*=(乘法赋值运算符),/=(除法赋值运算符),%=(取模赋值运算符),**=(幂赋值运算符),//=(取整除赋值运算符)等。算术运算符:+(加),-(减)

,*(乘),/(除),%(取模,返回除法的余数),**(幂,返回x的y次幂),//(取整除,向下取接近除数的整数)等。比较运算符:==(等于,比较对象是否相等),!= (不等于,比较两个对象是否不相等),>(大于,返回x是否大于y),< (小于,返回x是否小于y),>=(大于等于,返回x是否大于等于y),<=(小于等于,返回x是否小于等于y)。逻辑运算符:and(与),or(或)和not(非)。Python中的运算符包括:赋值运算符、算术运算符、比较(关系)运算符、逻辑运算符、位运算符、成员运算符等。

表达式是将不同类型的数据(常量、变量、函数)用运算符按照一定的规则连接起来的式子。2.4运算符与表达式实例[例2-29]算术运算符实例,计算圆锥体的体积和表面积。[例2-30]逻辑运算符实例,闰年判断。2.4运算符与表达式实例流程控制052.5.1顺序结构顺序结构是流程控制中最简单的一种结构,该结构的特点是按照语句的先后次序依次执行,每条语句只执行一次。[例2-31]计算椭球的表面积和体积。[例2-32]绘制正方形。1、if-else条件语句if条件:

条件为真时要执行的语句块else:

条件为假时要执行的语句块2、if-elif-else判断语句if条件1:

条件1为真时执行的语句块1elif条件2:

条件1为假且条件2为真时执行的语句块2elif条件n:

条件1至条件n-1全部为假且条件n为真时执行的语句块nelse:

上述条件都不满足时执行的语句块n+14、switch语句的替代方案定义一个字典调用字典的get()获取相应的表达式。3、if语句的嵌套if条件1: if条件2:

条件1为真且条件2为真时执行的语句块1 else:

条件1为真且条件2为假时执行的语句块2else:条件1为假时执行的语句块32.5.2选择结构2.5.2选择结构实例[例2-33]从用户输入的三个数中输出最大的数。[例2-34]猜数字游戏。2.5.2选择结构实例[例2-35]成绩等级换算[例2-36]身体质量指数BMI计算,计算方法如图2.3所示。2.5.2选择结构实例[例2-37]判断三角形的类型。[例2-38]判断驾驶员酒醉驾。2.5.2选择结构[例2-39]简单的计算器。[例2-40]阿拉伯数字转换。2.5.3循环结构循环是指在满足一定条件的情况下,重复执行一组语句的结构,其中重复执行的语句称作循环体。循环结构设计三要素如下:初始化语句:循环控制变量赋初值或其他循环中用到的变量的初始化。循环条件:循环结构继续执行的条件,是一个结果为True或False的表达式。迭代语句:通常是循环控制变量的改变,且朝着循环结束条件的方向变化,从而使得循环可以正常结束。2.5.3循环结构语法格式: [初始化语句] while(循环条件):

语句块

[迭代语句][例2-41]自然数求和。While循环[例2-42]判断计算结果。2.5.3循环结构for语句的基本形式:for<变量>in<序列>:循环体语句块其中,序列可以是等差数列、字符串、列表、元组或者是一个文件对象。for循环[例2-43]计算分数之和。[例2-44]计算1-2+3-4+……+999-1000之和。2.5.3循环结构break语句:中途从循环结构中退出。continue语句:跳过循环体中未执行的语句,返回到循环体的头部继续执行新一轮的循环。Break&continue[例2-45]用户登录模拟[例2-46]计算最大公约数和最小公倍数。2.5.3循环结构Python支持在循环语句中关联else语句。如果else语句和for循环语句一起使用,else块只在for循环正常终止时执行(而不是遇到break语句),如果else语句用在while循环中,当条件变为False时,则执行else语句。[例2-47]判断素数。循环中的else语句2.5.3循环结构循环结构的循环体内可以包含任意Python语句,因此也可以包含另外的循环结构,称为嵌套循环。特点:最外层的循环称为外循环,所包含的循环称为内循环;内循环必须完全包含在外循环中;外循环和内循环的控制变量不能相同;在嵌套循环结构中,嵌套的层数可以是任意的。嵌套循环[例2-48]输出三位的水仙花数,它的每个位上的数字的3次幂之和等于它本身(例如:1^3+5^3+3^3=153)2.5.3循环结构在循环结构中,for或while语句之后必须紧跟至少包含一条语句的缩进语句块,然而有些情况下需要一个没有循环体语句块的循环结构,这种情况可以使用pass语句,pass语句是一个“什么也不做”的占位符语句。[例2-49]选择与循环结构实例,判断10以内的素数。Pass语句本章实践例题062.6本章实践例题[例2-50]用循环实现猜拳游戏。2.6本章实践例题[例2-51]用循环实现猜数字游戏。2.6本章实践例题[例2-52]用循环和条件判断实现评分过程模拟。2.6本章实践例题[例2-53]用输入、输出、循环及条件判断语句实现身份证信息检索。小结077小结本章主要介绍了Python的基础语法,包括标识符于变量、输入和输出、Python数据结构、运算符与表达式、Python中的流程控制语句等。重点介绍了Python中的标量(Scaler)、序列(Sequence)和映射(Mapping)三种数据结构,并结合多个实践例题讲解了多种数据结构的应用方法。通过本单元学习,可以掌握Python中的顺序、选择及循环结构的程序设计。本章习题082.8本章习题1.编写程序,输入球的半径r,输出球的表面积和体积(结果保留三位小数)。提示:球的表面积计算公式为:4πr2,球的体积计算公式为:4/3πr3。1.编写程序,输入球的半径r,输出球的表面积和体积(结果保留三位小数)。提示:球的表面积计算公式为:4πr2,球的体积计算公式为:4/3πr3。2.用户输入一个三位自然数,计算并输出其百位、十位和个位上的数字。3.已知列表li=['apple','banana','cherry','grape','orange'],请依次完成以下操作:(1)计算列表长度并输出;(2)修改列表第2个位置的元素为“peach”,并输出修改后的列表;(3)删除列表中的第2至4个元素,并输出列表;(4)列表中追加元素“strawberry”,并输出列表;(5)在列表的第1个位置插入元素“pear”,并输出添加后的列表;(6)将列表所有的元素反转,并输出反转后的列表;(7)使用for、len、range输出列表的索引;(8)使用enumrate输出列表元素和序号(序号从100开始)。2.8本章习题4.任意输入三个英文单词,按字典顺序输出。5.输出100-200内的所有素数。6.字符个数统计,统计给定字符串中的字符个数并输出。7.由数字1,2,3,4能组成多少个互不相同且无重复数字的三位数?请输出这些数字?8.输入一个字符串,分别统计其中字符、空格、数字、其他字符出现的次数,请用字典结构实现?第二章Python基础语法谢谢!Python数据分析与数据挖掘第3章函数主讲人:***15-10月-23Python数据分析与数据挖掘目录contents函数概述0102函数的定义03参数传递04函数参数设置匿名函数0506递归函数3.1函数概述013.1.1模块和包Python程序是由函数(Function)、模块(Module)和包(Package)组成。其中,模块是处理某一类问题的变量、函数和类的集合,包是由一系列模块组成的集合。模块是一个Python文件,以.py结尾,模块中能定义函数、类和变量,模块里也能包含可执行的代码,运用模块能够有逻辑地组织Python代码段。常用的模块导入方式:importmodule1(模块名)frommodule1import*(*表示导入该模块中所有函数及变量等)frommodule1importname1(表示导入模块中的一个指定的部分)包是一个分层次的文件目录结构,它定义了一个由模块及子包和子包下的子包等组成的Python的应用环境。简单来说,包就是文件夹,但该文件夹下必须存在__init__.py文件,该文件的内容可以为空。__init__.py用于标识当前文件夹是一个包。3.1.1模块和包3.1.2函数如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数。函数是Python为了代码效率的最大化,减少冗余而提供的最基本的程序结构。函数是一段代码,通过名字来进行调用,它能将一些数据(参数)传递进去进行处理,然后返回一些数据(返回值),也可以没有返回值。3.2函数的定义023.2函数的定义函数定义的格式:def函数名():

函数体注意:函数定义后,如果不经调用,函数将不会被执行Python中自定义函数创建的方法如下,使用关键字def定义函数,其后紧接函数名,括号内包含了将要在函数体中使用的形式参数(简称:形参,调用函数时的为实参;函数可以有参数,也可以没有,但必须保留括号),以冒号结束。然后另起一行编写函数体,函数体的缩进为4个空格或者一个制表符。[例3-1]函数的定义举例。3.2函数的定义[例3-2]用函数实现fabonaci序列。3.2函数的定义3.3参数传递03Python中函数参数的传递,可以分为实参为不可变对象的传递和实参为可变对象的传递。字符串、元组、数值等类型是不可更改的对象,而列表和字典等则是可以修改的对象。若实参为不可变对象时,即使函数体中修改了形参,实参的值在函数调用返回时仍然保持不变;如果函数调用时,参数为可变对象的传递,若函数体中修改了形参,则实参的值会随之发生改变。3.3.1实参变量指向不可变变量实参变量可以指向不可变的对象,如整型。不可变对象是指对象所指向的内存中的值不能被改变,当改变这个变量的时候,原来指向的内存中的值不变,变量不再指向原来的值,而是开辟一块新的内存,变量指向新的内存。[例3-3]实参变量指向不可变对象实例。3.3.1实参变量指向不可变对象分析:在Python中,类型属于对象,变量是没有类型的,变量只是指向了对象。本例函数调用时,在参数传递后,实参变量x和形参变量a都指向对象3(整型)。在函数change()内,对a赋新值4,即a+1后,由于不可变对象的值不能变化,所以为4分配新的内存单元,同时使a指向这个对象。函数调用返回时,由于变量x和a指向了不同的对象,而x所指向的不可变对象内存地址一直没变,所以输出的x的值也不变。实参变量可以指向可变对象,如列表。可变对象是指对象的值可以改变,当更改这个变量的时候,还是指向原来的内存地址,只是在原来的内存地址进行值的修改,并没有开辟新的内存。3.3.2实参变量指向可变变量[例3-4]实参变量指向可变对象实例。3.3.2实参变量指向可变变量分析:本例函数调用时,在参数传递后,实参变量x和形参变量a都指向同一个列表(list)对象[1,2]。由于列表对象本身是可以改变的,因此在change函数里,向列表中加入一个元素,不会重新创建对象,而是直接在原对象中添加了新的元素。调用结束后,变量x和a仍然指向同一对象,改变a指向对象的值也就改变了x的指向对象的值。3.4函数参数设置043.4.1函数参数类型Python中的函数参数主要有以下四种:位置参数:调用函数时,根据函数定义的参数位置来传递参数,实参的个数和顺序必须和形参保持一致,否则会抛出异常。默认参数:在定义函数时,为部分形参设置了默认值,调用函数时可传或不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用)。关键字参数:函数调用时,可以通过“键-值”形式指定参数,即传参时把定义函数时的参数名和对应的值一起传入函数中,此时可不考虑传入参数的顺序。可变参数:主要包括任意数量的可变位置参数和任意数量的关键字可变参数,*args参数传入时存储在元组中,**kwargs参数传入时存储在字典内。。[例3-5]没有参数的函数。3.4.1函数参数类型注意:__name__可以获取函数的名称,__doc__可以获取函数的注释信息。[例3-6]用带位置参数的函数,判断是否是素数。。3.4.2位置参数3.4.3默认参数[例3-7]在定义函数时,设置参数的默认值。[例3-8]计算椭球的表面积和体积,调用时修改了默认参数的值。3.4.3默认参数3.4.3默认参数注意:默认参数一般要放到参数列表的最后修改3.4.2参数设置默认值重要说明:默认值只计算一次。当默认值是可变对象(如列表、字典或大多数类的实例)时,这会有所不同。以下函数将在后续调用中累积传递给它的参数值,默认值在定义范围内的函数定义点进行计算,如下例:请分析方法一和方法二的不同之处。[例3-9]默认值在定义范围内的函数定义点进行计算实例。方法一方法二3.4.3默认参数[例3-10]默认值对后续调用的影响实例。如果不希望在后续调用之间共享

温馨提示

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

评论

0/150

提交评论