Python游戏设计案例实战第1章--Python基础知识

PPT
  • 阅读 72 次
  • 下载 0 次
  • 页数 86 页
  • 大小 1.476 MB
  • 2022-11-12 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
Python游戏设计案例实战第1章--Python基础知识
可在后台配置第一页与第二页中间广告代码
Python游戏设计案例实战第1章--Python基础知识
可在后台配置第二页与第三页中间广告代码
Python游戏设计案例实战第1章--Python基础知识
可在后台配置第三页与第四页中间广告代码
Python游戏设计案例实战第1章--Python基础知识
Python游戏设计案例实战第1章--Python基础知识
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 86
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】Python游戏设计案例实战第1章--Python基础知识.ppt,共(86)页,1.476 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-2437.html

以下为本文档部分文字说明:

第1章Python基础知识1.1Python语言简介•Python是一种面向对象、解释型计算机程序设计语言,由荷兰人GuidovanRossum于1989年底发明,第一个公开发行版发行于1991年,Python源代码同样遵循GPL(GNUGen

eralPublicLicense)协议。•Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。正因为Python语言的简洁、优雅、开发效率高,它常被用于网站开发,网络编程,图形处理,黑客编程等等。P

ython由荷兰的GuidovanRossum设计。Python第一个版本于1991年初公开发行。。Python2.0于2000年10月发布,增加了许多新的语言特性。Python3.0于2008年12月发布,此版本不完全兼容Python2.0,导致Python2.0

与Python3.0不兼容。Python3.5在2015年9月发布Python3.6正式版在2016年12月发布,主要的新特性包括:async和await关键字可用于生成器和推导;改善CPython实现,在不破坏兼容性的情况下降低

内存占用和提高速度;可插拔支持JIT、跟踪器和调试器;引入新的字符串和数字格式,为变量加入类型注释,简化定制子类创建的方法,等等。Python语言的发展历史•TIOBE2016年8月编程语言排行榜✓是一种面向对象、解释型计算机程序设计语言✓纯粹的自由软件✓Python语法简洁清晰,用空格(spac

e)作为语句缩进✓Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。✓Python快速生成程序的原型✓封装Python可以调用的扩展类库✓

跨平台,程序无需修改在Windows、Linux、Unix、Mac等操作系统上使用Web开发,基于python的优秀web框架如Django网络编程,网页解析,如爬虫程序开发科学计算,各种实验数据的处理以及相关

实验模拟等,机器学习等数据库应用多媒体开发电子游戏开发应用领域2.1Python数据类型2.1.1数值类型Python数值类型用于存储数值。整型(int):通常被称为是整型或整数,是正或负整数,不带小数点。长整型(long)

:无限大小的整数,整数最后是一个大写或小写的L。在Python3里,只有一种整数类型int,没有Python2中的Long。浮点型(float):浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(

2.78e2就是2.78x102=278)复数(complex):复数由实数部分和虚数部分构成,可以用a+bj,或者complex(a,b)表示,复数的虚部以字母j或J结尾。如:2+3j。7•Python使用单引号和双引号来表示字符串是一样的。•1.创建和访问字符串•创建字符串很简单,只

要为变量分配一个值即可。例如:•var1='HelloWorld!'•var2="PythonProgramming"•2.Python转义字符•需要在字符中使用特殊字符时,Python用反斜杠(\)转义字符2.1.2字符串8•3.P

ython字符串运算符•Python字符串运算符如表2-2所示。•a='Hello'b='Python'2.1.2字符串9•4.字符串格式化•Python支持格式化字符串的输出。尽管这样可能会用到非常复杂的表达式,

但最基本的用法是将一个值插入到有字符串格式符的模板中。•在Python中,字符串格式化使用与C语言中printf函数一样的语法。•print("我的名字是%s年龄是%d"%('xmj',41))•Python用一个元祖将多个值传递

给模板,每个值对应一个字符串格式符。上例将'xmj'插入到%s处,41插入到%d处。所以输出结果:•我的名字是xmj年龄是412.1.2字符串10•4.字符串格式化2.1.2字符串112.1.3布尔类型•Python支持布尔类型的数据,布尔类型只有True和Fals

e两种值。•and与运算:只有两个布尔值都为True时,计算结果才为True。•or或运算:只要有一个布尔值为True,计算结果就是True。•not非运算:把True变为False,或者把False变为True:在Python中,布尔类型还可以与其他数据类型做and、

or和not运算,这时下面的几种情况会被认为是FALSE:为0的数字,包括0,0.0;空字符串'',"";表示空值的None;空集合,包括空元祖(),空序列[],空字典{};其他的值都为TRUE。例如:•a='pytho

n'•print(aandTrue)#结果是True•b=''•print(borFalse)#结果是False12•在Python中,逻辑值True和False作为数值,则分别是整型值1和0参与运算。例如:•>>>x=False•>>>a=x+(5>4

)#结果a是1•>>>b=x+5#结果b是5132.1Python数据类型2.1.4空值空值是Python里一个特殊的值,用None表示。它不支持任何运算也没有任何内置函数方法。None和任何其他的数据类型比较永远返回False。在Pytho

n中未指定返回值的函数会自动返回None。2.1.5Python数字类型转换•x=20#八进制为24•y=345.6•print(oct(x))#打印结果是0o24•print(int(y))#打印结果是345•

print(float(x))#打印结果是20.0•print(chr(65))#A的ASCII为65,打印结果是A•print(ord('B'))#B的ASCII为66,打印结果是66142.2常量和变量•2.2.1变量•变量

在程序中就是用一个变量名表示,变量名必须是大小写英文、数字和_的组合,且不能用数字开头,比如:•在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,例如:•a=123#a是整数•a='ABC'#a变为字符串

•这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。152.2.2常量•所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量:•PI

=3.14159265359•但事实上PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法,实际上是可以改变变量PI的值。162.3运算符与表达式Py

thon语言支持运算符有以下几种类型。•算术运算符•比较(即关系)运算符•赋值运算符•逻辑运算符•位运算符•成员操作符•标识操作符172.3运算符与表达式•1.算术运算符•算术运算符实现数学运算,Python语言算术运算符如表2-5所示。假设其中变量a=10和变量b

=20。182.关系运算符•关系运算符用于两个值进行比较,运算结果为True(真)或False(假)。Python中的关系运算符如表2-6所示。假设其中变量a=10和变量b=20。193.逻辑运算符•Pyth

on中提供了三种逻辑运算符,它们是:•and(逻辑与,二元运算符)•or(逻辑或,二元运算符)•not(逻辑非,一元运算符)204.赋值运算符赋值运算符“=”的一般格式为:变量=表达式它表示将其右侧的表达式求出结果,赋给其左侧

的变量。例如:i=3*(4+5)#i的值变为27215.位运算符位(bit)是计算机中表示信息的最小单位,位运算符作用于位和位操作。Python中位运算符如下:•按位与(&)、按位或(|)、按位异或(^)、按位求反(~)、左移(<<)、右移(>>)。位运算符是对

其操作数按其二进制形式逐位进行运算。•a=00111100•b=00001101•a&b=00001100•a|b=00111101•a^b=00110001•~a=11000011226.Python成员运算•Python成员

运算符判断序列中是否有某个成员。成员运算符如表2-9所示。237.Python标识运算符•标识符比较两个对象的内存位置。248.Python运算符优先级•在一个表达式中出现多种运算时,将按照预先确定的顺序计算并解析各个部分,这个顺序称为运算符优先级。252.3.2表达式•表达式是一个或多个运算

的组合。Python语言的表达式与其他语言的表达式没有显著的区别。每个符合Python语言规则的表达式的计算都是一个确定的值。对于常量、变量的运算和对于函数的调用都可以构成表达式。•在后续章节中介绍的

序列、函数、对象都可以成为表达式一部分。262.3序列数据结构•序列是Python中最基本的数据结构。•序列中的每个元素都分配一个数字即它的位置或索引,第一个索引是0,第二个索引是1,依此类推。序列都可以进行的操作包括索引,截取(切片),加,乘,成员检查。此外,Python

已经内置确定序列的长度以及确定最大和最小的元素的方法。•Python内置序列类型最常见的是列表、元组、字典和集合。•列表、元组和字符串是有顺序的数据元素的集合体;字典和集合属于无顺序的数据集合体,不能通过位置编号来访问数据元素。272.3.1列表列表(list)是最

常用的Python数据类型,列表的数据项不需要具有相同的类型。列表类似其他语言的数组,但功能比数组强大的多。创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。实例如下:list1=['中国','美国',1997,2000];list2=

[1,2,3,4,5];列表索引从0开始。列表可以进行截取(切片)、组合等。282.3.1列表1.访问列表中的值list1=['中国','美国',1997,2000];list2=[1,2,3,4,5,6,7];prin

t("list1[0]:",list1[0])print("list2[1:5]:",list2[1:5])292.3.1列表2.更新列表可以对列表的数据项进行修改或更新,实例如下:list=['中国','ch

emistry',1997,2000];print("Valueavailableatindex2:")print(list[2])list[2]=2001;print("Newvalueavailableatindex2:")pri

nt(list[2])3.删除列表元素方法一:使用del语句来删除列表的的元素方法二:使用remove()方法来删除列表的元素方法三:使用pop()方法方法来删除列表的指定位置的元素,无参数时删除最后一个元素302.3.1列表•4.添加列表元素可以使用append()方法在列表

末尾添加元素,如下实例:list1=['中国','美国',1997,2000]list1.append(2003)print(list1)以上实例输出结果:['中国','美国',1997,2000,2003]312.3.1列表•5

.定义多维列表可以将多维列表视为列表的嵌套,即多维列表的元素值也是一个列表,只是维度比父列表小一。例如:定义1个二维列表。list2=[["CPU","内存"],["硬盘","声卡"]]二维列表比一维列表多一个索引,可以如下获取元素:

列表名[索引1][索引2]例如:定义3行6列的二维列表,打印出元素值。32rows=3cols=6matrix=[[0forcolinrange(cols)]forrowinrange(rows)]#列表生成式for

iinrange(rows):forjinrange(cols):matrix[i][j]=i*3+jprint(matrix[i][j],end=",")print('\n')>>>print[x*xfor

xinrange(1,11)][1,4,9,16,25,36,49,64,81,100]33Python列表内置函数和方法342.3.2元祖Python的元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组使用小括号(),列表使

用方括号[]。元组中的元素类型也可以不相同。1.创建元组tup1=('中国','美国',1997,2000)tup2=(1,2,3,4,5)tup3="a","b","c","d"2.访问元组tup1=('中国','美国',1997,2000)tup2=(1,2,3,4,5,6,7)print(

"tup1[0]:",tup1[0])#输出元组的第一个元素print("tup2[1:5]:",tup2[1:5])#切片,输出从第二个元素开始到第五个元素print(tup2[2:])353.元组连接元组中的元素

值是不允许修改的,但可以对元组进行连接组合,实例如下:tup1=(12,34,56)tup2=(78,90)#tup1[0]=100#修改元组元素操作是非法的。tup3=tup1+tup2#连接元组,创建一个新的元组print(tup3)以上实例输出结果:(12,34,56,78,90)4.删

除元组元组中的元素值是不允许删除的,但可以使用del语句来删除整个元组。36元组与列表转换可以使用下面方法将元祖转换为列表:列表对象=list(元组对象)tup=(1,2,3,4,5)list1=list(tup)#元组转为列表print(list1)#返回[1,2,3,

4,5]可以使用下面方法将列表转换为元祖:元组对象=tuple(列表对象)•nums=[1,3,5,7,8,13,20]•print(tuple(nums))#列表转为元组,返回(1,3,5,7,8,13,20)372.3

.3字典•Python字典(dict)是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。字典也被称作关联数组或哈希表。•1.创建字典•一个简单的字典实例:•dict={'xmj':40,'zhang':91,'wang':80}•也可如此创

建字典:•dict1={'abc':456};•dict2={'abc':123,98.6:37};382.访问字典里的值访问字典里的值时把相应的键放入方括号里,如下实例:dict={'Name':'王海','Age':17,'Class':'计算

机一班'}print("dict['Name']:",dict['Name'])print("dict['Age']:",dict['Age'])3.修改字典dict={'Name':'王海','Age':17,'Class':'计算机一班'}dict['Age']=18#更新键/值对(upda

teexistingentry)dict['School']="中原工学院"#增加新的键/值对(addnewentry)print("dict['Age']:",dict['Age'])print("dict['School']:",dict['Schoo

l'];392.3.4集合集合(set)是一个无序不重复元素的序列。集合基本功能是进行成员关系测试和删除重复元素。1.创建集合可以使用大括号({})或者set()函数创建集合,注意:创建一个空集合必须用set()而不是{},

因为{}是用来创建一个空字典。student={'Tom','Jim','Mary','Tom','Jack','Rose'}print(student)#输出集合,重复的元素被自动去掉40集合运算可以使用“-”、“|”、“&”运算符进行集

合的差集、并集、交集运算。#set可以进行集合运算a=set('abcd')#a={'a','b','c','d'}b=set('cdef')print(a)print("a和b的差集:",a-b)#a和b的差集print("a和

b的并集:",a|b)#a和b的并集print("a和b的交集:",a&b)#a和b的交集print("a和b中不同时存在的元素:",a^b)#a和b中不同时存在的元素413.1选择结构•三种基本程序结构中的选择结构,可用if语句、if…else

语句和if…elif…else语句实现。if语句的语法形式如下所示:if表达式:语句1#比较输入的整数是否大于6a=input("请输入一个整数:")#取得一个字符串a=int(a)#将字符串转换为整数ifa>6:print(a,"大于6")if…else语句的语法形式如下所示:if表达式

:语句1else:语句23.1.2if…else语句a=input("请输入一个整数:")#取得一个字符串a=int(a)#将字符串转换为整数ifa>6:print(a,"大于6")else:print(a,"小于等于6")if表达式1:语句1elif表达式2:语句2……elif表

达式n:语句nelse:语句n+13.1.3if…elif…else语句3.2.1while语句while判断条件:执行语句3.2循环结构count=0whilecount<9:print('Thecountis:',count)count=count+1prin

t("Goodbye!")3.2.2for语句for语句可以遍历任何序列的项目,如一个列表、元祖或者一个字符串。1.for循环的语法for循环的语法格式如下:for循环索引值in序列循环体for循环把字符串中字符遍历出来。forletterin'Py

thon':#第一个实例print('当前字母:',letter)for循环把列表中元素遍历出来。fruits=['banana','apple','mango']forfruitinfruits:#第二个实例print('元素:',fruit)pr

int("Goodbye!")3.2.2for语句2.通过索引循环对于一个列表,另外一种执行循环的遍历方式是通过索引(元素下标)。实例如下:fruits=['banana','apple','mango']foriinrange(len(fruits)):print('当前水果:',fru

its[i])print("Goodbye!")3.2.3continue和break语句break语句在while循环和for循环中都可以使用,一般放在if选择结构中,一旦break语句被执行,将使得整个循环提前结束。continue语句的作用是终止当前循环,

并忽略continue之后的语句,然后回到循环的顶端,提前进入下一次循环。3.2.4循环嵌套•Python语言允许在一个循环体里面嵌入另一个循环。如在while循环中可以嵌入for循环;也可以在for循环中嵌入while循环。嵌套层次一般不超过3层,以保证可读性。•

【例3-6】打印九九乘法表。•【例3-7】使用嵌套循环输出2~100之间的素数。4.1函数的定义和使用•在Python程序开发过程中,将完成某一特定功能并经常使用的代码编写成函数,放在函数库(模块)中

供大家选用,在需要使用时直接调用,这就是程序中的函数。•def函数名(函数参数):•函数体•return表达式或者值defprintHello():#打印'hello'字符串print('hello')defp

rintNum():#输出0--9数字foriinrange(0,10):print(i)returndefadd(a,b):#实现两个数的和returna+bdefadd(a,b):returna+bprint(add(1,2))【例4-1】编写函数实现最大公

约数算法,通过函数调用代码实现求最大公约数。4.1.2函数的使用lambda表达式可以用来声明匿名函数,即没有函数名字的临时使用的小函数,只可以包含一个表达式,且该表达式的计算结果为函数的返回值,不允许包含其他复杂的语句,但在表达式中可以调用其他函数。例如:f=lambdax,y,z:x+y

+zprint(f(1,2,3))等价于定义:deff(x,y,z):returnx+y+zprint(f(1,2,3))函数使用return返回值,也可以将Lambda表达式作为函数的返回值。最后需要补充一点:Python中函数是可以返回多个值的,如果返回多个值,会将多个值放在一个元组或者其

他类型的集合中来返回。4.1.3lambda表达式deff(x,y,z):returnx+y+zprint(f(1,2,3))函数使用return返回值,也可以将Lambda表达式作为函数的返回值。最后需要补充一点:Python中函数是可以返回多

个值的,如果返回多个值,会将多个值放在一个元组或者其他类型的集合中来返回。4.1.4函数的返回值defdemo(s):result=[0,0]forchins:if'a'<=ch<='z':result[1]+=1elif'A'<=ch<='Z':result[0]+=1returnresult

#返回列表print(demo('aaaabbbbC'))4.2.1函数形参和实参的区别形参全称是形式参数,在用def关键字定义函数时函数名后面括号里的变量称作为形式参数。实参全称为实际参数,在调用函数时提供的值或者变量称

作为实际参数。例如:#这里的a和b就是形参defadd(a,b):returna+b#下面是调用函数add(1,2)#这里的1和2是实参4.2函数参数在Python中参数传递采用的是值传递,这个和C语言有点类似。对于绝

大多数情况下,在函数内部直接修改形参的值不会影响实参。4.2.2参数的传递defaddOne(a):a+=1print(a)#输出4a=3addOne(a)print(a)#输出3在有些情况下,可以通过特殊的方式在函数内部修改实参的值

。4.2.2参数的传递defmodify1(m,K):m=2K=[4,5,6]returndefmodify2(m,K):m=2K[0]=0#同时修改了实参的内容return#主程序n=100L=[1,2,3]modify1(n,L)print(n,L)modify2(n,L)4.2.3函数参数的

类型在Python中函数参数定义和传递的方式相比而言就灵活多。•1.默认值参数•在于它能够给函数参数提供默认值。defdisplay(a='hello',b=‘red'):print(a+b)#主程序display()

display(b='world')display(a=‘china')display('world')4.2.3函数参数的类型•2.关键字参数•避免了用户需要牢记位置参数顺序的麻烦。defdisplay(a,b):print(a)print(b

)下面2句达到的效果是相同的。display(a='world',b='hello')display(b='hello',a='world')4.2.3函数参数的类型•3.任意个数参数•一般情况下我们在定义函数时,函数参数的个数是确定的,然而某些情况下我们是不能确定参数的个数的,比如要存储

某个人的名字和它的小名,某些人小名可能有2个或者更多个,此时无法确定参数的个数,只需在参数前面加上'*'或者'**'。defstorename(name,*nickName):print('realnameis%s'%name)fornicknameinnickName:pri

nt('小名',nickname)#主程序storename('张海')storename('张海','小海')storename('张海','小海','小豆豆')•'*'和'**'表示能够接受0到任意多个参数,'*'表示将没有

匹配的值都放在同一个元组中,'**'表示将没有匹配的值都放在一个字典中。4.2.4变量的作用域•1.局部变量•在函数内定义的变量只在该函数内起作用,称为局部变量。deffun():x=3count=2whilecount>0:print(x)

count=count-1fun()print(x)#错误4.2.4变量的作用域2.全局变量还有一种变量叫做全局变量,它是在函数外部定义的,作用域是整个程序。全局变量可以直接在函数里面使用,但是如果要在函数内部改变全局变量

值,必须使用global关键字进行声明。x=2#全局变量deffun1():print(x,end="")deffun2():globalx#在函数内部改变全局变量值必须使用global关键字x=x+1print(x,end="")fun1()

fun2()print(x,end="")4.3闭包和函数的递归调用•4.3.1闭包(closure)•在Python中,闭包指函数的嵌套。可以在函数内部定义一个嵌套函数。deffunc_lib():defadd(x,y):return

x+yreturnadd#返回函数对象fadd=func_lib()print(fadd(1,2))4.3.2函数的递归调用•1.递归调用•函数在执行的过程中直接或间接调用自己本身,称为递归调用。Python语言允许递归调用。deff(x):ifx

==1:#递归调用结束的条件return1else:return(f(x-1)+x*x)#调用f()函数本身print(f(5))4.3.2函数的递归调用•2.递归调用的执行过程•递归调用的执行过程分为递推

过程和回归过程两部分。4.4内置函数•内置函数(built-infunctions)又称系统函数,或内建函数,是指Python本身所提供的函数,任何时候都可以使用。•Python常用的内置函数有数学运算函数、类型转换函数和反射函数等。想要查所有内置函数名可以在pytho

n命令行方式中如下输入:•>>>dir(__builtins__)•4.4内置函数4.4内置函数4.4内置函数4.4内置函数4.5模块•模块(module)能够有逻辑地组织你的Python代码段。把相关的代码分配到一个模块里能让代码更好用,更易懂。简单地说,模块就是一个保存了Python代

码的文件。模块里能定义函数,类和变量。importmath#导入math模块print("50的平方根:",math.sqrt(50))y=math.hex(50)print("50的16进制:",y)4.

5.1import导入模块1.导入模块方式在Python中用关键字import来导入某个模块。方式如下:import模块名#导入模块有时候我们只需要用到模块中的某个函数,只需要引入该函数即可,此时可以通过语句:from模块名import函数名1,函数名2.

...通过这种方式引入的时候,调用函数时只能给出函数名,不能给出模块名4.5.2定义自己的模块在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字。比如有这样一个文件fibo.py,在fibo.py中定义了3个函数add(),fib(),fib2

():那么在其他文件(如test.py)中就可以如下使用:#test.pyimportfibo加上模块名称来调用函数:fibo.fib(1000)#结果是1123581321345589144233377610987fibo.fib2(100)#结果是[1,1,2,3,5,8,

13,21,34,55,89]test.add(2,3)#结果是55.1文件•简单地说,文件是由字节组成的信息,在逻辑上具有完整意义,通常在磁盘上永久保存。Windows系统的数据文件按照编码方式分为两大类,•文本文件和二进

制文件。•文本文件可以处理各种语言所需的字符,只包含基本文本字符,不包括诸如字体、字号、颜色等信息。它可以在文本编辑器和浏览器中显示。即在任何情况下,文本文件都是可读的。•使用其它编码方式的文件即二进制文件,如Wo

rd文档、PDF、图像和可执行程序等。在Python中对文件的操作通常按照以下三个步骤进行:(1)使用open()函数打开(或建立)文件,返回一个file对象。(2)使用file对象的读/写方法对文件进行读/写的操

作。其中,将数据从外存传输到内存的过程称为读操作,将数据从内存传输到外存的过程称为写操作。(3)使用file对象的close()方法关闭文件。5.2文件的访问open()函数用来打开文件。open()函数需要一个字符串路径,表明希望打开文件,并返回一个文件对象。

语法如下:fileobj=open(filename[,mode[,buffering]])5.2.1打开(建立)文件>>>helloFile=open("d:\\python\\hello.txt")我们可以调用文件file对象的多种方法读取文件内容。1.read()方法

不设置参数的read()方法将整个文件的内容读取为一个字符串。5.2.2读取文本文件helloFile=open("d:\\python\\hello.txt")fileContent=helloFile.read()helloFile.close()print(fileContent)•也可以设

置最大读入字符数来限制read()函数一次读取大小。2.readline()方法readline()方法从文件中获取一个字符串,每个字符串就是文件中的每一行。5.2.2读取文本文件helloFile=open("d:\\python\\hello.txt")fileContent=""whi

leTrue:line=helloFile.readline()ifline=="":#或者ifnotlinebreakfileContent+=linehelloFile.close()print(fileConte

nt)写文件与读文件相似,都需要先创建文件对象连接。所不同的是,打开文件时是以“写”模式或“添加”模式打开。如果文件不存在,则创建该文件。与读文件时不能添加或修改数据类似,写文件时也不允许读取数据。“w”写模式打开已有文件时,会覆盖文件原有内容,从头

开始,就像我们用一个新值覆写一个变量的值。•1.write()方法•write方法将字符串参数写入文件。5.2.3写文本文件helloFile=open("d:\\python\\hello.txt","a")helloFile.write("thirdline

.")helloFile.close()5.2.3写文本文件•writelines()方法writelines()方法将字符串列表参数写入文件。注意换行需要自己添加。b=["Firstline\n","Secondline\n","third

line\n"]helloFile=open("d:\\python\\hello.txt","w")helloFile.writelines(b)helloFile.close()5.2.4文件内移动•无论读或写文件,Python都会跟踪文件中的读写位置。在默认情况下,文件

的读/写都从文件的开始位置进行。Python提供了控制文件读写起始位置的方法,使得我们可以改变文件读/写操作发生的位置。•tell()函数可以计算文件当前位置和开始位置之间的字节偏移量。5.2.4文件内移动>>>exampl

eFile=open("d:\\python\\example.txt","w")>>>exampleFile.write("0123456789")>>>exampleFile.close()>>>exampleFile=open("d:\\py

thon\\example.txt")>>>exampleFile.read(2)'01'>>>exampleFile.read(2)'23'>>>exampleFile.tell()4>>>exampleFile.close()

•seek()函数将文件当前指针由引用点移动指定的字节数到指定的位置。•seek(offset[,whence])•应该牢记使用close方法关闭文件。5.2.5文件的关闭helloFile=open("d:\\python\\hello.txt"

,"w")try:helloFile.write("Hello,SunnyDay!")finally:helloFile.close()也可以使用with语句自动关闭文件:withopen("d:\\py

thon\\hello.txt")ashelloFile:s=helloFile.read()print(s)5.3文件操作1.获取路径和文件名os.path.dirname(path):返回path参数中的路径名称字符串。os.path.basena

me(path):返回path参数中的文件名。os.path.split(path):返回参数的路径名称和文件名组成的字符串元组。2.检查路径有效性os.path.exists(path):判断参数path的文件或文件夹是否存在。存在返回true,否则返回false。os.path.isfile

(path):判断参数path存在且是一个文件,则返回true,否则返回false。os.path.isdir(path):判断参数path存在且是一个文件夹,则返回true,否则返回false。3.查看文件大小os.path模块中的os.path.gets

ize()函数可以查看文件大小。5.3文件操作4.重命名文件os.rename()函数可以帮助我们重命名文件。os.rename("d:\\python\\hello.txt","d:\\python\\hel

loworld.txt")5.复制文件和文件夹shutil模块中提供一些函数,帮助我们复制、移动、改名和删除文件夹。可以实现文件的备份。6.文件和文件夹的移动和改名shutil.move(source,destination):shutil.move()函数与shutil.copy()函数用法相

似,参数destination既可以是一个包含新文件名的路径,也可以仅包含文件夹。7.删除文件和文件夹os模块和shutil模块都有函数可以删除文件或文件夹。os.remove(path)/os.unlink(p

ath):删除参数path指定的文件。os.remove("e:\\python-backup\\data-backup.txt")os.path.exists("e:\\python-backup\\

data-backup.txt")#False文件应用案例——游戏地图存储

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?