函数
函数的多返回值
变量间逗号隔开,可以多种类型
def hello():
return 1,True,"hello"
x,y,z = hello()
函数的传参方式
- 位置参数,根据位置传参
def can1(x,y,z):
print(x,y,z)
can1(2,4,8)
- 关键字参数,根据 k = v 传参,可以和位置参数混用,位置参数需要在前
def can2(name,age,gender):
print(f"{name}\t{age}\t{gender}")
can2( name="jack", age=18,gender='男') # 不需要按照顺序
can2( "jack", age=18,gender='男')
#can2( name="jack", 18,gender='男') 错误
- 缺省参数(默认值),在函数定义的时候用 k = v 的方式设置默认值且默认值必须定义在最后(可以多个),传参时没有参数则默认
def can3(name,age=198,gender='女'):
print(f"{name}\t{age}\t{gender}")
can3("java")
- 不定长参数: *args传参,以元组形式接受参数;**kwargs,以字典方式接受参数
def can4(*args):
print(type(args))
print(args)
can4(1,"女",True)
def can5(**kwargs):
print(type(kwargs))
print(kwargs)
can5(name = "java",age = 11)
函数作为参数传递
作用:传入了计算逻辑
def add(x,y):
return x+y
def hello1(add):
print(type(add))
return add(1,2)
print(hello1(add))
函数的定义
- def定义有名称的函数,可以基于名称重复使用
- lambda定义匿名函数,只能临时使用一次
语法: lambda 传入参数 : 函数体
注意:函数体只能一行代码,且默认直接return
实例:print(hello1(lambda x, y : x + y))
文件
文件打开open()
open(name,mode,encoding)
打开文件或当文件不存在则为创建一个新文件
name:文件名的字符串或者路径的字符串,路径中目录间隔用/或者\
mode: 设置打开文件的访问模式: 只读"r",写入"w",追加"a'"等等
encoding: 设置编码格式(推荐"UTF-8")
实例:f = open("D:\\project\\\python-project\\code\\python-study\\a.txt","r",encoding="UTF-8")
文件读取
读取文件时若连续读取,会在上次读取的位置设置一个指针定位所在位置。例如:在读取一个文件时先read()读完了所有,在进行readLine()时就没有了,会显示[]。
read(num)
读取num个字节的文件,read()为读取所有
实例:
f.read(10)
和f.read()
readLines()
按照行读取文件内容,返回一个列表,每行结果为列表里的一个元素
readLine()
一次读取一行数据
for循环读取文件行
for line in f:
close()
关闭文件
with open
操作文件,自动关闭文件
with open("D:\\project\\\python-project\\code\\python-study\\a.txt","r",encoding="UTF-8") as f:
print(f.readlines())
文件写入和追加
f = open("D:\\project\\python-project\\code\\python-study/text.txt","w",encoding="UTF-8")
f.write("hello world!!!!") # 内容还没有写入硬盘在缓冲区
f.flush() # 将缓冲区的内容写入硬盘
f.close() # close()里面含有flush(),因此也能将文件内容写入硬盘
原有文件存在,w写入模式则会删除原内容后写入新内容,若要追加则用a即可
f = open("D:\\project\\python-project\\code\\python-study/text.txt","w",encoding="UTF-8")
f.write("你好,世界!!!")
f.close()