Python数据分析及应用 课件汇 徐娟 第1-6章Python基础应用 - Python文件_第1页
Python数据分析及应用 课件汇 徐娟 第1-6章Python基础应用 - Python文件_第2页
Python数据分析及应用 课件汇 徐娟 第1-6章Python基础应用 - Python文件_第3页
Python数据分析及应用 课件汇 徐娟 第1-6章Python基础应用 - Python文件_第4页
Python数据分析及应用 课件汇 徐娟 第1-6章Python基础应用 - Python文件_第5页
已阅读5页,还剩237页未读 继续免费阅读

下载本文档

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

文档简介

1Python数据分析及应用第一章目录

1.1数据分析基础1.2Python语言概述1.3Python语言开发环境配置1.4Python基本语法规则(1)知识目标:了解什么是数据分析及数据分析的基本流程;了解Python语言的发展及特点、开发环境的配置;掌握Python程序的编写方法及基本语法规则。(2)技能目标:理解数据分析的基本流程;掌握Python语言解释器的安装方法、Anaconda开发环境的安装方法及Python第三方库的安装与使用;掌握Python程序的编写方法。(3)素质目标:具备一定的计算思维能力和程序设计能力。3学习目标天气数据分析每天我们都会关注天气信息,增减衣物、安排出行等。商家利用天气数据分析消费者的购物行为和出行习惯,从而制定更具针对性的营销策略。通过分析土壤温度、降雨量等数据,农民可以更准确地决定种植何种作物、何时播种或灌溉。政府部门通过分析天气数据来预测自然灾害对社会经济的影响,从而制定更加精准的防灾减灾政策。随着科技的进步和数据采集与分析能力的提升,天气数据分析将在未来发挥更为重要的作用。那么如何来进行天气数据分析?4本章导读什么是数据分析?数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,将它们加以汇总和理解并消化,以求最大化地开发数据的功能,发挥数据的作用。数据分析是为了提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。51.1数据分析基础在统计应用中,数据分析可分为描述性统计、探索性数据分析(EDA)和验证性数据分析(CDA)。EDA侧重于发现数据中的新特征,而CDA则侧重于确认或伪造现有假设。预测分析侧重于应用统计模型进行预测或分类,而文本数据分析主要是从文本源中提取信息并对其进行分类,如词频分析、语义分析、主题分析、情感分析、文本聚类等。61.1数据分析基础数据分析基本流程(1)数据采集或获取(2)数据预处理和存储(3)数据建模和分析(4)数据可视化分析(5)数据报表和总结71.1数据分析基础为什么选用Python进行数据分析?Python入门简单,代码可读性强Python是开源的,它拥有非常多优秀的库Python与开源大数据平台Hadoop具有很好的兼容性Python不受数据规模的约束,能够处理大规模数据Python能够绘制各种前沿的数据图表Python在海量数据采集方面也有独特的优势81.1数据分析基础GuidovanRossumPython语言创立者2000年,Python2.x2008年,Python3.x目前,绝大部分Python函数库和Python程序员都采用3.0版本系列语法和解释器91.2Python语言概述Python语言的特点简单易学速度快免费、开源可移植性解释性面向对象可扩展性可嵌入性丰富的库101.2Python语言概述Python语言解释器的安装到Python主页下载并安装Python基本开发和运行环境,网址:/downloads/

根据操作系统不同选择不同版本

下载相应的Python3.0系列版本程序111.3

Python语言开发环境配置启动Windows命令行工具,输入python调用IDLE来启动Python图形化运行环境按照语法格式编写代码,编写可以用任何文本编辑器,保存为文件打开IDLE,点击Ctrl+N打开一个新窗口,输入语句并保存,使用快键建F5即可运行该程序121.3

Python语言开发环境配置Anaconda开发环境的安装Anaconda是一种更加高效、智能的Python集成开发环境。Anaconda集成了很多和数据科学、机器学习相关的Python第三方开源库,更友好和方便;Anaconda提供了包管理与环境管理的功能,可以很方便的解决多版本Python并存、切换以及各种第三方包安装问题。131.3

Python语言开发环境配置从开始菜单启动Spyder或者Jupyter,就可以编写自己的Python程序了。141.3Python语言开发环境配置Python有一套很有用的标准库(standardlibrary)。标准库会随着Python解释器一起安装在你的电脑中的。它是Python的一个组成部分。这些标准库是Python为程序员准备好的利器,可以让编程事半功倍。同时Python社区提供了大量的第三方模块,使用方式与标准库类似。它们的功能无所不包,覆盖科学计算、Web开发、数据库接口、图形系统多个领域,并且大多成熟而稳定。151.3Python语言开发环境配置Pythonpip的安装与使用pip是Python包管理工具,该工具提供了对Python包的查找、下载、安装、卸载的功能。在命令行(控制台)中输入以下命令来判断是否已安装:pip–version未安装,则可以使用以下方法来安装:$curlhttps://bootstrap.pypa.io/get-pip.py–oget-pip.py#下载安装脚本$sudopython3get-pip.py#运行安装脚本161.3Python语言开发环境配置Pyinstaller库的安装与使用Pyinstaller是一个十分有用的第三方库,它能够在Windows、Linux、MacOSX等操作系统下将Python源文件打包,通过对源文件打包,Python程序可以在没有安装Python的环境中运行,也可以作为一个独立文件方便传递和管理。Pyinstaller需要在命令行下用pip工具安装:pipinstallpyinstaller171.3Python语言开发环境配置编写自己的Python程序实例1.1编写并运行第一个hello程序使用Python输出"HelloWorld!"的代码为:print("Hello,World!")找到并运行Python3.12的IDLE,在“>>>”提示符后输入代码:print("Hello,World!"),然后回车,就可以得到运行结果。181.3Python语言开发环境配置Python程序运行方式运行Python程序有两种方式,交互式和文件式。交互式即Python解释器即时响应用户输入的每条代码,给出输出结果。文件式则需要将Python代码写在一个或多个文件中,通常可以按照Python的语法格式编写代码,并保存成.py格式的文件,然后由Python解释器批量执行文件中的代码。191.3Python语言开发环境配置实例1.2长方形面积的计算在IDLE中选择“File”|“NewFile”,在打开的窗口中输入以下代码:a=4b=7s=a*bprint(“s=”,s)选择“File”|“Save”,保存文件,选择“Run”|“RunModule”,得到运行结果201.3Python语言开发环境配置实例1.3绘制一个五角星importturtleimporttimeturtle.pensize(4)turtle.pencolor("yellow")#画笔黄色turtle.fillcolor("red")#内部填充红色#绘制五角星#turtle.begin_fill()for_inrange(5):#重复执行5次

turtle.forward(200)#向前移动200步

turtle.right(144)#向右移动144度,注意这里的参数一定不能变turtle.end_fill()#结束填充红色time.sleep(1)211.3Python语言开发环境配置本节以GDP(国内生产总值)计算为例,介绍Python程序的结构及基本语法规则。实例1.4GDP计算:2023年,中国GDP约17.89万亿美元,增速为5.20%,美国GDP约27.36万亿美元,增速为2.5%,按此增长率多少年后中国的GDP能超过美国的GDP值。如果中国GDP增速可以达到7%呢?gdpChina=17.89e12gdpAmerica=27.36e12Growth_rate=float(input("请输入中国GDP增速:"))#可以输入不同的中国GDP增速y=2023while(gdpChina<=gdpAmerica):#判断中国的GDP是否超过美国的GDP了?

y=y+1#如果没有超过,则年份增加1年

gdpChina=gdpChina*(1+Growth_rate)gdpAmerica=gdpAmerica*(1+0.026)print(y,"年中国的GDP能超过美国的GDP")print("中国的GDP为:",gdpChina,"美国的GDP为:",gdpAmerica)221.4Python基本语法规则缩进与对齐Python程序代码通过缩进和对齐表示代码间的逻辑关系,相同缩进的代码视为同一代码块。缩进指代码开头的空格,一次缩进为4个空格(按一下tab键)。处于同一逻辑关系或层次级别相同的代码具有相同的缩进,即对齐。缩进和对齐增强了代码的可读性,使代码层次分明,逻辑关系清晰。如实例1.4中第6到第8行代码从属于第5行代码,他们构成代码的缩进结构。231.4Python基本语法规则注释注释是对代码进行解释或说明的文字信息,它能够增强程序的可读性,帮助理解代码,注释不会被编译和执行。注释分为单行注释和多行注释,单行注释以#开头。多行注释以′′′(3个单引号或者双引号)开头和结尾。单行注释用法:#这是一个单行注释print("helloworld!")#放置在语句之后的注释多行注释用法:'''这是一个多行注释,使用单引号这是一个多行注释,使用单引号

'''241.4Python基本语法规则变量变量指其值会发生变化的量,变量的名字叫做变量名。变量名是标识符的一种,必须要遵守Python标识符命名规则,标识符由字母、数字、下划线“_”组成,但不能以数字开头,如abc、ab_1、Abc_2_1等。以下划线开头的标识符有特殊含义,应避免使用以下划线开头的标识符。标识符不能和Python保留字或函数名相同。Python标识符是严格区分大小写的。标识符命名应既要简短又具有描述性。251.4Python基本语法规则赋值Python变量的赋值是指将数据放入变量的过程。变量无须声明数据类型就可以直接赋值,变量的类型和值在赋值那一刻被初始化。变量赋值通过赋值号“=”来执行,它的作用是将“=”右边的值分配给“=”左边的变量。Python还可以同时给多个变量赋同一个值。261.4Python基本语法规则几个变量赋值的例子>>>y=2023>>>Growth_rate=0.052>>>s=”Helloworld!”>>>y=y+1>>>gdpAmerica=gdpAmerica*(1+0.026)>>>a=b=c=1>>>m+=1>>>n*=10271.4Python基本语法规则Python赋值运算符281.4Python基本语法规则运算符描述示例=将右侧数值或表达式的值赋给左侧变量c=5表示将数值5赋给c+=将右侧的值加到左侧的变量上,并将结果赋给左侧的变量。c+=3等价于c=c+3-=从左侧的变量中减去右侧的值,并将结果赋给左侧的变量。c-=3

等价于

c=c-3*=将左侧的变量乘以右侧的值,并将结果赋给左侧的变量。c*=5

等价于

c=c*5/=将左侧的变量除以右侧的值,并将结果赋给左侧的变量。c/=2

等价于

c=c/2%=计算左侧的变量除以右侧值的余数,并将结果赋给左侧的变量。c%=5

等价于

c=c%5**=执行指数(幂)计算,并将结果赋给左侧的变量c**=3

等价于

c=c**3//=执行整数除法,将左侧的变量除以右侧的值并向下取整,然后将结果赋给左侧的变量。c//=6

等价于

c=c//6保留字保留字指被编程语言内部定义并使用的标识符,被赋予了特殊的意义。这些标识符不能再作为例如变量名、函数名或任何其他用户定义的名字。每个保留字都有其特定的用途和规则。每一种程序设计语言都有保留字。291.4Python基本语法规则输入input()用于获得用户输入的值,无论用户输入什么内容,input()的返回值始终是字符型。书写格式为:<变量>=input(<提示信息>)例如:>>>input("请输入一个数字:")>>>请输入一个数字:96.56’96.56’>>>input("请输入一串字符:")>>>请输入一串字符:Helloworld!’Helloworld!’由此可见,不论用户输入的是字符还是数字,最终都变成一串字符(两边有单引号定界)。301.4Python基本语法规则输出print()用于输出信息或变量的值,它可以将文本、变量、表达式等内容打印出来,方便进行调试和查看结果。书写格式为:print(*objects,sep='',end='\n',file=sys.stdout,flush=False)其中,objects是要打印的对象,可以是一个或多个。sep是分隔符,用于将多个对象之间进行分隔,默认为一个空格。end是结束符,用于在打印完所有对象之后添加一个字符,默认为换行符。file是输出流,用于指定打印的目标,默认为sys.stdout,即标准输出流。flush是一个布尔值,用于指定是否立即刷新输出,默认为False。311.4Python基本语法规则当输出变量时,可以采用格式化输出方式,使用format()规定输出的格式,format()的详细介绍见后续章节。例如:(1)输出文本:>>>print("Hello,World!")

(2)输出变量的值>>>x=10>>>print(x)(3)输出多个对象>>>x=10>>>y=20>>>print("x=",x,"y=",y)(4)修改分隔符和结束符>>>x=10>>>y=20>>>print("x=",x,"y=",y,sep=',',end='!')321.4Python基本语法规则33思维导图34Python数据分析及应用第二章

基本数据类型目录

2.1数值类型2.2数值运算2.3字符串类型2.4不同数据类型的转换知识目标:❊了解Python中常见的基本数据类型;❊掌握不同数据类型的定义规则和表示方法;❊理解每种数据类型的特点、适用场景和存储方式;❊熟悉数据类型之间的转换方法和规则。36学习目标技能目标:❊能够准确地定义和使用各种基本数据类型来存储和处理数据;❊熟练进行数据类型的转换操作,以满足不同的计算和逻辑需求;❊运用所学的数据类型,编写具有实际功能的代码段,解决简单的问题;❊能够对复杂的数据结构进行分析和操作;❊具备调试代码的能力,能够识别和解决由于数据类型使用不当导致的错误。37学习目标素质目标:❊培养严谨的逻辑思维,确保在编程中对数据类型的选择和使用准确无误;❊提高问题解决的能力,通过合理运用数据类型来优化代码的可读性和可维护性;❊养成良好的编程习惯,注重代码规范和注释;❊培养耐心和细心,在处理数据类型相关问题时,能够仔细检查和排查错误。38学习目标

在Python编程的世界里,数据类型是构建代码大厦的基石。就如同建造房屋需要各种不同的材料一样,编写有效的程序也依赖于对数据类型的准确理解和运用。

在这一章中,我们将一同探索Python丰富多样的基本数据类型。深入了解整数、浮点数、字符串和布尔值等常见数据类型的奥秘。

整数和浮点数是处理数值运算的得力助手,它们分别适用于不同精度和范围的数字计算。字符串则是文本信息的载体,学会如何创建、操作和处理字符串,让文字在代码中发挥神奇的作用。而布尔值作为逻辑判断的基础,将帮助构建条件语句和控制程序的流程。

通过学习本章,将不仅掌握这些基本数据类型的概念和用法,还能理解它们在内存中的存储方式和特点。这将为后续编写复杂、高效的程序打下坚实的基础,在Python编程的征程上迈出坚实的一步!39本章导读Python提供了丰富的数值类型,支持4种数值类型:包括整型(int)、浮点型(float)、布尔型(bool)和复数型(complex)。每种类型都有其独特的特点和用途。402.1数值类型表示方法有4种:十进制、二进制、八进制和十六进制。默认情况采用十进制,其他进制需要加引导符号。412.1.1整型(int)进制类型引导符号描述十进制不需要默认情况。如:123,-243二进制0b或0B由字符0、1组成。如:0b1100,0B101011八进制0o或0O(注意:后一个是大写字母O)由字符0到7组成。如:0o137,0O564十六进制0x或0X由字符0到9、a到f(或A到F)组成。如:0x9AF,0X678

例2-1print(123,-243)print(0o137,0O564)print(0x9AF,0X678)2.1.1整型(int)

整型特点:(1)无大小限制(受限于可用内存)。(2)支持二进制、八进制、十进制和十六进制表示,但结果显示都是十进制数。(3)支持常见的算术运算(加、减、乘、除、取模、幂运算)。Python的内置函数能够进行整数的进制转换如下表。序号转换函数描述实例1bin(x)将十进制整数x转换成二进制整数bin(246)2oct(x)将十进制整数x转换成八进制整数oct(246)3hex(x)将十进制整数x转换成十六进制整数hex(246)4int(x,n)将n进制字符串或数字x转换成十进制整数int(246,16)2.1.1整型(int)

例2-2a=bin(246)b=oct(246)c=hex(246)d=int(“246”,16)print(a,b,c,d)2.1.1整型(int)2.1.2浮点型(float)浮点数用于表示带有小数部分的数值。浮点数有两种表示方法:十进制表示和科学计数法表示。十进制表示:3.14、2.75、-123.6科学计数法表示:1.2E3(表示1.2×103)、1.2e-3(表示1.2×10-3),E或e表示基数为10,后面的整数表示指数。内置函数float(x)可以将整数或字符串转换成浮点类型数据。2.1.2浮点型(float)例2-3print(3.14,2.75,-123.6,1.2E3,1.2e-3)a=float(246)b=float(“246”)print(a,b)2.1.3布尔型(bool)

布尔类型也叫逻辑类型,主要用来表示逻辑判断的结果,比如True和False、真和假、对和错、成立和不成立等。在逻辑判断中,True和非0都是“真”,False和0都是“假”。2.1.3布尔型(bool)

例2-4print(int(True),int(False))print(bool(5),bool(1),bool(0))print(345>123,”A”>”a”)2.1.4复数型(complex)

复数类型用于表示数学中的复数。复数由实部和虚部组成,形式为real+imagj(或real+imagJ),其中real是实部,imag是虚部,j或J表示虚数单位,real、imag都是浮点数。例如:c1=2+3jc2=-1.5+0.5j2.1.4复数型(complex)

例2-5print(2+3j,-1.5+0.5j,5J,4+1.34E-3J)a=4.5+8.9jprint(a.real,a.imag)b=complex(5.67,34.6)print(b)2.2数值运算

运算符与表达式运算符:表示运算的符号称为运算符。Python常用的运算符有算术运算符、关系运算符、逻辑运算符、赋值运算符、复合运算符、标识运算符和位运算符等。操作数:表示运算的对象称为操作数。操作数可以是常量、变量或函数等。表达式:描述对哪些数据进行什么样的运算。如1+2就是一个算术表达式,“+”是运算符,1、2是操作数。2.2.1基本运算

一、算术运算符

算术运算符一般是用来实现数学运算的,由算术运算符连接常量或变量所构成的表达式称为算术表达式。除负号外,所有的算术运算符均为双目运算符。序号运算符说明例子(x=5,y=2)1+加法x+y,值为72-减法x-y,值为33*乘法x*y,值为104/除法x/y,值为2.55//整除,返回商的整数部分x//y,值为26%求余(模),返回余数x%y,值为17**幂x**y,值为252.2.1基本运算

例2-6a=8;b=3print(a+b,a-b)print(a*b,a/b)print(a//b,b//a)print(a%b,a**b)2.2.1基本运算

二、关系运算符

关系运算符一般用来比较运算符两边的操作数,由关系运算符连接两个操作数的表达式称为关系表达式,被连接的操作数可以是常量、变量、算术表达式、逻辑表达式、赋值表达式等。若关系表达式成立,则结果为True(真),否则为False(假)。所有的关系运算符均为双目运算符。序号关系运算符说明例子x=5,y=2)1==是否相等x==y,值为False2!=是否不相等x!=y,值为True3>当左>右时结果为Truex>y,值为True4<当左<右时结果为Truex<y,值为False5>=当左>=右时结果为Truex>=y,值为True6<=当左<=右时结果为Truex<=y,值为False2.2.1基本运算

例2-7a=8;b=3print(a==b,a!=b)print(a>b,a<b)print(a>=b,a<=b)print(6<a<10,2<b<1)2.2.1基本运算

三、逻辑运算符Python语言中逻辑运算符包括and(逻辑与)、or(逻辑或)和not(逻辑非)三个。逻辑运算符用于对操作数进行逻辑运算,用逻辑运算符连接的关系表达式称为逻辑表达式。逻辑表达式常用于控制程序的流程和条件判断,帮助开发者根据不同的逻辑条件执行相应的代码块。在使用逻辑运算符时,需要注意运算符的优先级,not的优先级高于and,and的优先级高于or。and、or是双目运算符,not是单目运算符。2.2.1基本运算

xynotxxandyxoryTrueTrueFalseTrueTrueTrueFalseFalseFalseTrueFalseTrueTrueFalseTrueFalseFalseTrueFalseFalse逻辑运算符逻辑运算符真值表2.2.1基本运算

例2-8:已知判断年份y是否为闰年的条件为:(1)能被4整除,但不能被100整除;

(2)能被400整除。只要满足(1)或者(2)中任意一个条件,那么y就是闰年。程序如下:y=int(input(“请输入年份:”))print(y%4==0andy%100!=0ory%400==0)2.2.1基本运算

四、赋值运算符

在Python中,赋值运算用于将值赋给变量。赋值运算符的主要作用是为变量赋予初始值或更新变量的值,以便在程序中进行后续的计算和操作。

在中学阶段的数学中,等号“=”的含义是判断等号两边的数值是否相等。但在Python中,“=”的含义是赋值运算,读作赋值号,将“=”赋值号右边的数值赋给左边的变量。而要判断两边数值是否相等用关系运算符“==”。

基本语法格式为:

变量=表达式

作用:将“=”赋值号右边的表达式值赋给左边的变量。

注意:在使用赋值运算时,需要注意变量的数据类型以及赋值表达式的合法性,以避免出现错误。2.2.1基本运算

例2-9赋值运算符的灵活运用a=b=c=10#同一值赋给多个变量print(a,b,c)a,b,c=2,4,6#一行代码实现多个值赋给多个变量,顺序很重要print(a,b,c)a1=2.3#交换两个变量的值a2=87.9a1,a2=a2,a1print(a1,a2)2.2.1基本运算

五、复合运算符

复合运算符是将某种算术运算符和赋值运算符结合起来,形成一种简洁的写法。在Python语言中,基本赋值运算符“=”与7种算术运算符(+、-、*、/、%、//、**)结合成复合赋值运算符,其功能是先计算算术运算,然后再赋值。

基本语法格式为:

变量

算术运算符=表达式

相当于:变量=变量

算术运算符

表达式

作用:先计算算术运算与表达式的结果,然后再赋给左边的变量。序号复合赋值运算符说明例子(x=5,y=2)1+=加法赋值x+=y,相当于x=x+y,x值为72-=减法赋值x-=y,相当于x=x-y,x值为33*=乘法赋值x*=y,相当于x=x*y,x值为104/=除法赋值x/=y,相当于x=x/y,x值为2.55//=整除赋值x//=y,相当于x=x//y,x值为26%=求余赋值x%=y,相当于x=x%y,x值为17**=指数赋值x**=y,相当于x=x**y,x值为252.2.1基本运算

六、运算符的优先级

Python语言中规定,在同一个表达式中出现多个运算符时,要先计算优先级高的运算。当出现多个优先级相同的运算符时,按照结合性确定计算次序。括号可以改变优先级顺序,有括号时优先计算括号内的表达式。序号运算符运算符说明结合性优先级顺序1()圆括号从左至右高

低2**乘方从左至右3*、/、//、%乘除从左至右4+、-加减从左至右5==、!=、>、>=、<、<=关系运算符从左至右6=、+=、-=、*=、/=、//=、%=、**=赋值运算符和复合赋值运算符从右至左7not非从右至左8and与从左至右9or或从左至右2.2.1基本运算

例2-10x=5;y=2z=x+y*6#运算顺序为:*、+w=x+y**x*10#运算顺序为:**、*、+m=(7*(x+4))**2/(9*(x+y))#用圆括号改变运算顺序print(z,w,m)2.2.2数值运算函数

Python内置的数学函数能够完成数学计算。Python提供了丰富的数学函数,通过math模块可以访问更多高级的数学运算。序号函数说明举例1abs(x)求x的绝对值abs(-10),返回值为102divmod(x,y)分别取得商和余数,返回元组divmod(20,6),返回值为(3,2)3pow(x,y)返回x的y次幂pow(6,2),返回值为364round(x)或round(x,d)对浮点数x按照四舍五入保留d位小数。无参数则返回x四舍五入后的整数值round(3.1415926,3),返回值为3.1425max(x1,x2,…,xn)求x1,x2,…,xn中的最大值max(5.6,45,7.9,8),返回值为456min(x1,x2,…,xn)求x1,x2,…,xn中的最小值min(5.6,45,7.9,8),返回值为5.67eval(str)将字符串中的表达式求值,返回计算结果eval(“1+2+3+4+5”),返回值为152.2.2数值运算函数

例2-11print(abs(-10))print(divmod(20,6))print(pow(6,2))print(round(3.1415926,3))print(max(5.6,45,7.9,8))print(min(5.6,45,7.9,8))print(eval(“1+2+3+4+5”))2.3字符串类型

现实生活中的很多数据都是字符串,如姓名、住址、身份证号、学号等,其中一些虽然完全由阿拉伯数字构成,但不是数值而是字符串。字符串是常见的一种数据类型,程序中经常会有对字符串进行各种处理的需求,因此Python语言中提供了字符串类型,可以对字符串进行各种处理操作。

字符串是一个字符序列,它可以包含字母、数字、标点符号等文本形式的字符。字符的个数称为字符串的长度,长度为0的字符串称为空字符串。2.3.1字符串的创建

Python中的字符串是一个有序的字符序列,可以用单引号、双引号或三引号表示。其中,单引号和双引号均用来表示单行字符串。使用单引号时,双引号可以作为字符串的一部分;使用双引号时,单引号可以作为字符串的一部分;三引号可以表示单行或多行字符串。例2-12print(‘ILikePython!’)print(“Let’sProgram!”)print(“““Let’sProgram!”””)2.3.2转义字符

Python使用引号标记字符串,但引号本身不属于字符串内容。引号自身就是一个特殊的存在,这样会产生一个问题,如何表达字符串正文内容中的引号?一般有两种方法来实现:一是使用和待输出的引号不同的引号来标记字符串;二是使用转义字符。

转义字符以反斜线号为前缀,用于避免字符的二义性,或者描述一些不方便通过键盘直接输入的特殊字符。转义字符说明转义字符说明\\反斜线号\’单引号

\n换行符,将鼠标指针移到下一行开头\r回车符,将鼠标指针移到本行开头\”双引号\f换页符\t横向制表符,即<Tab>键\b退格,即<Backspace>键2.3.2转义字符例2-13print(‘《九月九日忆山东兄弟》’)print(‘\t——唐·王维’)print(“独在异乡为异客,每逢佳节倍思亲。\n遥知兄弟登高处,遍插茱萸少一人。”)2.3.3字符串基本操作一、字符串索引操作

字符串索引就是字符的索引,可以通过字符串索引访问和操作字符。字符串索引分正向索引和负向索引。

(1)正向索引:从左到右排列,默认从0开始,从左到右标记字符依次为0、1、2、…,最大范围是字符串长度减1。

(2)负向索引:从右到左排列,默认从-1开始,从右到左标记字符依次为-1、-2、-3、…。例如:字符串:Student正向索引:0123456负向索引:-7-6-5-4-3-2-1字符串索引操作指的是使用字符串的索引获取字符串中的指定字符,语法格式如下:<字符串>[索引]2.3.3字符串基本操作例2-14print(“student”[0],”student”[3])s=”student”print(s[-1],s[-4])2.3.3字符串基本操作二、求字符串的长度可以用内置函数len()求字符串的长度。例如:s=”student”>>>len(s)结果为:7三、字符串连接操作字符串连接操作使用加号(+)将两个字符串连接起来。2.3.3字符串基本操作例2-15print(“I”+”like”+”Python!”)print(“我爱学”+“编程!”)2.3.3字符串基本操作四、字符串复制操作如果字符串由一段字符反复连接而成,则可以使用“*”生成该字符串。例如:Print(“Python!”*3)Print(“中国加油!”*2)2.3.3字符串基本操作五、字符串切片操作

字符串切片操作是指利用指定范围从字符串中获得字符串的子串。其方法是通过指定开始位置start和结束位置end来指定切片的区间。基本语法格式如下:<字符串>[start:end:step]

说明:start表示子串的起始位置,end表示子串的终止位置(不含end对应的字符,即end-1),step表示步长。start、end和step均可省略,start的默认值为0,end的默认值为字符串长度,step默认步长为1。2.3.3字符串基本操作例2.16s=”student”print(s[1:5])print(s[:6])print(s[1:])print(s[1:6:2])print(s[-7:-2])2.3.3字符串基本操作六、字符串处理函数Python内置了一些与字符串处理相关的函数。序号函数说明1len(s)返回字符串的长度2str(s)返回任意类型s的字符串形式3chr(x)返回ASCII值x对应的字符4ord(s)返回字符s对应的ASCII值5hex(x)返回整数x对应十六进制数的小写形式字符串6oct(x)返回整数x对应八进制数的小写形式字符串2.3.3字符串基本操作七、字符串常用处理方法Python语言中字符串的方法很多,这里介绍一些常用的方法。序号方法说明1strip()删除字符串两端空格后形式新的字符串2lstrip()删除字符串左端空格后形式新的字符串3rstrip()删除字符串右端空格后形式新的字符串4lower()将字符串中所有字母转换成小写5upper()将字符串中所有字母转换成大写6capitalize()将字符串中首字母转换成大写,其余字母转换成小写7find(substr[,start[,end]])返回substr子串在字符串中的位置8count(substr[,start[,end]])返回substr子串在字符串中的出现的次数9replace(old,new[,count])用字符串new替换old,可选参数count表示被替换的子串个数2.3.4format()方法的基本使用一、format()方法的使用

在Python中,format方法是一种用于字符串格式化的强大工具。它允许将变量或表达式插入到字符串中,并能根据需要进行格式化。

Python推荐使用format()方法整合字符串,语法格式如下:

<模板字符串>.format(<用逗号分隔的参数>)2.3.4format()方法的基本使用一、format()方法的使用

说明:

1.模板字符串是一个由字符串和槽组成的字符串,用于控制字符串和变量的显示效果。槽用大括号“{}”表示,对应format()方法中用逗号分隔的参数。例如:在学习强国APP学习平台封面有一句孔子的诗句如下:>>>“孔子曰:学而时习之,{}”.format(“不亦说乎”)显示:孔子曰:学而时习之,不亦说乎。2.3.4format()方法的基本使用一、format()方法的使用

2.如果模板字符串中有多个槽,且槽内没有指定序号,则按照槽出现的顺序分别对应format()方法中不同参数。例如:>>>“{}曰:学而时习之,{}”.format(“孔子”,“不亦说乎”)显示:孔子曰:学而时习之,不亦说乎。2.3.4format()方法的基本使用一、format()方法的使用

3.通过format()方法中参数的序号可以在模板字符串的槽中指定参数的使用位置,参数从0开始编号。例如:>>>“{1}曰:学而时习之,{0}”.format(“不亦说乎”,“孔子”)显示:孔子曰:学而时习之,不亦说乎。2.3.4format()方法的基本使用一、format()方法的使用

4.如果希望在模板字符串中直接输出大括号“{}”,则可以使用“{{”表示“{”,使用“}}”表示“}”。例如:>>>“{1}曰:{{学而时习之,{0}}}。”.format(“不亦说乎”,“孔子”)显示:孔子曰:{学而时习之,不亦说乎。}2.3.4format()方法的基本使用二、format()方法的格式控制

format()方法中模板字符串的槽除了包括参数序号,还可以包括格式控制信息,语法格式如下:

{<参数序号>:<格式控制标记>}

其中,格式控制标记用来控制参数显示时的格式。序号字段说明1<填充>指宽度内除了参数外的字符。2<对齐>指参数在宽度内输出时的对齐方式,分别使用<、>、^三个符号表示左对齐、右对齐和居中对齐。3<宽度>指当前槽的设定输出字符宽度,如果该槽对应的format()参数长度比<宽度>设定值大,则使用参数实际长度,如果该值的实际位数小于指定宽度,则位数将被默认以空格补充。4<,>用于显示数字类型的千位分隔符,适用于整数和浮点数。5<.精度>对于浮点数,精度表示小数部分输出的有效位数;对于字符串,精度表示输出的最大长度。6<类型>整数类型包括:b、c、d、o、x、X;浮点类型包括:e、E、f、%。2.4不同数据类型的转换Python提供了内置转换函数用来在数据类型之间进行转换。序号转换函数说明例子1bool(x)返回x转换的布尔值bool(3),bool(0)2int(x)返回x转换的整数int(“3”),int(4.3)3float(x)返回x转换的浮点数float(“3.14”),float(7)4complex(real,imag)或complex(x)创建real+imagj的复数,或者将字符串转换为复数complex(2,5.7),complex(“2+3j”5str(x)返回x转换的字符串str(246),str(3.14)6ord(x)返回字符x对应的ASCII值ord(“a”),ord(“A”)7chr(x)返回整数x对应的ASCII值对应的字符chr(97),chr(65)8bin(x)返回整数x转换的二进制字符串bin(246)9oct(x)返回整数x转换的八进制字符串oct(246)10hex(x)返回整数x转换的十六进制字符串hex(246)2.4不同数据类型的转换例2-17print(bool(3),bool(0))print(int(“3”),int(4.3))print(float(“3.14”),float(7))print(complex(2,5.7),complex(“2+3j”))print(str(246),str(3.14))print(ord(“a”),ord(“A”))print(chr(97),chr(65))print(bin(246))print(oct(246))print(hex(246))思维导图Python数据分析及应用第三章程序的控制结构目录

3.1程序的基本结构3.2程序的选择结构3.3程序的循环结构3.4程序的异常处理3.5Random库的使用知识目标:掌握程序的三种基本结构:顺序结构、选择结构、循环结构,掌握单分支、二分支和多分支三种选择结构,掌握for循环、while循环两种循环结构。技能目标:理解分支的概念及程序控制的关系,掌握二分支决策方法,掌握多分支决策方法,掌握for循环的使用方法,掌握while循环的使用方法。素质目标:具备一定的决策能力和规划能力,具备发展的眼光,培养全局思维,能够合理规划自己的职业生涯。学习目标

税收取之于民、用之于民,我们在履行纳税的法定义务时,也在享受税收给整个社会带来的积极影响。以个人所得税为例,目前个人所得税的起征点是5000,并且采用差额累进制。只有收入超过5000元时我们才需要缴纳个人所得税,收入越高需要缴纳的税款越多,并且国家还考虑到抚养小孩和赡养老人的压力,提高了个人所得税的起征点。目前,个人工资扣税标准规定:月薪5000元以下免税,5000-8000元税率为3%,8000-17000元为10%,17000-30000元为20%,30000-40000元为25%,40000-60000元为30%,60000-85000元为35%,85000元以上为45%。如何设计一个Python程序计算个人所得税?本章导读

结构化编程鼓励将复杂问题分解成一系列简单、明确的步骤,使得代码易于理解。清晰的模块划分和逻辑流程使得整个程序的结构清晰,目标明确,便于理解和维护。采用结构化程序设计方法可以显著提高程序的可读性、可维护性、可靠性、效率以及适应变化的能力。Python的程序控制结构主要包括顺序结构、选择结构(分支结构)和循环结构。这三种控制结构也是结构化程序设计的核心,与之相对的是面向对象程序设计。C语言就是结构化语言,而C++、Java或者Python等都是面向对象的语言。调试Python程序时,经常会报出一些异常。一方面可能是写程序时由于疏忽或者考虑不全造成了错误,这时就需要根据异常分析程序结构,改正错误;另一方面,有些异常是不可避免的,但我们可以对异常进行捕获处理,防止程序终止。本章导读1.顺序结构顺序结构的执行顺序是自上而下,依次执行。顺序结构的程序设计是最简单的,它表示程序按照代码的书写顺序从上到下依次执行,只要按照解决问题的顺序写出相应的语句就行。3.1程序的基本结构程序由语句构成,根据项目或者算法的实际需求执行语句,程序的具体执行是由流程控制语句实现的。结构化程序设计分三种基本结构:顺序结构、选择结构(分支结构)、循环结构。采用结构化程序设计方法,程序结构清晰,易于阅读、测试、排错和修改。由于每个模块执行单一功能,模块间联系较少,使程序编制比过去更简单,程序更可靠,而且增加了可维护性,每个模块可以独立编制、测试。ABC图3-1顺序结构的流程图2.选择结构选择结构(分支结构)是程序根据条件表达式的值来决定执行哪一部分的代码。顾名思义,当程序到了一定的处理过程时,遇到了很多分支,无法按直线走下去,程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的一个分支执行,选择结构有单分支、二分支和多分支三种形式。3.1程序的基本结构

图3-2选择结构的流程图AB条件a)FTA条件b)FT3.循环结构循环结构用于重复执行一段代码,直到满足某个条件为止。语句不断的重复,被称作循环,循环结构通常用来表示反复执行一个程序或某些操作的过程,直到某条件为假(或为真)时才可终止循环。在循环结构中最主要的是:什么时候可以执行循环?出现哪些操作需要循环执行?3.1程序的基本结构图3-3循环结构的流程图分支A条件FT3.2程序的选择结构选择结构顾名思义,当程序到了一定的处理过程时,遇到了很多分支,无法按直线走下去,程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的一个分支执行。选择结构有单一条件分支选择结构(if)、二条件分支选择结构(else从句)、多条件分支选择结构(elif子句)三种形式。在Python中,选择结构通常使用if、elif和else语句来实现。这些语句允许程序根据条件测试的结果执行不同的代码块。在选择结构中,if语句用来检验一个条件,如果条件为真,我们运行一块语句(称为if-块),否则我们处理另外一块语句(称为else-块),如果有多个分支选择,再根据分支条件,选择对应的语句块处理(称为elif-块)。else从句和elif子句是可选的。选择结构由三部分组成:关键字本身,用于判断结果真假的条件表达式,以及当表达式为真(True)或者非零时执行的代码块。3.2程序的选择结构选择结构顾名思义,当程序到了一定的处理过程时,遇到了很多分支,无法按直线走下去,程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的一个分支执行。选择结构有单一条件分支选择结构(if)、二条件分支选择结构(else从句)、多条件分支选择结构(elif子句)三种形式。在Python中,选择结构通常使用if、elif和else语句来实现。这些语句允许程序根据条件测试的结果执行不同的代码块。在选择结构中,if语句用来检验一个条件,如果条件为真,我们运行一块语句(称为if-块),否则我们处理另外一块语句(称为else-块),如果有多个分支选择,再根据分支条件,选择对应的语句块处理(称为elif-块)。else从句和elif子句是可选的。选择结构由三部分组成:关键字本身,用于判断结果真假的条件表达式,以及当表达式为真(True)或者非零时执行的代码块。3.2程序的选择结构选择结构当条件为真时,执行相应的代码块。如何判断条件的真假?在Python中,任何非零,非空对象都是真,除真和None以外其他的都是假(False)。条件判断使用关系运算符和逻辑运算符来表示。Python中的比较运算符,如表3-1所示;Python中的逻辑运算符,如表3-2所示。操作符描述x

==

yx等于yx!=

yx不等于yx>

yx大于yx<

yx小于yx>=

yx大于等于yx<=

yx小于等于yx

is

yx和y是同一个对象x

isnot

yx和y不是同一个对象x

in

yx是y的成员x

notin

yx不是y的成员表3-1“Python中的比较运算符表3-1“Python中的比较运算符运算符逻辑表达式描述andxandy布尔"与"-如果x为False,xandy返回False,否则它返回y的计算值orxory布尔"或"-如果x是True,它返回True,否则它返回y的计算值notnotx布尔"非"-如果x为True,返回False。如果x为False,它返回True3.2.1单分支选择结构3.2程序的选择结构if语句是最基本的条件判断结构,用于测试一个条件是否为真(True)。如果条件为真,则执行紧跟在if后面的代码块。单分支选择结构的if语句语法格式如下:if<条件>:<语句块1>if语句根据给出的条件,决定下一步怎么做?如果条件为真(True),就执行语句块1中的代码,为假(False)就不执行语句块1中的代码。无论条件为真或者为假,控制都会转到if语句后的下一条语句。实例3-1计算个人所得税(单分支示例),假设月薪5000元以上税率为3%。salary=eval(input("请输入月薪:"))tax=0ifsalary>5000:tax=salary*0.03income=salary-taxprint("月薪:{}元,本月缴税:{}元,实际收入:{}元".format(salary,tax,income))程序运行结果:请输入月薪:6899月薪:6899元,本月缴税:206.97元,实际收入:6692.03元在这个程序中,用户输入月薪,然后判断月薪是否大于5000元,如果月薪大于5000元,计算所得税为月薪的3%。在这个例子中,使用eval(input())语句函数取得用户输入的月薪。3.2.2二分支选择结构3.2程序的选择结构二分支选择结构增加了else语句,根据判断条件结果而选择不同向前路径的运行方式。if-else语句用于测试一个条件,如果该条件为真,则执行if代码块;否则,执行else代码块。在实例3-1计算个人所得税(单分支示例)中,用户输入月薪,然后判断月薪是否大于5000元,如果月薪大于5000元,使得if语句的条件为真,程序执行语句块1中的代码,计算所得税为月薪的3%。如果月薪小于或者等于5000元,可以用else语句增加另外的选择。二分支选择结构的if-else语句语法格式如下:if<条件>:<语句块1>else:<语句块2>实例3-2计算个人所得税(二分支示例),假设月薪5000元以上税率为3%,月薪小于或者等于5000元税率为0。salary=eval(input("请输入月薪:"))ifsalary>5000:tax=salary*0.03else:tax=0income=salary-taxprint("月薪:{}元,本月缴税:{}元,实际收入:{}元".format(salary,tax,income))程序运行结果:请输入月薪:4500月薪:4500元,本月缴税:0元,实际收入:4500元二分支选择结构紧凑形式的if-else语句语法格式如下:<表达式1>if<条件>else<表达式2>实例3-3计算个人所得税(二分支紧凑形式示例),假设月薪5000元以上税率为3%,月薪小于或者等于5000元税率为0。salary=eval(input("请输入月薪:"))print("本月缴税:",salary*0.03)if(salary>5000)elseprint("本月缴税:",0)程序运行结果:请输入月薪:6899本月缴税:206.973.2.3多分支选择结构二分支选择结构的if-else语句只有两种选择,如果有多个条件需要多种选择,可以使用elif语句。elif语句(是elseif的缩写),它检查多个表达式是否为真,并在为真时执行特定代码块中的代码。如果所有的if和elif条件都不满足,则执行最后的else部分。和else一样,elif声明是可选的,不同的是,if语句后最多只能有一个else语句,但可以有任意数量的elif语句。3.2程序的选择结构多分支选择结构的if-elif-else语句语法格式如下:if<条件1>:<语句块1>elif<条件2>:<语句块2>……elif<条件N-1>:<语句块N-1>else:<语句块N>3.2.3多分支选择结构3.2程序的选择结构实例3-4计算个人所得税(多分支示例)月薪5000元以下免税,5000-8000元税率为3%,8000-17000元为10%,17000-30000元为20%,30000-40000元为25%,40000-60000元为30%,60000-85000元为35%,85000元以上为45%。salary=eval(input("请输入月薪:"))ifsalary<=5000:tax=0elifsalary<=8000:tax=(salary-5000)*0.03elifsalary<=17000:tax=(salary-8000)*0.1+3000*0.03elifsalary<=30000:tax=(salary-17000)*0.2+3000*0.03+9000*0.1elifsalary<=40000:tax=(salary-30000)*0.25+3000*0.03+9000*0.1+13000*0.2elifsalary<=60000:tax=(salary-40000)*0.3+3000*0.03+9000*0.1+13000*0.2+10000*0.25elifsalary<=850000:tax=(salary-60000)*0.35+3000*0.03+9000*0.1+13000*0.2+10000*0.25+20000*0.3else:tax=(salary-85000)*0.45+3000*0.03+9000*0.1+13000*0.2+10000*0.25+20000*0.3+25000*0.35income=salary-taxprint("月薪:{}元,本月缴税:{}元,实际收入:{}元".format(salary,tax,income))程序运行结果:请输入月薪:4500月薪:4500元,本月缴税:0元,实际收入:4500元3.2.3多分支选择结构如果将计算表达式中的数值预先计算出,实例3-4可以改写为简化形式。3.2程序的选择结构实例3-5计算个人所得税(多分支示例)简化形式。salary=eval(input("请输入月薪:"))ifsalary<=5000:tax=0elifsalary<=8000:tax=salary*0.03-150elifsalary<=17000:tax=salary*0.1-710elifsalary<=30000:tax=salary*0.2-2410elifsalary<=40000:tax=salary*0.25-3910elifsalary<=60000:tax=salary*0.3-5910elifsalary<=850000:tax=salary*0.35-8910else:tax=salary*0.45-17410income=salary-taxprint("月薪:{}元,本月缴税:{}元,实际收入:{}元".format(salary,tax,income))程序运行结果:请输入月薪:8000月薪:8000元,本月缴税:90.0元,实际收入:7910.0元实例3-6判断股票是否涨停或者跌停(多分支示例)涨停和跌停的设定是根据股票价格波动的情况来确定的。在中国A股市场中,涨停价格和跌停价格的计算分别为:涨停价格=前一个交易日收盘价×1.1跌停价格=前一个交易日收盘价×0.93.2程序的选择结构如果某只股票的前一个交易日收盘价为10元,那么当天的涨停价为11元,跌停价为9元close=eval(input("请输入股票的前一个交易日收盘价:"))nowprice=eval(input("请输入股票交易价格:"))top=close*1.1low=close*0.9ifnowprice<low:print(“股票交易价格{}小于跌停价{},股票不能在当前价格交易。”.format(nowprice,low))elifnowprice==low:print(“股票交易价格{}等于跌停价{},股票交易将停盘。”.format(nowprice,low))elifnowprice==top:print(“股票交易价格{}等于涨停价{},股票交易将停盘。”.format(nowprice,top))elifnowprice>top:print(“股票交易价格{}大于涨停价{},股票不能在当前价格交易。”.format(nowprice,top))else:print(“股票可以正常交易。”.format(nowprice,top))程序运行结果:请输入股票的前一个交易日收盘价:51请输入股票交易价格:58股票交易价格58大于涨停价56.1,股票不能在当前价格交易。3.3 程序的循环结构程序的循环结构是编程语言中用于执行重复任务的一类控制结构。循环允许一段代码多次执行,直到满足某个终止条件。怎么样才能重复多次呢?循环语句在某种条件下,循环的执行某段代码块,并在符合条件的情况下跳出该段循环,其目的重复的处理相同任务,Python循环语句主要有for语句和while语句。循环结构For语句While语句特殊的流程控制语句Break语句Continue语句(一)for语句基础语法3.3.1for语句1.for语句语法格式一for迭代变量in遍历序列:执行语句......(1)执行过程:依次将‘遍历序列’的每一个值传递给‘迭代变量’,每传递一个值时执行一次内部语句,直至‘遍历序列’的最后一个元素,for语句退出。(2)遍历序列可以是字符串(str),列表(list),元组(tuple)…。实例3-7遍历字符串。strs=”ThisisPython”forcinstrs:print(c,end="*")程序运行结果:T*h*i*s**i*s**P*y*t*h*o*n*实例3-8遍历股票过去5个交易日的收盘价列表。closing=[52.45,55.20,53.75,56.50,53.80]forpriceinclosing:print(price)程序运行结果:52.4555.253.7556.553.8(一)for语句基础语法3.3.1for语句2.for语句语法格式二for迭代变量inrange(start,end[,step]):

执行语句......参数说明:start:初始值(默认为‘0’)end:终止值step:步进值(默认为‘1’),即每次重复操作时比上一次操作所增长的数值。执行过程:第一步:将start值传递给‘迭代变量’,然后执行一次内部语句;第二步:在start的基础上+step再次传递给‘迭代变量’,如果‘迭代变量’的值小于‘end’的值,则再次执行内部语句,否则退出for循环。实例3-9输出九九乘法表。foriinrange(1,10):forjinrange(1,i+1):print("{}*{}={:2}".format(j,i,j*i),end="")print()程序运行结果:1*1=11*2=22*2=41*3=32*3=63*3=91*4=42*4=83*4=124*4=161*5=52*5=103*5=154*5=205*5=251*6=62*6=123*6=184*6=245*6=306*6=361*7=72*7=143*7=214*7=285*7=356*7=427*7=491*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=641*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81(一)for语句基础语法3.3.1for语句2.for语句语法格式二实例3-10输出100以前的偶数foriinrange(0,101,2):print(i,end="")程序运行结果:024681012

温馨提示

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

评论

0/150

提交评论