1 文件
1.1 文件简介
打开文件的模式有三种:
- r,只读模式(默认)。
- w,只写模式。【不可读;不存在则创建;存在则删除内容;因为会清空原有文件的内容,一定要慎用】
- a,追加模式。【可读; 不存在则创建;存在则只追加内容;】
注意最后要记得关闭文件:f.close()
1.2 文件使用实例
#!/usr/bin/python
#coding:utf-8
"""
@author: GoldenKitten
@contact: [email protected]
@software: PyCharm
@file: file_base.py
@time: 2018/8/11 13:54
"""
def file_read():
#f = open('helloworld.txt', 'rb')#以二进制方式读
#不指定编码默认使用系统编码
f=open('helloworld.txt','r',encoding='utf-8')#以读的模式打开文件,'r+'是读写模式
#data=f.readline()#读取一行
#dataList=f.readlines()#读取所有行存在一个列表里,注意每一行包括\n
'''
一行一行的读,高效的读取
for line in f:
print(line)
'''
data=f.read()#读取文件所有内容,文件指针指向内容结尾,不能应用于大文件
print(data)
offset=f.tell()#获取文件指针位置
print(f.seekable())#判断文件是否可以移动文件指针
f.seek(0)#将文件指针移到文件内容首部
print(f.encoding)#获取文件编码
print(f.truncate(20))#从头开始截断20个字符
f.close()
def file_write():
f=open('myfile.txt','w',encoding='utf-8')#以写的模式打开文件,'w+'是写读模式,无法修改原文件内容,只能追加
data='我爱吃土豆'
f.write(data)#写入文件,如果文件存在会覆盖原文件内容
#f.flush()#将缓冲区内容写入文件
f.close()
def file_append():
f = open('myfile.txt', 'a', encoding='utf-8') # 以追加的模式打开文件,'a+'追加读模式
data='我爱吃西红柿'
f.write(data)#如果文件存在则在文件末尾添加内容
f.close()
#文件修改方法,第一种打开两个文件,读取第一个文件内容写到第二个文件里,修改文件内容
if __name__ == "__main__":
#file_read()
#file_write()
file_append()
为了避免打开文件后忘记关闭,可以通过管理上下文,即用with语句
with open('helloworld.txt','r',encoding='utf-8') as f:
打开多个文件
with open('helloworld.txt','r',encoding='utf-8') as f,\
open('helloworld1.txt','r',encoding='utf-8') as f1:
2 函数
2.1 函数简介
编程语言中函数定义:一种逻辑结构化和过程化的编程方法。
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。
Python 定义函数使用 def 关键字
def 函数名(参数列表):
函数体
2.2 函数类型
#!/usr/bin/python
#coding:utf-8
"""
@author: GoldenKitten
@contact: [email protected]
@software: PyCharm
@file: func.py
@time: 2018/8/11 16:41
"""
#多个形参定义,参数组,*代表参数不固定
def fun1(*args):
print(args)#args是一个元组,将N个参数转换成元组
def fun2(grade,**kwargs):#接收一个字典,将N个参数转换成字典
print(kwargs)#kwargs={'name':'xxx','age':22}
def fun3(a,b=3,*args,**kwargs):#默认参数,args不能接收关键字参数,也就是name='xxx'是接收不了的
global c
c=3#加了global代表c为全局变量,没有加则代表c为局部变量,只能在函数内使用和修改
print(a,b)#a是一个局部变量,不可变类型是不能在局部变量里改变的,列表字典集合不用加global可以直接修改
def main():
fun1(1,2,3,4)
fun1(*[1,2,3,4])#*args=*[1,2,3,4] args=tuple([1,2,3,4])
fun2(30,name='xxx',age=22)#必须以关键字传值,参数组一定要放到最后面
fun2(30,**{'name':'xxx','age':22})
c=2#a是一个全局变量
if __name__ == "__main__":
main()
3 高阶函数
变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。
扫描二维码关注公众号,回复:
4932919 查看本文章
def add(x,y,f):
return f(x)+f(y)
res=add(1,2,abs)#abs是一个标准函数的函数名称
print(res)
4 匿名函数
匿名函数是没有名字的
calc=lambda x:x*3
print(calc(3))
# 结果为9