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

下载本文档

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

文档简介

第1章Python简介Chap01Python简介Chap02基础语法知识Chap03条件循环和其他语句Chap04字符串Chap05文件Chap06列表与元组Chap07函数Chap08字典Chap09异常Chap11面向对象程序设计Chap12数据库支持Chap13程序开发进阶全套PPT课件内容提纲1.1认识Python21.2Python安装13本章小结1.1认识Python什么是Python语言Python(发音[`paɪθən]),是一种面向对象的解释型计算机程序设计语言,由荷兰人吉多·范罗苏姆(GuidovanRossum)于1989年发明。Python的第一个公开发行版发行于1991年。Python语法简洁清晰,特色之一是强制用空白符(whitespace)作为语句缩进。Python具有丰富和强大的库。Python语言的优点与缺点Python语言的优点(1)可使用多种执行方式可以直接在命令行执行相关命令可以用函数的方式执行相关命令可以用面向对象的方式执行相关命令(2)语法简洁,且强制缩格(3)跨平台(4)开源开放(5)面向对象(6)丰富的第三方库Python语言的优点与缺点Python语言的缺点(1)速度慢。由于Python是解释型语言,所以它的速度会比C、C++慢一些,但是不影响使用。(2)强制缩进。如果读者有其他语言的编程经验,如C语言或者Java语言,那么Python的强(3)单行语句。由于Python在行尾可以不写分号,所以一行只能有一条语句。1.1.3为什么选择Python语言院校程序类课程的需要Python语言是一种解释型、面向对象的计算机程序设计语言,广泛用于计算机程序设计教学语言、系统管理编程脚本语言、科学计算等,特别适用于快速的应用程序开发。目前,各大院校已经越来越重视Python教学,Python已经成为最受欢迎的程序设计语言之一。1.1.3为什么选择Python语言高级语言发展的必然选择接近人类的自然语言“轻语法”程序设计语言适合应用于大数据、云计算、网络空间安全、人工智能程序开发。Python有丰富的开源库1.2Python的安装Windows环境下安装(略)Linux和UNIX环境下安装(略)本章小结本章展示了Python语言的优点,即多种执行方式、语法简洁且强制可读、跨平台、开源,不仅支持面向对象也支持面向过程的编程,具有多种图形界面开发工具;分析了院校编程课选择Python的原因;最后介绍了在Windows、Linux和UNIX环境下Python的安装。第2章基础语法知识内容提纲2.1数字和表达式22.2变量32.3语句4352.4获取用户输入12.5函数6372.6模块2.7程序的运行82.8字符串2.1数字和表达式数字类型整数与数学中的整数概念一致,没有取值范围限制运算有+(加)、-(减)、*(乘)、/(除)0x9a,

-0X89

(0x,

0X开头表示16进制数)0b010,

-0B101

(0b,

0B开头表示2进制数)0o123,

-0O456

(0o,

0O开头表示8进制数)//整除%取模**,pow()幂运算2.1数字和表达式数字类型浮点数带有小数点及小数的数字Python语言中浮点数的数值范围存在限制,小数精度也存在限制。这种限制与在不同计算机系统有关0.0,-77.,-2.1796e4,4.3e-3,9.6E5(科学计数法)2.1数字和表达式数字类型复数与数学中的复数概念一致,

z

=

a

+

bj,

a是实数部分,b是虚数部分,a和b都是浮点类型,虚数部分用j或者J标识。12.3+4j,-5.6+7j不同数字类型之间可以进行混合运算,运算后生成结果为最宽类型。数字类型的关系

三种类型存在一种逐渐“扩展”的关系:整数

->

浮点数

->

复数(整数是浮点数特例,浮点数是复数特例)

不同数字类型之间可以进行混合运算,运算后生成结果为最宽类型

123

+

4.0

=

127.0

(整数

+

浮点数

=

浮点数)数字类型的转换

三种类型可以相互转换函数:int(),

float(),

complex()

示例:

int(4.5)

=

4

(直接去掉小数部分)

float(4)

=

4.0

(增加小数部分)

complex(4)

=

4

+

0J数字类型的判断

函数:type(x),返回x的类型,适用于所有类型的判断

示例:>>>type(5)<class'int'>>>>type(5.0)<class'float'>>>>type(5.0+4j)<class'complex'>数字类型的运算运算符和运算函数

x+y

x-y

x*y

x/y

x//y

x%y

+x

-x

x**y

abs(x)

divmod(x,y)

pow(x,y)

操作含义

x与y之和

x与y之差

x与y之积

x与y之商不大于x与y之商的最大整数

x与y之商的余数

x

x的负值

x的y次幂

x的绝对值

(x//y,x%y)

x的y次幂所有的Python对象都支持比较操作Python中真和假的含义非零数字为真,否则为假非空对象为真,否则为假None对象为假比较的返回结果为True或False比较操作组合条件测试XandY:与运算XorY:或运算NotX:否运算应用举例比较操作

表达式表达式:程序中产生或计算新数据值的一行代码。>>>x=25#将数字25赋给变量x在使用变量前必须对其赋值,否则编译器报错2.2变量变量基本上就是代表(或者引用)某值的名字,用来表示程序中的某些“物体”。“物体”可以是多种实体,例如一个值、运行的另一个程序、一组数据或者一个文件。如:x=3这样的操作称为赋值(assignment),值3赋给了变量x。在变量被赋值之后,就可以在表达式中使用变量。如:3*x变量名可以包括字母、数字和下画线(_)。变量不能以数字开头,所以Plan9是合法变量名,而9Plan不合法。2.2变量变量的创建和赋值赋值一般形式:变量=表达式合法的变量赋值myvar=10myvar=myvar+5或者myvar+=5不合法的变量赋值10=myvarmyvar+10=15printmyvar=10

变量命名

命名:给程序元素关联一个标识符,保证唯一性

变量和常量都需要一个名字

命名规则:

大小写字母、数字和下划线的组合,但首字母只能是

大小写字母或下划线,不能使用空格。

中文等非字母符号也可以作为名字。

以下是合法命名的标识符:python_is_good_is_it_a_question_python_is_not_goodpython语言andelifimportraiseaselseinreturnassertexceptistrybreakfinallylambdawhileclassfornonlocalwithcontinuefromnotyielddefglobalorTruedelifpassFalseNone常量、变量与命名标识符对大小写敏感,不能与保留字相同Python

3.x保留字列表

(33个)2.3语句语句是什么?语句能执行各种各样的任务,有些语句可能会设定程序控制语句,而有些语句可能会要求获得一些资源。语句与表达式有什么区别?表达式有值,但语句没有值;表达式是某事,而语句是做某事(换句话说就是告诉计算机做什么)。print语句

赋值语句赋值语句赋值语句:使用等号给变量赋值circumference=2*math.pi*radiusInteger同步赋值语句:同时给多个变量赋值(先运算右侧N个表达式,然后同时将表达式结果赋给左侧)<变量1>,…,<变量N>=<表达式1>,…,<表达式N>x,y=10,20赋值语句例:将变量x和y交换采用单个赋值,需要3行语句:即通过一个临时变量t缓存x的原始值,然后将y值赋给x,再将x的原始值通过t赋值给y。采用同步赋值语句,仅需要一行代码:2.4获取用户输入系统提供了一个input内建函数,使用户可以在程序运行的过程中对变量赋值。>>>x=input("enterx:")enterx:123>>>x'123’在赋值过程中,x一定是一个字符型。>>>x=int(input("enterx:"))enterx:123>>>x123可以通过类型转换函数,改变其类型2.5函数函数的重要性:函数是为了代码最大程序地重用和最小化代码冗余而提供的基本程序结构。函数是一种设计工具,它能让程序员将复杂的系统分解为可管理的部件编程语言中的函数具有许多数学函数的特点,代表执行单独的操作。采用零个或多个参数作为输入。返回值(可能是复合对象)作为输出。2.5函数常用函数abs取绝对值int转换成整型float转换成浮点型round四舍五入pow乘方

2.6模块模块是一个包含所有定义的函数和变量的文件,扩展名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能,这也是使用python标准库的方法。模块用法如下:importmodule#loadthemodule标准Python包带有200多个模块,除math模块外,还能导入更多模块。>>>importmath>>>math.floor(32.9)322.6模块不希望在每次调用函数的时候,都要写上模块的名字。可以使用import命令的另外一种形式:>>>frommathimportsqrt>>>sqrt(9)3.02.7程序的运行通过命令提示符运行Python脚本C:\>pythonhello.py让脚本像普通程序一样运行双击桌面上的图标,可以直接运行程序。如果没有安装运行环境,就不可以直接运行,这就需要把py编译成exe文件才可以。注释#(通过井号进行注释)2.8字符串程序设计语言认为可以打印的字符序列就是字符串。单引号字符串和转义引号单引号与双引号没有区别使用反斜线(\)对字符串中的引号进行转义>>>'Let\'sgo!'"Let'sgo!"转义字符意义\(在行尾时)续行符\反斜杠符号\'单引号\"双引号\a响铃\b退格(Backspace)\e转义\000空\n换行\v纵向制表符\t横向制表符\r回车\f换页\oyy八进制数,yy代表的字符,例如:\o12代表换行\xyy十六进制数,yy代表的字符,例如:\x0a代表换行\other其它的字符以普通格式输出2.8字符串2.8字符串拼接字符串示例:>>>"Hello,”+"world!"'Hello,world!’>>>x=‘'Hello,”>>>y="world!">>>x+y'Hello,world!’2.8字符串字符串表示,str把值转换为合理形式的字符串,以便用户可以理解>>>a='Hello,kitty!'>>>str(a)'Hello,kitty!'

>>>c=str(a)>>>print(c)Hello,kitty!

有一空行

字符串表示,repr创建一个字符串,它以合法的Python表达式的形式来表示值>>>a='Hello,kitty!'>>>repr(a)"'Hello,kitty!'">>>a='Hello,kitty!\n'>>>b=repr(a)>>>print(b)'Hello,kitty!\n'长字符串、原始字符串和Unicode长字符串print('''Thisisaverylongstring.Itcontinueshere.Andit'snotoveryet."Hello,world!"Stillhere.''')运行结果如下:Thisisaverylongstring.Itcontinueshere.Andit'snotoveryet."Hello,world!"Stillhere.长字符串、原始字符串和Unicode原始字符串在原始字符串中输入的每个字符都会与书写的方式保持一致>>>print(r'C:\nowhere')C:\nowhere>>>print(r'C:\ProgramFiles\fnord\foo\bar\baz\frozz\bozz')C:\ProgramFiles\fnord\foo\bar\baz\frozz\bozz长字符串、原始字符串和UnicodeUnicode字符串Unicode字符串存储为16位Unicode字符>>>u'Hello,world!’u'Hello,world!’可以看到,Unicode字符串使用u前缀,就像原始字符串使用r一样。第3章条件、循环和其他语句内容提纲3.1print语句的应用23.2赋值语句33.3代码块与缩进4353.4条件语句13.5循环语句引例引例现实生活与工作中,我们经常可能会遇到这样的问题:需要统计某次考试各个分数段的学生人数。例如,优秀(85分以上)、及格(60分以上)和不及格(60分以下)的学生人数各是多少姓名分数李一56王二76张三84刘四63陈五89杨六52赵七90黄八79周九86吴十703.1print语句的应用print语句用于输出一些提示性语句或者结果。用print()在括号中加上字符串或变量,就可以向屏幕上输出指定的文字或变量值。在Python中打印输出变量a有以下几种方法:(1)直接使用print(a)>>>a="Hello">>>print(a)(2)在IDLE里面直接输入a>>>a="Hello">>>a(3)在输入a之后,可以使用下划线”_”再次输出,这里下划线表示最后一个表达式的值>>>a="Hello">>>_使用print函数时,也可以在语句中添加多个表达式,每个表达式用逗号分隔;在用逗号分隔输出时,print语句会在每个输出项后面自动添加一个空格。3.1print语句的应用3.2赋值语句赋值语句的作用是计算赋值号“=”右边表达式的值,然后把计算结果赋给左边的变量。3.2.1序列解包Python有一种一次给多个变量赋值的方法,称为序列解包(sequenceunpacking)。使用这种方式赋值,只需要一个表达式就可以完成多个变量赋值操作,可以使操作变得简单。>>>x,y,z=1,2,3>>>print(x,y,z)3.2赋值语句3.2.2链式赋值链式赋值就是同时将一个值赋给多个变量>>>x=y=z=1#同时给x,y,z赋值13.2.3增量赋值增强赋值语句等价于语句x+=yx=x+yx-=yx=x-yx*=yx=x*yx/=yx=x/y增量赋值,也就是自增或者自减等操作。基本操作如下。3.3代码块与缩进对于解释性语言Python,不能用括号来表示语句块,也不能用开始、结束标志符来表示,而是靠缩进来表示代码的逻辑。同一层次的语句必须有相同的缩进。分析以下两段代码的异同:3.4条件语句Python中用if语句来判断其后面的条件语句是否为真,如果为真,执行if后面的语句块,否则不执行。注意:(1)每个条件后面都要使用冒号(:),表示接下来是满足条件后要执行的语句块。(2)使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。(3)在Python中没有switch-case语句。3.4.1布尔变量某一个变量对应的值为布尔值时,称为布尔变量。布尔变量通常用于判定某个条件是否为真。常见的对应真值和假值的情况。(1)真值:True,所有的非空值。(2)假值:False,None,所有类型的数字0,空序列,空字典。3.4条件语句3.4.2

if语句最简单的if语句形式如下。If条件表达式:语句块

#注意语句块的缩进3.4条件语句【例3-1】已知两个整数x和y,按从小到大的顺序输出这两个数的值。程序如下:

x,y=1,2 ifx<y: print(x,y)#注意这里要缩进 ifx>y: print(y,x)#注意这里要缩进思考:如果有三个整数x,y,z,要求由小到大输出。如何实现?3.4条件语句3.4.3

else子句

因为else必须跟在if语句后面,而不能单独使用,所以称为子句。其语句形式如下。If

条件表达式1:

语句块1else

语句块2该语句的作用是当表达式1的值为True时,执行语句块1;否则执行else后面的语句块2。3.4条件语句【例3-1】已知两个整数x和y,按从小到大的顺序输出这两个数的值。用else子句实现程序如下:x,y=1,2 ifx>y: print(x,y) else: print(y,x)3.4条件语句3.4.4elif子句如果需要更多的判断,可以使用elif(elif是elseif的缩写)。因此,更常见的条件语句的形式如下。If

条件表达式1:

语句块1elif

条件表达式2:

语句块2elif

条件表达式m:

语句块melse:

语句块n该语句的作用是根据表达式的值确定执行哪个语句块。if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,则执行判断对应的语句后,就忽略剩下的elif和else。3.4条件语句【例3-2】输入一个整数n,判断该数是正数、负数还是零。程序如下: n=input("Pleaseenteranumber:") n=int(n)#input()返回的数据类型是str,int函数用于将一个字符串型数字转换为整型 ifn>0: print("%disapositivenumber"%n) elifn<0: print("%disanegativenumber"%n) else: print("%disazero"%n)3.4条件语句【例3-3】BMI指数(BodyMassIndex)是目前国际上常用来衡量人体胖瘦程度以及是否健康的一个标准。小明身高1.75m,体重80.5kg。请根据BMI公式(体重公斤数除以身高米数的平方)计算他的BMI指数,并根据BMI指数判断并打印结果。低于18.5:过轻18.5~25:正常25~28:过重28~32:肥胖高于32:严重肥胖3.4条件语句程序如下: height=1.75 weight=80.5 bmi=weight/height**2 print("BMI指数",bmi) ifbmi<18.5: print("体重过轻") elifbmi>=18.5andbmi<25:#注意,这里也可以写成18.5<=bmi<25 print("体重正常") elif25<=bmi<28: print("体重过重") elifbmi>=28andbmi<32: print("过于肥胖") else: print("严重肥胖")3.4条件语句3.4.5嵌套条件语句在if条件语句中又包含一个或多个if条件语句称为嵌套条件语句。一般形式如下:3.4条件语句【例3-4】写一程序,判断某一年是否闰年。闰年的条件是:(1)能被4整除,但不能被100整除的年份都是闰年,如1996年、2004年是闰年;(2)能被100整除,又能被400整除的年份是闰年;如2000年是闰年。不符合这两个条件的年份不是闰年。3.5循环语句Python中的循环语句有while和for两种形式。3.5.1while循环Python中while语句的一般形式如下。while判断条件:statements3.5循环语句【例3-5】用公式

求π的近似值,直到某一项的绝对值小于10-6为止。程序如下: pi=0 a=1 n=1 whileabs(a)>=10**(-6): pi+=a a=(-1)**n/(2*n+1) n+=1 print("pi=",4*pi)3.5循环语句【例3-6】求两个整数m和n的最大公约数。

求最大公约数可以用辗转相除法,该方法是古希腊数学家欧几里得在公元前4世纪给出的。该算法的思想是:①

对于已知两数m,n,使得m>n;②

m除以n得余数r;③

若r≠0,则令m←n,n←r,继续相除得新的r;直到r=0求得最大公约数,结束。3.5循环语句3.5.2

for循环for循环可以遍历任何序列的项目。for循环的一般形式如下。for<variable>in<sequence>:<statements>else:

<statements>3.5循环语句Python内置range()函数能返回一系列连续增加的整数。range函数大多数时常出现在for循环中,在for循环中可作为索引使用。函数原型:range(start,end,scan):参数含义如下:start:计数从start开始。默认是从0开始。例如,range(5)等价于range(0,5)。end:计数到end结束,但不包括end。例如,range(0,5)是[0,1,2,3,4]没有5。scan:每次跳跃的间距,默认为1。例如,range(0,5)等价于range(0,5,1)。3.5循环语句【例3-7】输出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=13+53+33。程序如下:

foriinrange(100,1000):

a=i%10#个位数

b=i//10%10#十位数

c=i//100#百位数

if(i==a**3+b**3+c**3):

print(i)3.5循环语句【例3-8】判断m是否素数。分析:判断素数的算法是:让m被2到

除,如果m能被2­到

之间任何一个整数整除,则由此可以判断m不是素数;如果m不能被2­到

之间任何一个整数整除,则可以判断m是素数。这里引入一个变量prime来代表是否素数的信息。若是素数,令prime=1;不是素数,令prime=0。最后判断prime是否为1,若是,则输出“素数”信息。3.5循环语句3.5.3Python循环嵌套Python语言允许在一个循环体里面嵌入另一个循环。Pythonfor循环嵌套语法:foriterating_varinsequence:

for

iterating_varinsequence:statements(s)statements(s)3.5循环语句Pythonwhile循环嵌套语法:whileexpression:

whileexpression:statement(s)statement(s)3.5循环语句3.5.4跳出循环(break与continue)在循环中,有时候可以用break或continue来提前跳出循环,即循环条件没有满足False时或者序列还没被完全递归完,也会停止执行循环语句。其中,continue语句用于跳出本次循环,而break用于跳出整个循环。3.5循环语句3.5.5循环中的else子句在Python中,for…else表示这样的意思:for中的语句和普通的没有区别,else中的语句会在循环正常执行完(即for不是通过break跳出而中断的)的情况下执行,while…else也是一样。【例3-10】用for…else子句来完成输出10~30之间的所有素数。3.5循环语句程序如下: print('10-30之间的素数是:') fornuminrange(10,31):#迭代10到30之间的数字 foriinrange(2,num):#根据因子迭代 ifnum%i==0:#确定第一个因子 break#跳出当前循环 else:#循环的else部分 print(num)3.5循环语句3.5.6综合应用【例3-11】输入行数(必须是奇数,例如输入行数“7”),输出类似以下有规律的图形:3.5循环语句【例3-12】猜数字游戏,包含以下功能。(1)由程序取随机数。(2)用户输入数字猜数。(3)程序根据输入判断大小,然后给出相应提示。(4)用户不断尝试,直到猜中或者猜数的次数大于预设值的次数。(5)如果猜中,玩家获胜;猜错了,重来,最多只能猜6次。本章小结赋值、条件、循环等语句是程序中应用非常广泛的基本语句,需要熟练掌握。赋值语句有序列解包、链式赋值、增量赋值等方式。print语句用于一些提示性语句或者结果的输出。条件语句用if语句来判断其后面的条件语句是否为真,如果为真,执行if后面的语句块,否则继续判断elif后面的条件,所有条件都不满足的情况下执行最后的else语句(如果有该语句的话)。循环语句用于执行一些需要重复的命令,有while和for两种形式。range函数时常出现在for循环中,在for循环中可作为索引使用。因为对于解释性语言Python,不能用括号来表示语句块,也不能用开始/结束标志符来表示,而是靠缩进来表示代码的逻辑。同一层次的语句必须有相同的缩进。第4章字符串内容提纲4.1字符串的基本操作24.2字符串格式化34.3常用字符串函数和方法1引例引例看看这个简单的例子。当我们在利用QQ等通信工具向好友发送消息时,所发送的消息就是由一系列字符串组成的。我们发送的消息会通过服务器中转,然后再发送到目的地。在这个过程中,服务器就是将消息的内容当成字符串来处理的。4.1.1字符串的表示我们可以使用两个单引号(')或两个双引号(")括起来创建字符串>>>str='howareyou'>>>print(str)howareyou>>>str="howareyou">>>print(str)howareyou单引号、双引号、三引号4.1字符串的基本操作4.1.1字符串的表示下面来看一些对比的例子>>>#单引号中使用双引号str2='"python"'>>>#双引号中使用单引号str3="'python'">>>#三单引号str4='''python'''>>>#三单引号中间使用双引号str5='''"python"'‘’4.1字符串的基本操作4.1.1字符串的表示下面来看一些对比的例子>>>#三单引号中有换行符str6='''hellopython'''>>>#三双引号中有换行符str7="""hellopython“”“4.1字符串的基本操作4.1.1字符串的表示下面来看一些对比的例子>>>print(str2)"python">>>print(str3)'python'>>>print(str4)python>>>print(str5)"python"4.1字符串的基本操作>>>print(str6)hellopython>>>print(str7)hellopython4.1.1字符串的表示(1)单引号中可以使用双引号,中间的会当作字符串输出。(2)双引号中可以使用单引号,中间的会当作字符串输出。(3)三单引号和三双引号中间的字符串在输出时保持原来的格式。4.1字符串的基本操作4.1.2索引序列是有顺序的,可以根据字符在序列中的位置将其编号,字符在字符串中的位置称为“索引”。在Python中,字符串中的字符是通过索引来提取的,索引从0开始。索引可以取负值,表示从末尾提取,最后一个为-1,倒数第二个为-2,即程序认为可以从结束处反向计数。在Python中,不仅可以对单个字符建立索引,而且还可以对字符串中的子串建立索引。4.1字符串的基本操作4.1.2索引Python中用索引运算符“[]”来提取字符串中的字符。字符串索引4.1字符串的基本操作4.1.2索引若存取范围超过范围的索引位置(或空字符串中的索引位置)会产生indexoutofrange异常。>>>s='howareyou'>>>s[11]#索引超出字符串范围Traceback(mostrecentcalllast):File"<pyshell#41>",line1,in<module>s[11]IndexError:stringindexoutofrange4.1字符串的基本操作4.1.3分片与使用索引访问单个元素类似,可以使用分片操作来访问一定范围内的元素。分片是实际应用中经常使用的技术,被截取的部分称为“子串”或“子序列”。索引运算符冒号(:)指出子序列的范围。注意,此过程不会改变原来的字符串。4.1字符串的基本操作4.1.3分片1.分片格式:S[i:j]表示选择S字符串中从索引位置i到索引位置j-1的子序列。Python采用的是半开区间,半开区间包含范围的起始值,而不包含结束值。4.1字符串的基本操作4.1.3分片'howareyou'[4:]表达式指定的子序列从‘howareyou’中索引为4的位置开始,到字符串结尾处为止。4.1字符串的基本操作4.1.3分片'howareyou'[:4]表达式指定的子序列从‘howareyou’中索引为0的位置开始,到字符串索引为4的位置为止,但不包括索引值为4的字符。4.1字符串的基本操作4.1.3分片负分片的例子:‘howareyou’[-1]表达式指定了原字符串最后一个字符。4.1字符串的基本操作4.1.3分片负分片的例子:'howareyou'[4:-2],指定的是从原字符串索引为4的位置开始,到原字符串倒数第3个位置结束的子串。4.1字符串的基本操作4.1.3分片2.分片格式:S[i:j:k]表示选择S字符串中的字符,从索引位置i直到索引位置j-1,每隔k个字符索引一次,k为步长,默认为1。若省略i,则表示从起始位置开始索引;若省略j,则表示到结束位置为止。步长值指出了从原字符串中每隔多少个字符就取出值到子串中。也可以使用负数作为步长,步长-1表示分片将会从右至左进行而不是通常的从左至右,实际效果主是将序列反转。4.1字符串的基本操作4.1.3分片指定步长的分片4.1字符串的基本操作4.1.3分片Python不支持字符类型;字符会被视为长度为1的字符串,因此也被认为是一个子字符串。要访问子串,请使用方括号的切片加上索引或直接使用索引来获取子字符串。4.1字符串的基本操作4.1.4合并Python使用“+”连接不同的字符串。“+”运算符需要两个字符串对象,得到一个新的字符串对象。新的字符串对象由前面两个字符串对象连接而成(将第2个字符串的开始连接到第1个字符串的末尾)。>>>str1='Hello'>>>str2='Guangzhou'>>>str1+str2'HelloGuangzhou'>>>str2+str1'GuangzhouHello'>>>str1+''+str2'HelloGuangzhou'4.1字符串的基本操作4.1.4合并当出现“+”运算符时,Python是怎么知道该做连接运算还是加法运算呢?操作数的类型决定将执行的运算类型。如果“+”两侧都是字符串类型,则进行连接操作;如果“+”两侧都是数字类型,则进行加法运算;如果“+”两侧是不同的类型,Python解释器将提示出错。4.1字符串的基本操作4.1.4合并使用join()连接字符串:>>>strs=['Hello','China','Hello','Guangzhou']#多个字符串存放在列表中>>>result=''.join(strs)#调用join(),依次连接列表中的元素>>>print(result)HelloChinaHelloGuangzhou4.1字符串的基本操作4.1.5复制使用重复运算符“*”实现字符串的复制。“*”需要一个字符串对象和一个整数,产生1个新的字符串对象。新的字符串对象是由原字符串复制而成,复制的次数为给出的整数值,而复制字符串时,字符串和整数的顺序无关。4.1字符串的基本操作4.1.5复制>>>str='Guangzhou'>>>str*3#str3次复制'GuangzhouGuangzhouGuangzhou'>>>3*str#str3次复制'GuangzhouGuangzhouGuangzhou'>>>(str+'')*3'GuangzhouGuangzhouGuangzhou'>>>str*strTraceback(mostrecentcalllast):File"<pyshell#83>",line1,in<module>str*strTypeError:can'tmultiplysequencebynon-intoftype'str'4.1字符串的基本操作4.1.6截取方法1:“索引”“切片

”来截取字符串获取子串。方法2:使用split()来获取子串。split()的语法如下:split([char][,num])[n]参数char表示用于分割的字符,默认的分割字符是空格。参数num表示分割的次数。默认情况下,将根据字符char在字符串中出现的个数来分割子串。函数的返回值是由子串组成的列表。参数n表示取第几个分片。split()就是将一个字符串分裂成多个字符串组成的列表。4.1字符串的基本操作4.1.6截取使用split()获取子串的例子>>>sentence="Janesaid:one,two,three,four" >>>print(sentence.split())#使用空格获取子串['Jane','said:','one,','two,','three,','four']4.1字符串的基本操作4.1.6截取使用split()获取子串的例子>>>sentence="Janesaid:one,two,three,four">>>print(sentence.split(","))#使用逗号获取子串['Janesaid:one','two','three','four']>>>print(sentence.split(",",2))#使用逗号获取子串,num值为2['Janesaid:one','two','three,four']4.1字符串的基本操作4.1.6截取使用split()获取子串的例子>>>sentence="Janesaid:one,two,three,four">>>print(sentence.split(",")[2])#使用逗号获取索引为2的分片three>>>print(sentence.split(",")[0])#使用逗号获取索引为0的分片Janesaid:one>>>print(sentence.split()[0])#使用空格获取索引为0的分片Jane4.1字符串的基本操作4.1.7比较1.使用“==”、“!=”、“<”、“>”运算符(1)单字符字符串的比较>>>'a'=='a'#两个字符相同,返回真True>>>'a'=='A'#两个字符不相同,返回假False>>>'a'!='A'#ord(a)=97,ord(A)=65,97!=65返回真True>>>'a'>'A'#ord(a)=97,ord(A)=65,97>65返回真True>>>'1'<"2"True4.1字符串的基本操作4.1.7比较1.使用“==”、“!=”、“<”、“>”运算符(2)多字符字符串的比较>>>'abs'<'cde'#索引位置0的’a’<’c’True>>>'abc'<'abd'#索引位置2的’c’<’d’True>>>'abc'>'abcd'#'abc'都相等,较长的字符串更大False>>>''<'a'#空字符串比其他字符串都小True4.1字符串的基本操作4.1.7比较2.使用startswith()、endswith()startswith()声明为:startswish(substr,[start[,end]])参数substr是与源字符串开头部分比较的子串。参数start表示开始比较的位置。参数end表示比较结束的位置。即在“start:end”范围内搜索子串substr。如果字符串以substr开头,则返回True,否则返回False。endswith()的参数与返回值与startswith()类似,不同的是endswith()从源字符串的尾部开始搜索。startswith()、endswith()不能用于比较源字符串中任意部分的子串。4.1字符串的基本操作4.1.7比较2.使用startswith()、endswith()>>>str="Howareyou">>>print(str.startswith("How"))#比较str的开头部分”How”True对比>>>str="Howareyou">>>print(str.endswith("you",6))True>>>print(str.endswith("you",6,10))False>>>print(str.endswith("you",6,len(str)))True4.1字符串的基本操作4.1.8长度与最值>>>str="HelloWorld">>>len(str)#求字符串str的长度10>>>max(str)#求字符串str中最大的字符'r'>>>min(str)#求字符串str中最小的字符'H'>>>max('bcd','fig','abcd','xyz','abab')#求多个字符串中最大的字符串'xyz'>>>min('bcd','fig','abcd','xyz','abab')#求多个字符串中最小的字符串'abab'4.1字符串的基本操作4.1.9in运算符in运算符用于检查集合的成员,需要两个参数:测试字符串和可能包含测试字符串的字符串。形式如下:str1instr2如果测试字符串str1包含在str2中,且测试字符串序列必须完全相同则返回True,否则返回False。4.1字符串的基本操作4.1.9in运算符>>>word="China">>>'h'inwordTrue>>>'b'inwordFalse>>>'na'inwordTrue>>>'an'inword#测试字符串序列不相同False4.1字符串的基本操作4.2.1字符串的格式化输出Python支持格式化字符串的输出。基本的用法是将一个值插入一个有字符串格式符

%s的字符串中。>>>print("Mynameis%sandweightis%dkg!"%('Zara',21))MynameisZaraandweightis21kg!4.2字符串格式化4.2.1字符串的格式化输出格式字符串中的信息和其他任何字符串一样进行显示。特殊情况是,用百分号(%)开头的特殊字符序列表明在字符串中出现%的位置,将会做一次替换。用命令结尾处圆括号中的数据来替换%。上面的实例中,用“%s”替代格式字符串中的字符串,用“%d”替代格式字符串中的数字(“d”为十进制整数)。格式化指令与数据项,按顺序由左到右进行匹配,第一条格式命令对应第一个数据项,依次类推。字符串的格式化语法如下所示:“%s”%str1“%s%s…”%(str1,str2…)4.2字符串格式化如果要格式化多个值,元组中元素的顺序必须与格式化字符串中替代符的顺序一致4.2.1字符串的格式化输出使用%f可以格式化浮点数的精度。根据指定的精度四舍五入。>>>print("浮点型数字:%f"%1.23)#默认情况下输出小数点后6位数字浮点型数字:1.230000>>>print("浮点型数字:%.1f"%1.23)#四舍五入后的结果为1.2浮点型数字:1.2>>>print("浮点型数字:%.3f"%1.2355)#格式化小数点后3位并四舍五入浮点型数字:1.2364.2字符串格式化4.2.1字符串的格式化输出表4-1Python格式化字符串的替代符及其含义4.2字符串格式化符

号含

义%c格式化字符及其ASCII码%s格式化字符串%d格式化整数%u格式化无符号整型%o格式化无符号八进制数%x格式化无符号十六进制数%X格式化无符号十六进制数(大写)%f格式化浮点数字,可指定小数点后的精度%e用科学计数法格式化浮点数%E作用同%e,用科学计数法格式化浮点数%g根据值的大小决定使用%f或%e%G作用同%g,根据值的大小决定使用%f或%e%p用十六进制数格式化变量的地址4.2.2宽度和精度可以为每个数据项指定字段显示的宽度(即数据占据的空格数)。如果宽度值为正值,则是在指定的宽度内右对齐;若指定了负值,则数据在指定的宽度内左对齐。>>>print("%sis%dyearsold."%("Ben",30))Benis30yearsold.>>>print("%10sis%-10dyearsold."%("Ben",30))Benis30yearsold.4.2字符串格式化4.2.2宽度和精度使用“%f”来控制浮点值的小数点右侧的位数,即精度。>>>importmath>>>print(math.pi)#未指定精度

3.141592653589793>>>print("Piis%.2f"%(math.pi))#保留小数点后2位Piis3.14>>>print("Piis%8.2f"%(math.pi))#指定宽度和精度,保留小数点后2位Piis3.14>>>print("Piis%8.4f"%(math.pi))#指定宽度和精度,保留小数点后4位Piis3.14164.2字符串格式化4.2.3字符串转义字符计算机中存在可见字符和不可见字符。可见字符指的是键盘上的字母、数字和符号。不可见字符指的是换行、回车等字符。对于不可见字符可以使用转义字符来表示。Python中转义字符的用法和Java相同都是使用“\”作为转义字符。>>>print("firstline\nsecondline")firstlinesecondline>>>print("firstword\tsecondword")firstword secondword4.2字符串格式化4.2.3字符串转义字符去除字符串中的转义字符。>>>str="\thelloworld\n">>>print("直接输出:",str)直接输出: helloworld

>>>print("strip()后输出:",str.strip())strip()后输出:helloworld>>>print("lstrip()后输出:",str.lstrip())lstrip()后输出:helloworld>>>print("rstrip()后输出:",str.rstrip())rstrip()后输出: helloworld4.2字符串格式化1.字符串测试字符串测试用于检测字符串是否为特定格式。如果测试的结果为真,返回True,否则返回False。>>>s="Helloworld">>>s.startswith('h')#测试字符串s是否以’h’开头

False>>>s.endswith("d")#测试字符串s是否以’d’结尾True>>>s.isupper()#测试字符串s是否只包含大写字母False>>>s.islower()#测试字符串s是否只包含小写字母False>>>s.isprintable()#测试字符串s是否只包含可打印字符True4.3常用字符串函数和方法2.字符串查找>>>s="HelloChina">>>print(s.find("H"))#在字符串s中查找"H"0>>>print(s.index("H"))#在字符串s中查找"H"0>>>print(s.rfind("H"))#在字符串s中从右往左查找"H"0>>>print(s.find("an"))#在字符串s中查找"an"-14.3常用字符串函数和方法3.字符串替换>>>s='one,twoandthree'>>>s1='one,\ttwo\tand\tthree'>>>print(s)one,twoandthree>>>print(s.replace('one','1'))#将字符串s中的每个’one’替换为'1'1,twoandthree>>>print(s.replace('one',''))#将字符串s中的每个’one’替换为'',twoandthree4.3常用字符串函数和方法3.字符串替换>>>print(s1)one, two and three>>>print(s1.expandtabs(8))#将字符串s中制表符扩展为空格,宽度为8one,twoandthree>>>print(s1.expandtabs(10))#将字符串s中制表符扩展为空格,宽度为10one,twoandthree4.3常用字符串函数和方法4.字符串合并使用join()合并字符串>>>strs=['hello','China','hello','Guangzhou']>>>result="".join(strs)#合并的串用空格分隔>>>print(result)helloChinahelloGuangzhou>>>seq=['123','456','789']>>>sep='+'#合并的串用’+’分隔>>>print(sep.join(seq))123+456+7894.3常用字符串函数和方法4.字符串合并使用reduce()合并字符串>>>fromfunctoolsimportreduce>>>importoperator#导入模块operator,利用add()方法实现累计连接>>>strs=['hello','China','hello','Guangzhou']>>>result=reduce(operator.add,strs,"")>>>print(result)helloChinahelloGuangzhou4.3常用字符串函数和方法5.字符串拆分>>>url=''>>>print(url.partition('.'))('www','.','’)>>>print(url.rpartition('.'))('','.','cn')>>>print(url.split('.'))['www','ptpress','com','cn']>>>sentence='MynameisBob'>>>print(sentence.split())['My','name','is','Bob']4.3常用字符串函数和方法6.字符串与日期的转换>>>importtime,datetime>>>print(time.strftime("%Y-%m-%d%X",time.localtime()))2017-10-2116:09:24>>>t=time.strptime("2017-09-08","%Y-%m-%d")>>>y,m,d=t[0:3]>>>print(datetime.datetime(y,m,d))2017-09-0800:00:004.3常用字符串函数和方法7.字符串大小写>>>s='BeginningPython:UsingPython3.4.4andPython3.5'>>>s.lower()'beginningpython:usingpython3.4.4andpython3.5'>>>s.upper()'BEGINNINGPYTHON:USINGPYTHON3.4.4ANDPYTHON3.5'>>>s.capitalize()'Beginningpython:usingpython3.4.4andpython3.5'>>>s.title()'BeginningPython:UsingPython3.4.4AndPython3.5'4.3常用字符串函数和方法8.字符串格式设置>>>s='Python'>>>ch='*'>>>print(s.center(10))Python>>>print(s.center(10,ch))**Python**>>>print(s.ljust(10))Python4.3常用字符串函数和方法8.字符串格式设置>>>print(s.ljust(10,ch))Python****>>>print(s.rjust(10,ch))****Python>>>print(s.ljust(10))Python4.3常用字符串函数和方法9.字符串剥除剥除函数用于删除字符串开头或末尾多余的字符,如表4-11所示。默认情况下,剥除空白字符;如果指定了字符串参数,则剥除该字符串中的字符。>>>name="JohnSmith">>>print(name.lstrip())JohnSmith>>>print(name.rstrip())JohnSmith>>>print(name.strip())JohnSmith4.3常用字符串函数和方法>>>title="*#GoodLuck!*#*#">>>print(title.strip())*#GoodLuck!*#*#>>>print(title.strip('*#'))GoodLuck!本章小结字符串是程序开发中的常用数据类型,字符串的处理是实际应用中经常面对的问题。本章讲解了Python中字符串的表示与操作,包括字符串的索引与分片、合并、复制、截取、比较、格式化等。重点介绍了字符串的常用函数与方法。第5章文件内容提纲5.1文件和文件路径

25.2文件的读写35.3文件定位4355.4文件相关函数及综合应用15.5CSV文件操作引例引例程序员经常要进行目录和文件的操作,例如建立、删除目录,建立、删除文件,读写文件等。>>>importos>>>os.getcwd()#以上语句获取当前工作目录'd:\\Python34'>>>os.mkdir("temp")#以上语句在当前目录下创建一个子目录temp>>>os.chdir("temp")#以上语句切换当前目录(即工作目录)到temp子目录下>>>os.getcwd()'d:\\Python34\\temp'>>>tempFile=open("ws.txt","w")#以上语句以写方式打开一个文件,如果这个文件不存在就创建它>>>str="hello\nworld"#创建一个字符串,以备写入文件>>>tempFile.write(str)#将str写入文件>>>tempFile.close()#关闭文件>>>newFile=open("ws1.txt","w")#新创建一个文件>>>tempFile=open("ws.txt","r")#打开ws.txt文件>>>str=tempFile.read(5)#读取5个字符>>>newFile.write(str)#将这5个字符写入新文件ws1.txt>>>tempFile.close()>>>newFile.close()#以上两行关闭两个打开的文件>>>os.remove("ws.txt")#删除ws.txt文件5.1文件和文件路径5.1文件和文件路径5.1.1os.path.join()和os.mkdir()在Windows上,目录分隔符为“\”,而在Linux或OSX中为“/”,如果想要程序正常运行在所有的操作系统上,在编写Python程序时,必须处理这两种情况。一个好的办法就是在程序中不使用“/”或“\”做路径分隔符,而用os.path.join()函数来处理路径。将单个文件和路径上的目录名称的字符串传递给os.path.join(),不管是什么操作系统,os.path.join()都返回一个与此操作系统相对应的文件路径的字符串5.1.2绝对路径和相对路径绝对路径总是从根目录开始,通过一个绝对路径能唯一定位到一个确定的目录下,比如:“D:\programs\java”一个绝对路径,“D:\”表示Windows系统下D盘根目录,“programs”是该根目录下的一个子目录,“java”是“programs”目录下的一个子目录,因此该路径定位到D盘根目录下的programs目录下的java目录下。5.1文件和文件路径5.1.3查看当前目录os.getcwd()在涉及目录操作的过程中,始终要有“当前工作目录(又叫工作目录)”这个概念,知道所有相对路径都基于当前工作目录。有时我们不清楚当前目录或忘记了当前目录是什么,若要进行目录和文件的创建,则要搞清楚当前目录是什么,可用os.getcwd()查看当前目录。5.1文件和文件路径5.1.4改变当前目录os.chdir()我们可以在一个目录下操作其他目录,这个时候可以用绝对路径的方式,但如果涉及的操作很频繁,为了避免输入较长的绝对路径,可以把要操作的路径设置为“当前路径”。比如现在D:\Python34目录下,但要在D:\ws\doc目录下进行各种操作,这个时候可以用以下方式将此目录设为当前目录。5.1文件和文件路径5.1.5os.remove()及os.rmdir()os.remove()为删除指定文件,比如os.remove(“ws.txt”)删除当前目录下的ws.txt文件;os.rmdir()为删除指定目录,比如os.rmdir(“ws\\doc”)删除当前目录下的ws子目录下的doc子目录。5.1文件和文件路径5.1.6rename()函数rename()函数需要两个参数,当前的文件名和新文件名。语法:os.rename(current_file_name,new_file_name)例如:下例将ws.txt重命名ws1.txt。>>>importos>>>os.rename("ws.txt","ws1.txt")5.1文件和文件路径5.1.7表示当前目录的“.”和表示上级目录的“..”“.”和“..”分别代表当前目录和上一级目录。例如,在D:\Python34\ws目录下,使用os.mkdir(“.\\doc”)表示在当前目录下创建一个子目录doc。不过当前目录通过可以省略,默认情况下你使用的每一条涉及路径的指令都是相对于当前目录的,所以上述语句可以改为os.mkdir(“doc”)。5.1文件和文件路径5.1.8os.walk()方法此方法用于在目录树中游走输出在目录中的文件名,向上或者向下。在

温馨提示

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

评论

0/150

提交评论