PYTHON基础知识-核心对象、列表、元组、文件课件_第1页
PYTHON基础知识-核心对象、列表、元组、文件课件_第2页
PYTHON基础知识-核心对象、列表、元组、文件课件_第3页
PYTHON基础知识-核心对象、列表、元组、文件课件_第4页
PYTHON基础知识-核心对象、列表、元组、文件课件_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

1、PYTHON基础知识12020年2月第1页,共57页。1 Python的简介 2 数值3 字符串 4 列表5 元组 6 文件PYTHON课程主要内容2第2页,共57页。1.1 PYTHON语言简介3PYTHON应用网络爬虫Scrapy数据分析数学计算第3页,共57页。1.1 PYTHON语言简介4PYTHON是什么Python是一门解释型的支持面向过程和面向对象编程的跨平台的脚本语言。是通用语言。官网:/第4页,共57页。1.1 PYTHON语言简介5Python 是一门高级语言。Python特点:可拓展可移植语法清晰易维护高效原型所有现行操作系统支持。(python解释器)PYTHON语言的

2、优势:强制可读性 较少的底层语法元素多种编程方式 支持中文字符 C代码量的10% 语法简洁第5页,共57页。Anaconda3 Spyder基于Python3.5+主页:https:/www.continuum.io/downloads其中包含了Spyder开发环境1.2 PYTHON开发环境-Anaconda第6页,共57页。你可能已经安装了 Python,那么为什么还需要 Anaconda?1. Anaconda 附带了一大批常用数据科学包,它附带了 conda、Python 和 150 多个科学包及其依赖项。因此你可以立即开始处理数据。2.管理包Anaconda 是在 conda(一个包

3、管理器和环境管理器)上发展出来的。在数据分析中,你会用到很多第三方的包,而conda(包管理器)可以很好的帮助你在计算机上安装和管理这些包,包括安装、卸载和更新包。3.管理环境不同的项目建立不同的运行环境1.2.1 Anacodna第7页,共57页。1.2.1 Anacodna第8页,共57页。2.1、两种数值类型(1)整型:没有小数点的数字例如:123, 89, 66在Python中,可对整数执行加(+)减(-)乘(*)除(/)运算。 (2)浮点型:带有小数点的数字小数点可出现在数字的任何位置例如:67.3, 57.0, 3.141592667.是哪种类型?2 Python核心对象-数值第9

4、页,共57页。2.2、算数运算符 两个操作数通过运算符“+、-、*、/、*”连接实现加、减、乘、除和幂运算。操作数和运算符组合而成的形式称为表达式。注意:在这些示例中,空格不影响Python计算表达式的方式,它们的存在旨在让你阅读代码时,能迅速确定先执行哪些运算例如:加法:2+3, 7.456+8, 123+8.9, 17.8+3.6减法:98-6,56-43.25, 123.7-67, 4.5-3.7乘法:26*12, 3.5*3, 6*8.9, 1.2*5.9除法:13/35, 6.5/25, 87.3/12, 76.6/34.7求幂:2*3, 34.5*3, 4*3.6, 7.6*8.5

5、注:(1)如果两个数值运算,操作数都是整数则结果是整数,否则如果其中之一是浮点数则结果是浮点数。 (2)0不能做除数2 Python核心对象-数值第10页,共57页。2.3、变量定义:变量是一个名称,对应存储在内存中的一个数据,变量的目的是为了便于运算。变量的命名规则:使用字母、数字和下划线构成,但是开始字符不能是数字。常见变量名规则:(1)驼峰命名:除一个单词外,其他单词的第一个字母是大写。例如:applePie, firstBook,theGoodBoy但不能以数字打头,例如,可将变量命名为message_1,但不能将其命名为1_message。(2)下划线命名:apple_pie, fi

6、rst_book, the_1_road注:(1)变量命名区分大小写;boy Boy (2)python关键字不能做变量名,例如:for, while等 (3)变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好。 (4) 慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和02 Python核心对象-数值第11页,共57页。关键字import keywordand, as, assert, break, class, continue, def, del, elif, else, e

7、xcept, exec, finally, for, from, global, if, import, in, is, lambda, not, or, pass, print, raise, return, try, while, with, yieldegmessage = Hello Python world!print(message)Hello Python world!2 Python核心对象-数值12第12页,共57页。2.4、abs、int与round函数(1)abs(x)函数绝对值函数,即数学运算中的|x|。例如:abs(-5)结果是5, abs(-2.56)结果是2.56

8、, abs(80)结果是80, abs(23*-7.5)结果是172.5(2)int(x)函数int函数保持整数不变,将浮点数的小数部分丢弃,转换为整数类型。例如:int(9.5)结果为9 int(-8.3)结果为-8(3)round(x,n)函数round函数,将x的值四舍五入,然后保留n位小数。如果round只有一个参数,则是将x四舍五入去掉小数。例如:round(2.7) 结果是3, round(2.317,2)结果为2.32,round(2.317,1)结果是2.3注:round函数的x与n之间的关系,x四舍五入到小数点后n位,若n没有表示四舍五入只保留整数。2 Python核心对象-

9、数值第13页,共57页。2.5、增量赋值增量赋值表达式:var += n上述增量赋值表达式的意思是将var增加n之后再赋值给var。即:var=var+n;除了加法增量赋值之外还有:减法增量赋值:var -= n 乘法增量赋值:var *= n除法增量赋值:var /= n 求幂增量赋值:var *= n例如:若a=90a += 10结果是100a -=3 结果是87a *=5 结果是450a/=9 结果是10a*=2 结果是81002 Python核心对象-数值注:1)增量赋值运算符是两个符号的组合, 中间不能有空格。 2)除法增量赋值右边的操作符n不能是0第14页,共57页。2.6、两个特

10、殊的整型运算符(1)整除运算符/对比与除法运算符/,整除运算符得到的结果是个去掉小数的整数。例如:5/2结果是2,但是5/2的结果是2.5(2)求余运算符%求余运算符,运算结果是被除数除以除数得到的余数。例如:5%2结果是1, 注:(1)注意整除运算符合除法运算符的区别。 (2)求余运算符的结果是除法运算的余数,且结果是非负的,即如果余数是负数则加上除数就得到求余的结果。2 Python核心对象-数值第15页,共57页。2.7、括号与优先级括号可以用来清晰地说明表达式的含义。当表达式中有括号时,算数运算符的执行顺序优先级如下:括号中的部分优先计算(由内而外)幂运算乘法、除法、求余运算加法和减法

11、多个同级的运算符之间从左向右进行运算,例如8/2*3等价于(8/2)*3.注:好的编程习惯是尽可能地使用括号,这样就不需要记住优先级规则2 Python核心对象-数值第16页,共57页。2.8、三种类型错误在程序开发期间,经常会遇到各自各样的错误,概况起来,错误分3类:(1)语法错误文法和标点错误称为语法错误,例如:int(1),这种错误在程序编辑时就会被提示。(2)运行时异常一些语句的错误不是语法错误,但是会在运行时报错,使程序终止。例如:x未创建时就计算x+=1, 8/0发生除0错误等等。(3)逻辑错误程序没有语法和运行时错误,可以运行,但是运行结果与设计不一致,即出现了逻辑错误。注:逻辑

12、错误发生频率最高,因此需要编程之前严格设计,一旦出错可以使用断点检错的方式debug。2 Python核心对象-数值第17页,共57页。2.9、内存中的对象及垃圾回收机制思考如下两行代码:n=5n=7右图是内存中的数值对象,变量n是指向数值内存的引用。当执行n=5时,程序在内存中分配了一块区域存放数值5,当执行了n=7时,内存又分配了一块区域存放数值7,但是引用指向了7,数值5占据的内存被丢弃了,最终Python会通过垃圾回收机制将没有引用指向的孤立内存回收。2 Python核心对象-数值第18页,共57页。3.1、字符串字面量字符串字面量是字符构成的一个序列,并视其为一个整体。这里的字符是所

13、有的字符,包括字母、数字、标点符号、空格和其他特殊字符(参考ascii码表)注: (1)字符串字面值是用双引号“”或者单引号括起来的字符序列。但是引号必须配对,双引号和单引号不能混用。(2)如果字符串中有单引号,则外部要用双引号,如果内容有双引号,则外部要用单引号。3 Python核心对象-字符串第19页,共57页。(3)在用单引号括起的字符串中,如果包含撇号,就将导致错误。这是因为这会导致Python将 第一个单引号和撇号之间的内容视为一个字符串,进而将余下的文本视为Python代码,从而引发错误。 Egmessage = One of Pythons strengths is its di

14、verse community. print(message) 结果File apostrophe.py, line 1 message = One of Pythons strengths is its diverse community. SyntaxError: invalid syntax 3 Python核心对象-字符串20第20页,共57页。3 Python核心对象-字符串操作符21第21页,共57页。3.2、切片和索引获得字符串的子串或者寻找某个子串在字符串中的位置称为求字符串的子串和索引。例如:对于字符串字面值“spam & eggs”一共11个字符。(1)子串(切片):若st

15、r是一个字符串,则strm:n代表了从第m个字符开始到第n-1个字符结束的所有字符,包括第n-1个字符。 当mn, strm:n?Example:“spam & eggs”2:73 Python核心对象-字符串第22页,共57页。3.2、切片和索引获得字符串的子串或者寻找某个子串在字符串中的位置称为求字符串的子串和索引。例如:对于字符串字面值“spam & eggs”一共11个字符。(2)索引:若str是一个字符串,则str.find(substr)和str.rfind(substr)是在str中分别从左和从右开始寻找第一次出现substr的位置,如果没有则返回-1。注:(1)字符串在内存中是

16、顺序存储的,可以使用下标索引每一个字符; (2)索引下标是从0开始。 (3)不可对字符串的索引赋值,即字符串中的字符无法直接修改3 Python核心对象-字符串第23页,共57页。3.3、反向索引 除了正向索引之外,Python还支持自右向左使用负数进行索引,通过反向索引,最右端的字符索引值是-1,它左边的是-2,依次类推。例如:对于字符串字面值“spam & eggs”一共11个字符。通过strm:n寻找子串,这里m和n值都是负数,m print(Languages:nPythonnCnJavaScript) Languages: Python C JavaScript 注:转义字符序列本质

17、上应该被认为是一个字符,只是表示形式有点特别而已。4 Python输出第34页,共57页。4.2、域内输出对齐程序经常需要以固定的宽度一列一列显示输出。ljust(n):表示输出域宽为n,并且左对齐rjust(n):表示输出域宽为n,并且右对齐center(n):表示输出域宽为n,并且是居中对齐4 Python输出第35页,共57页。Python中的对象用于代表一种数据类型的任意实例。Python的核心对象是数值、字符串、列表、元组、文件。列表直观印象是: 1, 2, 3, qeqw 元组直观印象是:(fasd, 34, 67, 1.8)文件的直观印象是文本文件和二进制文件等5、PYTHON核

18、心对象-列表第36页,共57页。5.1 列表对象在Python的处理中,接触最多的对象就是列表了,列表是Python中的一个有序序列,其中的对象可以是任何类型,并不要求类型必须一致。语法:使用中括号将所有元素括起来,并且每个元素之间用逗号隔开。举例:1,2,3,”qwert” 1.3,4.5, “erwef”注: (1)列表对象中的元素可以类型不一致; (2)元素之间的分隔符是逗号; (3)元素列表用方括号括起来;5、PYTHON核心对象-列表第37页,共57页。 (4)列表重点元素可以使用下标索引,例如list2,下标序号从0开始egbicycles = trek, cannondale,

19、redline, specializedprint(bicycles1)print(bicycles3)cannondalespecialized5、PYTHON核心对象-列表38第38页,共57页。5.2、列表常见操作(1)列表中元素个数:len(list) cars = bmw, audi, toyota, subarulen(cars)4(2)最大值:max(list) 要求元素类型相同(3)最小值:min(list) 要求元素类型相同(4)求和:sum(list) 要求元素类型必须是数字(5)对象出现次数:list.count(elem) (6)一个对象首次出现的索引值:list.in

20、dex(elem)5、PYTHON核心对象-列表第39页,共57页。(7)逆序:list.reverse()cars = bmw, audi, toyota, subaruprint(cars)cars.reverse()print(cars)bmw, audi, toyota, subarusubaru, toyota, audi, bmw5、PYTHON核心对象-列表40第40页,共57页。(8)清空列表:list.clear()(9)末端插入对象:list.append()motorcycles = honda, yamaha, suzukiprint(motorcycles)motor

21、cycles.append(ducati)print(motorcycles)honda, yamaha, suzukihonda, yamaha, suzuki, ducati5、PYTHON核心对象-列表41第41页,共57页。(10)末端插入新列表:list.extend(newList)(11)删除给定索引位置上的元素 del listindexmotorcycles = honda, yamaha, suzukiprint(motorcycles)del motorcycles0print(motorcycles)honda, yamaha, suzukiyamaha, suzuki

22、5、PYTHON核心对象-列表42第42页,共57页。(12)删除第一次出现的对象 list.remove(elem)(13)在给定索引位置上插入新元素list.insert(ix, elem)motorcycles = honda, yamaha, suzukimotorcycles.insert(0, ducati)print(motorcycles)ducati, honda, yamaha, suzuki5、PYTHON核心对象-列表43第43页,共57页。(14)列表连接:list1+list2 相当于list1.extend(list2)(15)列表重复:list*n 将列表lis

23、t重复n次,变成一个新列表(16)修改列表元素motorcycles = honda, yamaha, suzukiprint(motorcycles)motorcycles0 = ducatiprint(motorcycles)honda, yamaha, suzukiducati, yamaha, suzuki5、PYTHON核心对象-列表44第44页,共57页。(17)使用方法 sort() 对列表进行永久性排序cars = bmw, audi, toyota, subarucars.sort()print(cars)audi, bmw, subaru, toyota现在,汽车是按字母顺

24、序排列的,再也无法恢复到原来的排列顺序。(18)使用函数 sorted() 对列表进行临时排序cars = bmw, audi, toyota, subaruprint(cars)print(sorted(cars)print(cars)bmw, audi, toyota, subaruaudi, bmw, subaru, toyotabmw, audi, toyota, subaru调用函数 sorted() 后,列表元素的排列顺序并没有变。如果你要按与字母顺序相反的顺序显示列表5、PYTHON核心对象-列表45第45页,共57页。5.3 列表切片切片是由冒号语法表示的子列表。用法和字符串的

25、切片非常类似。(1)listm:n表示下标从m到n-1的子序列。players = charles, martina, michael, florence, eliprint(players0:3)charles, martina, michael(2)list:表示整个列表(3)listm:表示下标从m之后的所有元素组成的列表players = charles, martina, michael, florence, eliprint(players2:)michael, florence, eli(4)List:m表示下标到m-1之前的元素组成的列表players = charles, m

26、artina, michael, florence, eliprint(players:4)charles, martina, michael, florence5、PYTHON核心对象-列表第46页,共57页。5.4 split和join方法(1)split方法(从字符串到列表)split方法将一个字符串变成其子串组成的列表。例如:str = “12,rew,yr,3421312k,5.6”str.split(“,”)结果是“12”,”rew”,” yr”, “3421312k”,”5.6”(2)join方法(从列表到字符串)join方法将一个字符串列表中的所有子串元素,通过分割符连接成一个

27、字符串。语法:”分隔符”.join(list)例如:slist = “111”,”222”,”5.6”“,”.join(slist)结果是”111,222,5.6”注:(1)任何字符都可以做分隔符 (2)空白字符串指:由换行符、制表符和空格组成的任意字符串5、PYTHON核心对象-列表第47页,共57页。6.1、元组对象元组与列表类似,是元素的有序序列。元组与列表的区别是元组不可以直接修改,元组中的元素也不可以被删除,但是元组中的元素可以被索引、切片和连接。语法: (value0,value1,, valueN)索引和切片与列表一致。注:(1)元组中的元素不一定要类型一致 (2)元组中的元素可

28、以对应赋值,例如:(x,y,z)=(1,2,3) 结果x为1,y为2,z为36、PYTHON核心对象-元组第48页,共57页。6.2、列表和元组嵌套(1)列表嵌套列表列表中的元素还可以是列表。例如:list1=1,2,3, “ee”,”rr”,”uu”对嵌套元素的索引使用双下标,例如:list100为1,list10为1,2,3列表嵌套列表元素可以修改。 (2)列表嵌套元组列表中的元素是元组。例如:list1=(1,2,3),(6,7,8)对嵌套元素的索引使用双下标,例如:list11为元组(6,7,8),list101为2,列表嵌套元组是不可以修改列表和元组的元素。注: 列表可以被修改,但是

29、元组不可以修改。6、PYTHON核心对象-元组第49页,共57页。6.2、列表和元组嵌套(3)元组嵌套列表元组中的元素可以是列表。例如:tuple1 = (1,2,3,5,6,7)元组中的列表通过一维索引,而列表中的元素通过二维索引,例如tuple13为5,6,7,tuple131为6由于列表中的元素是可以修改的,所以元组的列表元素中的元素也可以修改, 例如tuple131=9(4)元组嵌套元组元组中元素可以是元组。例如:tu的ple2=(1,2,3),(5,6,7,8)通过一维下标可以索引元组中的嵌套元组,通过二维下标可以索引嵌套元组中的元素,例如:tuple20为(1,2,3),tuple

30、12为7。注意:元组中的元素是不能被修改的6、PYTHON核心对象-元组第50页,共57页。6.3、可变对象和不可变对象对象是一个可以存储数据并有可以操作数据的方法的实体。数值、字符串、列表和元组都是对象。当一个变量使用赋值语句创建出来之后,等号右边的值变成了内存中的一个对象,而变量引用那个对象。我们称能在内存中原地修改的对象为可变对象,例如列表。那些不能原地修改的对象成为不可变对象,例如数值、字符串和元组。当一个变量要改变它的值并且这个值是数值、字符串和元祖时,python会分配给其一个新的内存存储新值。03_fixedAndVaribles.py6、PYTHON核心对象-元组第51页,共57页。6.4、索引、切片越界Python中不允许列表和元组带个元素索引越界,但是在切片中可以允许索引越界。list1 = 1, 2, 3, 4, 5print(list17) print(list1-7) del list17 6、PYTHON核心对象-元组第52页,共57页。7.1、为什么需要文件Python程序中的数据都存储在内存中,当程序终止时就消失了。然而,如果要长期保存数据,就需要将数据存储到硬盘中。文件是数据在硬盘中存储的主要数据形式,文本文件后缀为.txt,二进制文件一般为.dat。7、PYTHON核心对象-文件第53页,共57页。7.2、打开文件的方式(1)读i

温馨提示

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

评论

0/150

提交评论