Python商务数据分析_第1页
Python商务数据分析_第2页
Python商务数据分析_第3页
Python商务数据分析_第4页
Python商务数据分析_第5页
已阅读5页,还剩405页未读, 继续免费阅读

下载本文档

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

文档简介

第1章初识Python第1章初识PythonPython简介安装Python解释器编写Python源代码第1章初识PythonPython是一种高级编程语言,由GuidovanRossum于20世纪90年代初设计和开发。Python语言具有简单、易读、易维护和可扩展等特点,因此在科学计算、数据分析、Web开发、人工智能等领域得到了广泛的应用。1.1Python简介1.1.1Python的历史(1)1989年圣诞节:GuidovonRossum开始写Python语言的编译器。(2)1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面),可以调用C语言的库函数。在最早的版本中,Python已经提供了对“类”,“函数”,“异常处理”等构造块的支持,还有对列表、字典等核心数据类型,同时支持以模块为基础来构造应用程序。(3)1994年1月:Python1.0正式发布。1.1Python简介1.1.1Python的历史(4)2000年10月16日:Python2.0发布,增加了完整的垃圾回收,提供了对Unicode的支持。与此同时,Python的整个开发过程更加透明,社区对开发进度的影响逐渐扩大,生态圈开始慢慢形成。(5)2008年12月3日:Python3.0发布,它并不完全兼容之前的Python代码,不过因为目前还有不少公司在项目和运维中使用Python2.x版本,所以Python3.x的很多新特性后来也被移植到Python2.6/2.7版本中。1.1Python简介1.1.1Python的历史本文使用的Python3.11.2的版本是在2023年发布的,Python的版本号分为三段,形如A.B.C。其中A表示大版本号,一般当整体重写,或出现不向后兼容的改变时,增加A;B表示功能更新,出现新功能时增加B;C表示小的改动(例如:修复了某个Bug),只要有修改就增加C。1.1Python简介1.1.2Python的优缺点Python的优点很多,简单的可以总结为以下几点:(1)简单明了,学习曲线低,比很多编程语言都容易上手。(2)开放源代码,拥有强大的社区和生态圈,尤其是在数据分析、机器学习和深度学习领域。(3)解释型语言,天生具有平台可移植性,代码可以工作于不同的操作系统。(4)对两种主流的编程范式(面向对象编程和函数式编程)都提供了支持。(5)代码规范程度高,可读性强,适合有代码洁癖和强迫症的人群。1.1Python简介1.1.2Python的优缺点Python的缺点主要集中在以下几点:(1)执行效率稍低,对执行效率要求高的部分可以由其他语言(如C、C++)编写。(2)代码无法加密,但是现在很多公司都不销售卖软件而是销售服务,这个问题会被弱化。(3)在开发时可以选择的框架太多(如Web框架就有100多个),有选择的地方就有错误。1.1Python简介1.1.3Python的应用领域Python的应用领域非常广泛,包括但不限于以下方面:(1)Web开发:Django、Flask和Tornado等框架可以用来开发Web应用。(2)数据分析和科学计算:Numpy、Pandas、Matplotlib和Scikit-learn等库可以用来进行数据分析、统计和机器学习等领域的计算。(3)自然语言处理:NLTK、SpaCy等库可以用来处理文本数据和自然语言。1.1Python简介1.1.3Python的应用领域Python的应用领域非常广泛,包括但不限于以下方面:(4)人工智能和深度学习:TensorFlow、PyTorch和Keras等库可以用来构建人工智能和深度学习模型(5)游戏开发:Pygame等库可以用来开发游戏。(6)自动化测试和脚本编写:Python可以用来编写自动化测试脚本和批处理脚本。(7)系统管理和运维:Python可以用来编写系统管理和运维脚本,如自动化部署、监控和日志分析等总之,Python可以应用于各种领域,是一门非常强大的编程语言。1.2Python开发环境Python是一种解释型脚本语言,它可以在大多数操作系统中运行,包括Windows、MacOSX和Linux。通常情况下,Python开发环境包括以下三个部分:(1)Python解释器:Python解释器是Python语言的核心组件,它能够将Python代码转换成机器语言执行。Python解释器可以在终端命令行中执行,也可以在Python开发工具中使用。(2)Python标准库:Python标准库是Python语言的基础组件,它包含了大量的模块和函数,可以帮助开发者快速构建各种应用程序。(3)Python开发工具:Python开发工具可以帮助开发者更高效地编写Python代码,包括代码编辑器、调试器、测试工具等1.3Python解释器在开始Python编程之旅之前,我们需要在自己使用的计算机上安装Python解释器,下面将以安装官方的Python解释器为例,讲解如何在Windows操作系统上安装Python环境。官方的Python解释器是用C语言实现的,也是使用最为广泛的Python解释器,通常称之为CPython。1.3Python解释器1.3.1安装Python(1)首先打开Python官网:/。(2)在官网主页找到“Downloads”选项并点击“Windows”选项。

1.3Python解释器1.3.1安装Python(3)在打开的页面中往下拉并找到“Python3.11.2”,然后找到与操作系统一致的版本(这里选择64位),点击它进行下载。1.3Python解释器1.3.1安装Python(4)安装Python。双击下载好的python-3.11.2-amd64.exe件。我们选择“Customizeinstallation”并且勾选“Addpython.exetoPATH”,勾选这个选项的目的是将Python直接添加到环境变量中以便使用。

1.3Python解释器默认,点击【Next】1.3Python解释器选择软件安装位置,默认安装在C盘,点击【Browse】可更改软件的安装目录,注意:安装路径文件夹名称均不能含有中文字符!然后点击【Install】1.3Python解释器1.3.2测试安装是否成功我们打开Windows11自带的命令行工具“命令提示符”,然后在命令行中输入“python--verson”并按回车键,下一行将会显示已安装的python版本号,这意味着Python解释器已安装成功,如下图所示。1.4编写Python源代码通常情况下,我们用文本编辑工具(推荐使用VisualStudioCode等高级文本编辑工具)编写Python源代码,并用py作为后缀名来保存文件。例如,在“C:\Development\Python商业数据分析实战”目录中保存源代码文件hello.py,文件中的代码内容如下所示。print('hello,world!’)在命令行工具“命令提示符”中,运行“cdC:\Development\Python商业数据分析实战”)以切换到源代码所在的目录,然后执行“pythonhello.py”命令,屏幕上将会显示“hello,world!”,如下图所示。1.4编写Python源代码第2章Python开发工具第2章Python开发工具安装VSCode编辑器配置VSCode环境2.1安装VSCode编辑器2.1.1什么是VSCodeVSCode(全称为VisualStudioCode)是一款轻量级的源代码编辑器,它具有许多强大的功能,可以帮助开发者更加高效地编写和管理代码。以下是VSCode的一些主要特点:开源免费:VSCode是免费的,并且是开源的,任何人都可以下载和使用它。多语言支持:VSCode支持多种编程语言,包括JavaScript、TypeScript、Python和C++等。强大的编辑功能:VSCode具有强大的编辑功能,包括自动完成、代码片段、语法高亮、代码折叠和多光标编辑等。2.1安装VSCode编辑器2.1.1什么是VSCode内置调试器:VSCode具有内置的调试器,可以帮助开发者更加方便地调试代码。Git集成:VSCode与Git集成,可以帮助开发者更加方便地管理代码版本。插件扩展:VSCode支持插件扩展,开发者可以通过安装插件来扩展其功能,例如自动格式化、代码检查等等。跨平台支持:VSCode可以在Windows、MacOS和Linux等多个平台上运行,可以帮助开发者更加方便地在不同的操作系统上开发代码。总之,VSCode是一款功能强大、易于使用、免费开源的源代码编辑器,它可以帮助开发者更加高效地编写和管理代码。2.1安装VSCode编辑器2.1.2下载VSCode(1)首先在官网下载VSCode软件/download。(2)选择VSCode版本(根据自己的操作系统选择相应的版本)。2.1安装VSCode编辑器2.1.2下载VSCode(3)当出现如下界面表示安装包正在下载。2.1安装VSCode编辑器2.1.3安装VSCode(4)双击刚才下载的安装包程序。(5)同意协议,点击【下一步】。2.1安装VSCode编辑器2.1.2下载VSCode(6)选择安装目录,若无需修改,则默认即可,点击【下一步】。2.1安装VSCode编辑器2.1.2下载VSCode(7)环境变量,建议全部勾选,点击【下一步】。2.1安装VSCode编辑器2.1.2下载VSCode(8)安装成功(到此步骤已经安装成功了)。2.1安装VSCode编辑器2.1.2下载VSCode安装完成后打开界面如下:2.2配置VSCode环境2.2.1安装Python插件为能在VSCode中开发Python程序,我们需要首先安装Python插件,但在安装Python插件时需要首先确保我们的机器上已经安装好Python环境(即Python解释器)。我们按照以下三个步骤来安装Python插件,如下图所示:2.2配置VSCode环境2.2.1安装Python插件等待安装结束后,Python插件也就安装好了,如下图所示。2.2配置VSCode环境2.2.1安装Python插件接下来,我们新建一个名为hello.py的文件,写入如下一行代码print('helloVSCode!')。然后点击右上角的三角按钮运行,看到控制台显示“helloVSCode!”,就表示Python插件安装成功了!2.2配置VSCode环境2.2.2配置中文环境类似地,我们输入“Chinese”来安装中文插件,以让VSCode支持中文显示。安装完成后重启VSCode,VSCode中菜单就转换为中文了。现在VSCode就设置好了,接下来我们就可以正式开发Python程序啦。2.2配置VSCode环境2.2.3利用VSCode开发Python在使用VSCode开发Python程序前,我们需要先搞清楚三个问题:1)VSCode如何管理项目文件;2)VSCode如何切换使用Python解释器;3)VSCode如何执行Python文件。2.2配置VSCode环境2.2.3利用VSCode开发Python(1)VSCode如何管理项目文件VSCode通过文件夹来管理项目文件。我们首先在路径“C:\Development”中新建一个名为“demo”的文件夹,然后通过VSCode菜单“打开文件夹(OpenFolder)”功能打开这个文件夹:2.2配置VSCode环境2.2.3利用VSCode开发Python在弹出的窗口中,找到“demo”文件夹,点击【选择文件夹】。2.2配置VSCode环境2.2.3利用VSCode开发Python打开后,我们就可以在VSCode的文件管理器中看到这个“DEMO”目录,然后,我们通过资源管理器的“新建文件”按钮来新建一个“hello.py”文件,操作步骤如下图所示。当然,我们还可以通过“新建文件夹”按钮来为“DEMO”目录新建一个目录。2.2配置VSCode环境2.2.3利用VSCode开发Python单击“hello.py”,其内容就会自动显示在右侧的编辑框中,此时我们可以在其中编辑代码了,如下图所示。2.2配置VSCode环境2.2.3利用VSCode开发Python(2)VSCode如何切换使用Python解释器为在VSCode中切换Python解释器,我们只需要按照下图中的步骤进行操作即可。2.2配置VSCode环境2.2.3利用VSCode开发Python(3)VSCode如何执行Python文件之前介绍说VSCode是编辑器,而不是Python集成开发环境,因此执行Python文件时需要调用操作系统中已安装的Python解释器。而Python文件执行的原理就是在命令行终端(cmd)中python某个.py文件。首先我们在VSCode打开命令行终端,如下图所示:2.2配置VSCode环境2.2.3利用VSCode开发Python(3)VSCode如何执行Python文件2.2配置VSCode环境2.2.3利用VSCode开发Python(3)VSCode如何执行Python文件在终端中输入:pythonhello.py此时打印出“HelloPython”,表示程序运行成功。2.2配置VSCode环境2.2.4使用JupyterNotebook(1)安装JupyterNotebook在VSCode的扩展商店(点击侧边栏的图标或者Ctrl+Shirt+X)中搜索jupyter并下载Microsoft的Jupyter插件,如下图所示。2.2配置VSCode环境2.2.4使用JupyterNotebook(1)安装JupyterNotebook创建一个文件后缀为.ipynb的文件,并双击打开,显示如下图所示。其中下图左上角的是运行的python版本,点击图标可以切换解释器版本。第一次运行可能会没有显示python解释器,之后运行代码会弹出选择解释器的界面)。2.2配置VSCode环境2.2.4使用JupyterNotebook(1)安装JupyterNotebook尝试运行python代码,如果需要的python库不完全,将会有安装python库的提示,点击安装即可。安装完毕,成功运行之后显示如下图所示。2.2配置VSCode环境2.2.4使用JupyterNotebook(2)打印多个变量结果为了能在.ipynb文件中打印多个变量结果,我们需要在.ipynb文件的开始处输入以下代码。#Jupyternotebook打印多个变量结果from

IPython.core.interactiveshell

import

InteractiveShellInteractiveShell.ast_node_interactivity='all'2.2配置VSCode环境2.2.4使用JupyterNotebook(2)打印多个变量结果在.ipynb文件中直接写上a、b变量,不需要用print()函数就可以打印出多个变量结果,如下图所示。为方便查看代码并分析运行结果,本文中的范例都写在.ipynb文件中。2.2配置VSCode环境2.2.4使用JupyterNotebook(3)JupyterNotebook的好处在.py文件中可以进行的操作在.ipynb的jupyter中基本都可以进行。同时jupyter中可以在代码之间穿插markdown内容,我们编写代码的地方被称为cell,将鼠标移动到cell下面,就会显示添加cell的选项。我们可以选择添加编写代码的cell或者是编写markdown的cell,也可以在顶部菜单栏直接选择“+code”或者“+markdown”)。Jupyter中,代码补全、提示、格式化之类的智能辅助都跟在.py文件中编写代码一致。另外,jupyter中同时兼备了pythonREPL的功能(就是你直接在控制台输入python会启动的那个shell交互界面),你的运行结果都会被暂存,如果只需要改动某一行代码,则重新运行该行代码即可,不用想在.py文件中每次都要运行全部代码。第3章Python编程基础第2章Python开发工具Python基础语法Python变量与数据类型Python运算符Python数据结构Python选择结构Python循环结构Python一般函数Python高阶函数Python模块和包3.1Python基础语法3.1.1Python标识符标识符是电脑语言中允许作为名字的有效字符串集合。其中,有一部分是关键字,构成语言的标识符。这样的标识符是不能做它用的标识符的,否则会引起语法错误(SyntaxError异常)。合法的Python标识符,需要遵守如下规定:第一个字符必须是字母或下划线(_)剩下的字符可以是字母和数字或下划线大小写敏感不能是Python的关键字,例如def、class就不能作为标识符3.1Python基础语法3.1.2Python关键字关键字不能用作常量或变量名称,或任何其他标识符名称。输出结果:['False','None','True','and','as','assert','async','await','break','class','continue','def','del','elif','else','except','finally','for','from','global','if','import','in','is','lambda','nonlocal','not','or','pass','raise','return','try','while','with','yield']import

keywordprint(keyword.kwlist)3.1Python基础语法3.1.3缩进任何一种编程语言都有各自的语法和编程规范,Python之所以以“优雅,简单”著称,其中一个最重要的原因,就是它的“缩进”。Python用缩进层次来组织代码块,而约定一个缩进是用“4个空格”来表示,请务必遵守约定俗成的习惯,坚持使用4个空格的缩进。if

True:

print("南宁")else:

print("桂林")3.1Python基础语法3.1.4多行语句Python语句中一般以新行作为为语句的结束符。但是我们可以使用斜杠(\)将一行的语句分为多行显示,如下所示:语句中包含[],{}或()括号就不需要使用多行连接符。如下实例:total=item_one+\

item_two+\

item_threedays=['Monday','Tuesday','Wednesday',

'Thursday','Friday']3.1Python基础语法3.1.5Python引号Python接收单引号(‘’),双引号(“”),三引号(‘‘‘’’’)来表示字符串,引号的开始与结束必须的相同类型的。word='word'sentence="Thisisasentence."paragraph="""Thisisaparagraph.Itismadeupofmultiplelinesandsentences."""3.1Python基础语法3.1.6Python注释以“#”开头的语句是注释,不一定要出现在行首,在某些语句后面也可以加注释,注释是给人看的,可以是任意内容,解释器会忽略掉注释,但注意不要使用无意义的注释。#第一条注释print("Hello,Python!");

#第二条注释name="高广尚"

#这又是一条注释#注释1#注释2#注释3#注释43.1Python基础语法3.1.7Python空格和空行在Python中,为了让代码看起来更清晰,具有更好的可读性,有时会在代码中太内疚空格和空行。空格或者空行与代码缩进不同,并不是Python语法的一部分。例如在变量赋值时增加空格。hello="world"class

A:

def

__init__(self):

pass

def

hello(self):

pass

def

main():

pass3.1Python基础语法3.1.8Print输出print()默认输出是换行的,如果要实现不换行需要加上end参数。x="a"y="b"print(x,end='')print(y,end='')3.2Python变量与数据类型3.2.1变量变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念,变量可以通过变量名访问。在Python中变量命名规定,必须是大小写英文,数字和下划线(_)的组合,并且不能用数字开头。3.2Python变量与数据类型3.2.1变量(1)声明变量name="高广尚”(2)变量赋值a=123#a是整数a='abc'#a是字符串(3)多个变量赋值

a=b=c=1a,b,c=1,2,"广西”(4)常量BI=3.143.2Python变量与数据类型3.2.2数据类型Python3中有六个标准的数据类型:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Sets(集合)、Dictionary(字典)。不可变数据类型(3个):Number(数字)、String(字符串)、Tuple(元组);可变数据类型(3个):List(列表)、Dictionary(字典)、Set(集合)。3.2Python变量与数据类型3.2.2数据类型(1)Number(数字)Python3支持int、float、bool、complex(复数)。数字类型顾名思义是用来存储数值的。counter=100#整型变量miles=1000.0#浮点型变量name="高广尚"#字符串print(counter)print(miles)print(name)3.2Python变量与数据类型3.2.2数据类型(1)Number(数字)print(5+4)

#加法

输出9print(4.3-2)#减法

输出2.3print(3*7)

#乘法

输出21print(2/4)

#除法,得到一个浮点数

输出0.5print(2//4)#除法,得到一个整数

输出0print(17%3)#取余

输出2print(2**5)#乘方

输出323.2Python变量与数据类型3.2.2数据类型(2)String示例:字符串常见操作s='优雅的Python'#切片s[0],s[-1],s[3:],s[::-1]#'优','n','Python','nohtyP的雅优'#替换,还可以使用正则表达式替换s.replace('Python','Java')#'优雅的Java'#查找,find()、index()、rfind()、rindex()s.find('P')

#3,返回第一次出现的子串的下标s.find('h',2)

#6,设定下标2开始查找3.3Python运算符Python语言支持以下类型的运算符:算术运算符、比较(关系)运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符和运算符优先级。3.3.1算术运算符a=3b=5a+b

#结果是8a-b

#结果是-2a*b

#结果是15b/a

#结果是1.6666666666666667b//a

#结果是1b**a

#结果是125b%a

#结果是23.3Python运算符3.3.2一元运算符x=3+x

#结果是3-x

#结果是-3~x

#结果是-4,相当于-(x+1)3.3Python运算符3.3.3关系(比较)运算符3.3.4赋值运算符a=4

b=5a!=b

#结果是Trueb>a

#结果是Truex=5x+=5x

#结果是103.3Python运算符3.3.5逻辑运算符3.3.6成员运算符3>2

and

2>0

#结果是True3>2

and

2>4

#结果是False3>2

or

2>4

#结果是True3>5

or

2>4

#结果是Falsenot

3>5

#结果是Truenot

3>2

#结果是Falseletters='abcd''a'

in

letters

#结果是True'e'

not

in

letters

#结果是Truelist1=[1,2,3,4,5]

1

in

list1

#结果是True6

not

in

list1

#结果是Truedict1={'a':1,'b':2}3.3Python运算符3.3.7身份运算符身份运算符用于比较两个对象的存储单元。==比较的值是否相等,而is和isnot是比较两个对象是否引用同一个内存地址。a=[1,2,3]b=[1,2,3]a==b

#结果是Truea

is

b

#结果是Falseid(a)

#结果是2551639326088id(b)

#结果是25516394893523.3Python运算符3.3.8位运算符a=5#'0b00000101'b=3#'0b00000011'a&b

#结果是1a|b

#结果是7a^b

#结果是6~a

#结果是-6a<<2

#结果是20b>>2

#结果是03.3Python运算符3.3.9运算符优先级3.4Python数据结构Python内建的数据结构有列表,元组,字典和集合等。此外常用的还有pandas中的series和dataframe(后面会详细分析)。(1)有序数据结构list(列表),是有序数据结构,没有固定大小,可以通过对偏移量以及其他方法修改列表大小。列表的基本形式如:[1,2,3,4]。tuple(元组),是有序数据结构,是不可变的,可以进行组合和复制运算后会生成一个新的元组。元组的基本形式比如:(1,3,6,10)。str(字符串),也是有序数据结构,字符串的基本形式比如:’hello'。3.4Python数据结构Python内建的数据结构有列表,元组,字典和集合等。此外常用的还有pandas中的series和dataframe(后面会详细分析)。(2)无序数据结构dict(字典)是无序的键:值对(key:value对)的集合。键必须是互不相同的(在同一个字典之内)。字典的基本形式如:{'jack':4098,'sape':4139}。set(集合),是一个无序不重复元素的集。基本功能包括关系运算和消除重复元素。集合的基本形式如:{'apple','orange','banana'}。3.4Python数据结构3.4.1列表(1)创建列表'直接创建法'x=[1,3,5,8,6]print(x)fruits=['apple','banana','pears']z=[[1,2,3],'apple',True]print(z)输出结果:[1,3,5,8,6][[1,2,3],'apple',True]3.4Python数据结构3.4.1列表(1)创建列表'range函数法'a=list(range(5));print(a)b=list(range(1,5));print(b)c=list(range(1,7,2));print(c)d=list(range(5,0,-1));print(d)输出结果:[0,1,2,3,4][1,2,3,4][1,3,5][5,4,3,2,1]3.4Python数据结构3.4.1列表(1)创建列表'列表生成式'm=[0

for

i

in

range(5)];print(m)n=[i**2

for

i

in

range(5)];print(n)l_2d=[[i+j

for

i

in

range(3)]for

j

in

range(3)];print(l_2d)输出结果:[0,0,0,0,0][0,1,4,9,16][[0,1,2],[1,2,3],[2,3,4]]3.4Python数据结构3.4.1列表(1)创建列表'类型转换法's='helloworld!'s21=list(s);print(s21)t=(1,2,3,4);print(list(t))输出结果:['h','e','l','l','o','','w','o','r','l','d','!'][1,2,3,4]3.4Python数据结构3.4.1列表(2)列表索引使用[头下标:尾下标]来截取部分字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。3.4Python数据结构3.4.1列表(2)列表索引l=[1,2,3,4,5]l_2d=[[1,2,3],[4,5,6]]print(l[0],l[1],l[-1],l[-3])

#一维列表下标访问,下标从0开始print(l_2d[0],l_2d[0][0],l_2d[-1][-1])

#二维列表下标访问输出结果:1253[1,2,3]163.4Python数据结构3.4.1列表(3)修改列表l=[1,2,3,4,5]l[0]=2

#修改元素l输出结果:[2,2,3,4,5]3.4Python数据结构3.4.1列表(4)使用列表l=[1,2,3,4,5]n=len(l)

#列表长度n输出结果:5l=[1,2,3,4,5]max_l=max(l)min_l=min(l)

#最大值[max_l,min_l]

#最小值输出结果:[5,1]3.4Python数据结构3.4.2元组和list相比,由于不可更改,tuple中存储的数据具有更强的安全性。(1)创建元组t0=();print(t0)#空元组t1=(1,);print(t1)#只有单个元素的元组t2=2,3;print(t2)#以逗号隔开默认为元组输出结果:()(1,)(2,3)3.4Python数据结构3.4.2元组和list相比,由于不可更改,tuple中存储的数据具有更强的安全性。(2)修改元组t=(1,3,2,6,5,4)#t[0]=2

#tuple内容不可修改#t.sort()

#tuple不存在insert,sort,pop等方法l=sorted(t)

#调用sorted函数先将tuple转换成list再排序print(t,l)输出结果:(1,3,2,6,5,4)[1,2,3,4,5,6]3.4Python数据结构3.4.2元组和list相比,由于不可更改,tuple中存储的数据具有更强的安全性。(3)使用元组t=(1,1,0,0,1,3)print(t)print(t[-1],t[0:3])

#索引print(len(t),max(t),min(t),sum(t))#常用函数print(t.count(1),t.index(1,-4,-1))#元组方法

输出结果:(1,1,0,0,1,3)3(1,1,0)6306343.4Python数据结构3.4.3字典字典是无序的key:value键值对的集合key必须是不可改变的数据类型,包括str、int、float、bool、tuple等,不能是list、dict、set等。3.4Python数据结构3.4.3字典(1)创建字典'直接创建法'tel={'Jack''Jimmy';print(tel)gender=dict([('Jack','male'),('Jimmy','male')]);print(gender)输出结果:{'Jack''Jimmy'{'Jack':'male','Jimmy':'male'}3.4Python数据结构3.4.3字典(1)创建字典'字典生成式'd={x:x**2

for

x

in

range(5)};print(d)g={k:v

for(k,v)in

zip(['a','b'],[1,2])};print(g)输出结果:{0:0,1:1,2:4,3:9,4:16}{'a':1,'b':2}3.4Python数据结构3.4.3字典(1)创建字典'fromkeys函数法'd=dict.fromkeys(['a','b','c'],10);print(d)g=dict.fromkeys(['a','b','c']);print(g)输出结果:{'a':10,'b':10,'c':10}{'a':None,'b':None,'c':None}3.4Python数据结构3.4.3字典(2)字典常用操作'查询,get方法'd={'a':1,'b':2,'c':3}print(d['a'])

#由key查询value#print(d['f'])

#若key不存在会报错print(d.get('f'))#使用get方法可以避免错误print(d.get('f',0))#若key不存在,返回设定值0输出结果:1None03.4Python数据结构3.4.3字典(2)字典常用操作'插值,setdefault方法'd={'a':1,'b':2,'c':3};print(d)d['e']=4;print(d)d.setdefault('h',0);#若key不存在,设置默认值d.setdefault('a',0);#若已经存在这个key,setdefault不会修改key原来的值,而且该方法会返回key原来的值。print(d)#'h':0被增加,'a'对应的值未被修改输出结果:{'a':1,'b':2,'c':3}{'a':1,'b':2,'c':3,'e':4}{'a':1,'b':2,'c':3,'e':4,'h':0}3.4Python数据结构3.4.3字典(2)字典常用操作'更新值,update方法'd={'a':1,'b':2,'c':3};print(d)d['a']=10;print(d)#更新单个值d.update({'a':100,'b':200,'f':300});print(d)#更新批量值输出结果:{'a':1,'b':2,'c':3}{'a':10,'b':2,'c':3}{'a':100,'b':200,'c':3,'f':300}3.4Python数据结构3.4.3字典(2)字典常用操作'删除值,pop方法'd={'a':1,'b':2,'c':3,'f':5};print(d)x=d.pop('a');print(d);print(x)#用pop删除值del(d['b']);print(d)

#用del删除值x=d.popitem();print(x);print(d)#用popitem弹出键值对d.clear();print(d)#清空列表输出结果:{'a':1,'b':2,'c':3,'f':5}{'b':2,'c':3,'f':5}1{'c':3,'f':5}('f',5){'c':3}{}3.4Python数据结构3.4.3字典(2)字典常用操作'返回键值列表,items方法'd={'a':1,'b':2,'c':3};print(d)k=list(d.keys());print(k)v=list(d.values());print(v)kv=list(d.items());print(kv)输出结果:{'a':1,'b':2,'c':3}['a','b','c'][1,2,3][('a',1),('b',2),('c',3)]3.4Python数据结构3.4.4集合集合可以看成是一种只有key的字典。(1)创建集合s0=set();print(s0)#空集不能用{}表示#s1={[1,2,3],True,'hello'};#集合的元素不能是可变数据类型s1={(1,2,3),True,'hello'};print(s1)#直接赋值法s2={x**2

for

x

in

range(5)};print(s2)#集合生成式s3=set([1,1,1,2,2,2,3,3,3]);print(s3)

#类型转换法,会去除重复元素输出结果:set(){True,'hello',(1,2,3)}{0,1,4,9,16}{1,2,3}3.4Python数据结构3.4.4集合(2)修改集合s={1,2,3,4,5};print(s)s.add(7);print(s)#增加元素s.pop();print(s)#弹出元素,无参数s.remove(3);print(s)#删除指定内容元素,该元素必须存在s.discard(5);print(s)#若存在,删除指定内容元素s.update({1,2,3,9,10});print(s)#更新集合,与dict中的update功能一致输出结果:{1,2,3,4,5}{1,2,3,4,5,7}{2,3,4,5,7}{2,4,5,7}{2,4,7}{2,3,4,1,7,9,10}3.4Python数据结构3.4.4集合(3)使用集合s={1,2,3,4,5};t={4,5,6};print(s,t)print(len(s),max(s),min(s),sum(tuple(s)))#常用函数print(s,s.union(t))#并集print(s|t)#并集print(s,s.intersection(t))#交集print(s&t)#交集print(s,s.difference(t))#差集:广义补集,元素属于s但不属于tprint(s,s.symmetric_difference(t))#对称差集:元素属于s但不属于t或者元素属于t但不属于sprint(s.issubset(t),s.issuperset(t),s.isdisjoint(t))#是否子集,超集,不相交集s.intersection_update(t);print(s)#求交集,将结果更新到s中3.5Python选择结构3.5.1if语句(1)if...语句#求两个数当中较大的那个值a,b=2,3ifa>b:

c=aelse:

c=bprint('themaxofa,bis',c)3.5Python选择结构3.5.1if语句(2)if...else...语句#求两个数当中较大的那个值a,b=2,3ifa>b:

c=aelse:

c=bprint('themaxofa,bis',c)3.5Python选择结构3.5.1if语句(3)单行if...else...语句#求两个数当中较大的那个值a,b=2,3c=aifa>=belsebprint('themaxofa,bis',c)3.5Python选择结构3.5.1if语句(4)if...elif...else...语句#求三个数当中较大的那个值a,b,c=3,1,2ifa>=banda>=c:

d=aelifb>=c:

d=belse:

d=cprint('themaxofa,b,cis',d)3.5Python选择结构3.5.2多分支选择(1)利用if...elif...elif...else...实现多分支选择结构#给定城市名称,求邮政编码city='Guangzhou'if

city=='Beijing':

postcode='100000'elif

city=='Shanghai':

postcode='200000'elif

city=='Guangzhou':

postcode='510000'elif

city=='Shenzhen':

postcode='518000'else:

postcode=='XXXXXX'print('%s\'spostcodeis:%s'%(city,postcode))3.5Python选择结构3.5.2多分支选择(2)利用字典查询'利用字典查询'#给定城市名称,求邮政编码city='Dalian'Dict_postcode={'Beijing':'100000','Shanghai':'200000','Guangzhou':'510000','Shenzhen':'518000'}postcode=Dict_postcode.get(city,'XXXXXX')print('%s\'spostcodeis:%s'%(city,postcode))3.5Python选择结构3.5.3短路计算和强制类型转换Python的与,或,非分别用关键字and,or,not来表示。[],{},set()会被视为False。对and而言,Python会从左到右计算操作对象,然后返回第一个为假的操作对象。对or而言,Python会从左到右计算操作对象,然后返回第一个为真的操作对象。找到第一个为假或为真的操作对象后,此后操作对象不再被计算。and和or逻辑运算的这种性质叫做短路计算。3.5Python选择结构3.5.3短路计算和强制类型转换(3)利用短路计算实现选择结构'利用短路计算实现选择结构'#求两个数当中较大的那个数a,b=3,2c=(a>=b

and

a)or(a<b

and

b)print('themaxofa,bis',c)3.5Python选择结构3.5.3短路计算和强制类型转换(4)利用强制类型转换实现选择结构'利用强制类型转换实现选择结构'#求两个数当中较大的那个数a,b=4,-1c=(a>=b)*a+(a<b)*b#True强制转换为1,False强制转换为0print('themaxofa,bis',c)3.5Python选择结构3.5.4try...except...语句(1)利用if语句来判断是否合法#尝试对两个列表做点乘from

numpy

import

dot

a=[1,2,3];b=[3,4,5,6]if

len(a)==len(b):

ab=dot(a,b)

print('a.b=',ab)else:

print("Error:a&bdon'thavethesamelength!")3.5Python选择结构3.5.4try...except...语句(2)使用try...except...语句来处理错误'使用try...except...语句来处理错误'l=[1,2,'abc',True]try:

sum_l=sum(l)

print(sum_l)except

Exception

as

e:

print("Error:",e)3.6Python循环结构Python中实现循环结构的几种方式:for循环,while循环,生成式,高阶函数,向量化。3.6.1for循环Python中的for循环可以遍历任何序列的项目,如一个列表或者一个字符串。for循环基本格式如下:for

变量

in

序列:

循环语句for

i

in[0,1,2]:

print(i)输出结果:0,1,23.6Python循环结构Python中实现循环结构的几种方式:for循环,while循环,生成式,高阶函数,向量化。3.6.1for循环(1)遍历可迭代对象for

i

in

'hello':

print(i)输出结果:hello3.6Python循环结构Python中实现循环结构的几种方式:for循环,while循环,生成式,高阶函数,向量化。3.6.1for循环(2)单重for循环#求一个列表中最大的元素l=[1,5,4,6,7,8,2,0]max_l=l[0]for

i

in

l:#直接遍历列表

max_l=i

if

i>max_l

else

max_lprint(max_l)输出结果:83.6Python循环结构Python中实现循环结构的几种方式:for循环,while循环,生成式,高阶函数,向量化。3.6.1for循环(2)多重for循环#打印一个九九乘法表for

i

in

range(1,10):

for

j

in

range(1,i+1):

print(f"{j}x{i}={i*j}",end="\t")

print()3.6Python循环结构Python中实现循环结构的几种方式:for循环,while循环,生成式,高阶函数,向量化。3.6.1for循环(3)多重for循环输出结果:1x1=1 1x2=2 2x2=4 1x3=3 2x3=6 3x3=9 1x4=4 2x4=8 3x4=12 4x4=16 1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=813.6Python循环结构Python中实现循环结构的几种方式:for循环,while循环,生成式,高阶函数,向量化。3.6.2while循环while循环的基本格式如下:while

条件表达式:

条件满足,执行循环语句3.6Python循环结构Python中实现循环结构的几种方式:for循环,while循环,生成式,高阶函数,向量化。3.6.2while循环(1)计算1-100偶数和i=0sum_result=0while

i<101:

if

i%2==0:

sum_result+=i

i+=1print('偶数和为:%s'%sum_resurt)输出结果:偶数和为:25503.6Python循环结构Python中实现循环结构的几种方式:for循环,while循环,生成式,高阶函数,向量化。3.6.3生成式生成式是一种轻量级的循环结构,语法结构简单明了。它可以用于生成列表,集合和字典。(1)单循环遍历#求列表全部元素的绝对值l=[1,2,-1,3,0,-2,-3]absl=[i

if

i>0

else-i

for

i

in

l]print(absl)输出结果:[1,2,1,3,0,2,3]3.6Python循环结构Python中实现循环结构的几种方式:for循环,while循环,生成式,高阶函数,向量化。3.6.3生成式生成式是一种轻量级的循环结构,语法结构简单明了。它可以用于生成列表,集合和字典。(2)for遍历+if筛选#筛选序列中大于0的元素l=[1,2,-1,3,0,-2,-3]lbt0=[i

for

i

in

l

if

i>0]print(lbt0)输出结果:[1,2,3]3.6Python循环结构Python中实现循环结构的几种方式:for循环,while循环,生成式,高阶函数,向量化。3.6.3生成式(3)for多重遍历#求两个集合中所有元素可能的组合girls={'Lucy','Mary'}boys=['Tom','Jim']couples={(b,g)for

b

in

boys

for

g

in

girls}print(couples)输出结果:{('Tom','Lucy'),('Jim','Lucy'),('Jim','Mary'),('Tom','Mary')}3.6Python循环结构Python中实现循环结构的几种方式:for循环,while循环,生成式,高阶函数,向量化。3.6.4高阶函数高阶函数可以调用其他函数作为参数。常用的高阶函数包括:map,reduce,filter,sorted。(1)map映射import

mathimport

numpy

as

np#求列表中各个元素的平方根l=list(map(math.sqrt,[1,2,3]))print(l)输出结果:[1.0,1.4142135623730951,1.7320508075688772]3.6Python循环结构Python中实现循环结构的几种方式:for循环,while循环,生成式,高阶函数,向量化。3.6.4高阶函数高阶函数可以调用其他函数作为参数。常用的高阶函数包括:map,reduce,filter,sorted。(1)map映射import

mathimport

numpy

as

np#求两个向量的和s=list(map(np.add,[1,2,3],[3,2,1]))#numpy库中的add方法print(s)输出结果:[4,4,4]3.6Python循环结构Python中实现循环结构的几种方式:for循环,while循环,生成式,高阶函数,向量化。3.6.4高阶函数高阶函数可以调用其他函数作为参数。常用的高阶函数包括:map,reduce,filter,sorted。(2)reduce降维from

functools

import

reduce#求列表中所有元素的乘积p=reduce(lambda

x,y:x*y,[1,2,3,4])print(p)输出结果:243.6Python循环结构Python中实现循环结构的几种方式:for循环,while循环,生成式,高阶函数,向量化。3.6.4高阶函数高阶函数可以调用其他函数作为参数。常用的高阶函数包括:map,reduce,filter,sorted。(3)filter过滤#过滤出列表中全部正数l=[1,2,3,-1,-3,0]q=filter(lambda

x:True

if

x>0

else

False,l)print(list(q))输出结果:[1,2,3]3.6Python循环结构Python中实现循环结构的几种方式:for循环,while循环,生成式,高阶函数,向量化。3.6.4高阶函数高阶函数可以调用其他函数作为参数。常用的高阶函数包括:map,reduce,filter,sorted。(4)sorted排序#对列表进行排序a=[5,3,4,2,1]print(sorted(a))输出结果:[1,2,3

温馨提示

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

评论

0/150

提交评论