python2 六七章

目录

函数

多个返回值

函数多种传参方式

位置参数

关键字参数

缺省参数

不定长参数

匿名函数

函数作为参数传递

lambda匿名函数

文件操作

打开读取文件

写操作

追加写入操作


函数

多个返回值

如果一个函数要有多个返回值,可按照返回值的顺序,写对应顺序的多个变量接收即可

变量之间用逗号隔开

支持不同类型的数据return

def test_return():
    return 1, 'hello', True

x, y, z = test_return()
print(x)    #1
print(y)    #hello
print(z)    #True

函数多种传参方式

位置参数

调用函数时根据函数定义的参数位置来传递参数

注意:传递的参数和定义的参数的顺序及个数必须一致

关键字参数

函数调用时通过“键=值”形式传递参数

作用:可以让函数更加清晰、容易使用,同时也清除了参数的顺序要求

注意:函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序

def fun(name, age, gender):
    print(f'你的名字时{name},你的年龄是{age},你的性别是{gender}')
#位置参数
fun('tom', 12, '女')
#关键字参数
fun(name = '小明', age=12,gender='男')

缺省参数

缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传默认参数的值

注意:所有位置参数必须出现在默认参数之前(即默认参数值必须在最后),包括函数地定义和调用

作用:当调用函数时没有传递参数,就会使用默认时用缺省参数对应的值

def fun(name, age, gender = '男'):
    print(f'你的名字时{name},你的年龄是{age},你的性别是{gender}')
fun('tom', 12)  #你的名字时tom,你的年龄是12,你的性别是男
fun('jerrt',13,'女') #你的名字时jerrt,你的年龄是13,你的性别是女

不定长参数

不定长参数也叫可变参数,用于不确定调用的时候会传递多少个参数(不传参也可以)的场景

作用:当调用函数时不确定参数个数时,可以使用不定长参数

不定长参数类型:

① 位置传递

注意:传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组,args是元组类型,这就是位置传递

② 关键字传递

注意:参数是“键 = 值”形式的情况下,所有的“键 = 值”都会被kwargs接受,同时会根据“键 = 值”组成字典

# 位置传递的不定长
def fun(*args):
    print(args)
fun('tom')  #('tom',)
fun('tom',18)   #('tom', 18)
# 关键字传递的不定长
def fun1(**kwargs):
    print(kwargs)
fun1(name= 'tom', age = 18, id = 110)   #{'name': 'tom', 'age': 18, 'id': 110}

匿名函数

函数作为参数传递

这是一种计算逻辑的传递,而非数据的传递

def test_func(fun):
    result = fun(1,2)
    print(type(fun))    #<class 'function'>
    print(result)   #3
def compute(x,y):
    return x + y
test_func(compute)

lambda匿名函数

函数定义中:

def关键字,可以定义带有名称的函数,可重复使用

lambda关键字,可以定义匿名函数(无名称),只可临时使用一次

匿名函数定义语法:

lambda 传入参数:函数体(一行代码)

  • lambda是关键字,表示定义匿名函数
  • 传入参数表示匿名的形式参数,如:x ,y表示接收两个形式参数
  • 函数体内,就是函数的执行逻辑,要注意:只能写一行,无法写多行代码
def test_func(fun):
    result = fun(1,2)
    print(result)   #3
test_func(lambda x, y:  x + y)

文件操作

模式描述
r以只读方式打开文件。文件的指针将会放在文件的开头,这是默认模式
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头,这是默认模式。
r+

打开一个文件用于读写。文件指针将会放在文件的开头

rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头
w打开一个文只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有的内容会被删除。如果该文件不存在,创建新文件。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从头开始编辑,即原有内容会被编辑。如果该文件不存在,创建新文件。
w+打开一个文件用于读写。如果该文件已经存在则打开文件,并从头开始编辑,即原有内容会被删除,如果该文件不存在,创建新文件。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从头开始编写,即原有内容将会被删除。如果该文件不存在,创建新文件。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果文件不存在,创建新文件用于读写。

打开读取文件

① 打开文件

函数:open( name, mode, encoding )

name: 是要打开的目标文件名的字符串(可以包含文件所在的具体路径)

mode: 设置打开文件的模式(访问模式):只读,写入,追加等

encoding: 编码格式(推荐使用UTF-8)

注意:'f'是'open'函数的文件对象。

② read()

语法:文件对象.read(num)

num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据

f = open('1.txt', 'r', encoding='UTF-8')
print(f.read(10))
#abc
# efg
# hi

③ readlines()

readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素

f = open('1.txt', 'r', encoding='UTF-8')
s = f.readlines()
print(type(s))  #<class 'list'>
print(s)    #['abc\n', 'efg\n', 'hij']

④ readline()

一次读取一行内容

f = open('1.txt', 'r', encoding='UTF-8')
print(f.readline()) #abc
print(f.readline())#efg
print(f.readline())#hij

⑤ 文件的读取(for循环)

for line in f:
    print(line)

⑥ close()

⑦ with open 

语法:with open( ’pythontxt‘, 'r' ) as f:

                f.readlines()

通过在with open的语句块中对文件进行操作,可以在操作完成之后自动关闭close文件,避免遗忘掉close方法

写操作

文件对象 = open(’文件名或文件地址‘, 'w')

文件对象.write( 内容 )

文件对象.flush()

注意:

  • 直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区
  • 当调用flush的时候,内容会真正写入文件
  • 这样做是避免频繁的操作硬盘,导致效率下降
  • close()方法,带有flush()方法的功能

追加写入操作

文件对象 = open(’文件名或文件地址‘, 'a')

文件对象.write( 内容 )

文件对象.flush()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值