05-python函数进阶和文件

函数

函数的多返回值

变量间逗号隔开,可以多种类型

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()

文件总结

posted @ 2024-03-26 19:19  艾梦溪  阅读(22)  评论(0)    收藏  举报