Python函数进阶与文件操作详情
本篇攻略介绍Python中函数进阶与文件操作的相关内容,主要包括以下几个方面:
- 函数进阶
- 函数参数传递
- 匿名函数
- 递归函数
- 文件操作
- 文件读写
- 文件遍历与操作
函数进阶
函数参数传递
在Python中,可以通过位置参数、默认参数、可变参数和关键字参数四种方式对函数进行参数传递。
位置参数
位置参数是指直接通过顺序传递参数值的方式进行传递。例如:
def add(x, y):
return x + y
print(add(1, 2))
这里的x
和y
是位置参数,它们的值分别是1
和2
。
默认参数
默认参数是指给函数参数设置一个默认值,在调用函数时可以不传递该参数。例如:
def add(x, y=1):
return x + y
print(add(1))
这里的y=1
就是默认参数,如果调用add(1)
时没有传递y
这个参数,则使用默认值1
来计算。
可变参数
可变参数是指可以传递任意个数的参数,可以通过添加*
符号来声明。例如:
def add(*nums):
total = 0
for num in nums:
total += num
return total
print(add(1, 2, 3, 4))
这里的*nums
就是可变参数,可以传递任意个数的参数,这里传递了1,2,3,4
四个参数,它们将被打包成一个元组(1, 2, 3, 4)
传递给add()
函数。
关键字参数
关键字参数是指通过key=value
的方式传递参数,可以通过添加**
符号来声明。例如:
def person(**kwargs):
for key, value in kwargs.items():
print("{0}: {1}".format(key, value))
person(name="Tom", age=20, gender="male")
这里的**kwargs
就是关键字参数,可以传递任意个数的关键字参数,这里传递了name="Tom",age=20,gender="male"
三个参数,它们将被打包成一个字典{'name': 'Tom', 'age': 20, 'gender': 'male'}
传递给person()
函数。
匿名函数
匿名函数是指没有名称的函数,可以使用lambda
关键字来创建。例如:
f = lambda x: x * x
print(f(3))
这里创建了一个匿名函数,它的函数体为x * x
,可以将其赋值给变量f
。调用该函数时,传递参数3
,将得到结果9
。
递归函数
递归函数是指调用自身的函数。例如:
def factorial(n):
if n == 1:
return 1
return n * factorial(n-1)
print(factorial(5))
这里的factorial(n)
函数即为递归函数,它调用了自身,计算n
的阶乘。注意,在定义递归函数时,需要考虑结束递归的条件,否则可能会出现无限递归的情况,导致程序崩溃。
文件操作
文件读写
Python中可以使用open()
函数来打开一个文件,并进行读写操作。例如:
# 打开文件
f = open("test.txt", "w")
# 写入文件
f.write("Hello, world!")
# 关闭文件
f.close()
这里使用open()
函数打开一个名为test.txt
的文件,以写模式打开。然后使用write()
函数将字符串"Hello, world!"
写入该文件。最后使用close()
函数关闭文件。
文件遍历与操作
Python中可以使用os
模块来进行文件遍历和文件操作。
import os
# 遍历目录
for root, dirs, files in os.walk("."):
for name in files:
if name.endswith(".py"):
print(os.path.join(root, name))
# 删除文件
os.remove("test.txt")
# 重命名文件
os.rename("old.txt", "new.txt")
这里的os.walk()
函数可以遍历指定目录下的所有文件和子目录,os.remove()
函数可以删除一个文件,os.rename()
函数可以将一个文件重命名。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python函数进阶与文件操作详情 - Python技术站