第六节:函数
一、函数的定义
函数是组织好的,可重复使用的,用来实现相关功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,比如print()。我们也可以自己创建函数,这被叫做用户自定义函数。
1 定义函数
def 函数名(参数): 代码1 代码2 ......
2 调用函数
函数名(参数)
注意:
1. 不同的需求,参数可有可无。2. 在Python中,函数必须:先定义后使用。
二、函数中的参数
1、必要传参,也叫位置参数
定义函数时,根据需求必需要传递的参数, 而且,在调用函数时根据函数定义的参数位置顺序来传递参数。
注意:传递和定义参数的顺序及个数必须一致。
2、关键字传参
函数调用,通过“键=值”形式加以指定。可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求。
注意: 函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序。
3、默认传参
用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用)。
4、不定长传参
不定长参数也叫可变参数。用于不确定调用的时候会传递多少个参数(不传参也可以)的场景。此时,来进行参数传递,会显得非常方便。
不定长普通参数不定长关键字参数三、函数的返回值
return 语句用于返回函数的值,并且退出函数,选择性地使用return 语句, 默认是返回 None
return a, b
写法,返回多个数据的时候,默认是元组类型。return后面可以连接列表、元组或字典,以返回多个值。 四、局部变量和全局变量
1、局部变量
就是在函数内部定义的变量;其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用的;
因为其作用范围只是在自己的函数内部,所以不同的函数可以定义相同名字的局部变量
当函数调用时,局部变量被创建,当函数调用完成后这个变量就不能够使用了
2、全局变量
全局变量和局部变量的区别在于定义在函数的外面,全局变量在整个py文件中声明,全局范围内可以使用;
注意: 当函数内出现局部变量和全局变量相同名字时,函数内部中的 变量名 = 数据 ,此时理解为定义了一个局部变量,而不是修改全局变量的值。如果要修改全局变量,必须使用global。
五、总结
函数的定义:可重复使用的,用来实现某个功能的代码段。
函数使用
定义函数def 函数名(): 代码1 代码2 ...
调用函数 函数名()
函数的参数:
必要传参默认传参关键字传参不定长传参函数的返回值
作用:函数调用后,返回需要的计算结果return关键字局部变量和全局变量
局部变量:在函数内部定义的变量,只能在函数内部使用。全局变量:是在函数外部定义的变量,所有函数内部都可以使用这个变量。第七节:文件和文件夹的操作
一、IO流(Stream)
通过“流”的形式允许计算机程序使用相同的方式来访问不同的输入/输出源。stream是从起源(source)到接收的(sink)的有序数据。我们这里把输入/输出源对比成“水桶”,那么流就是“管道”。
文件流: 就是源或者目标都是文件的流。
二、文件流的操作
打开文件流文件对象 = open(目标文件, 访问模式)
操作
读文件对象.read()文件对象.readlines()文件对象.readline()
写 文件对象.write()
seek() 指针操作 关闭
文件对象.close()
访问模式 模式 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
三、文件和文件夹的操作
在Python中文件和文件夹的操作要借助os模块里面的相关功能。OS模块是Python标准库中的一个用于访问操作系统功能的模块。
首先需要导入OS模块: import os
import os # 使用之前先导入os.name # 查看当前操作系统的名字,"nt"表示Windows,"posix"表示Linuxos.sep # 获取当前系统平台路径分隔符os.getcwd() # 获取当前工作目录os.environ[key]/os.getenv(key) # 获取当前环境变量值os.listdir(path) # 列出指定目录path的所有文件和目录名os.chdir(path) # 切换目录os.mkdir(path)/os.makedirs(path) # 创建单层目录/多层目录os.rmdir(path)/os.removedirs(path) # 删除单层空目录/多层空目录os.remove(file_name) # 删除文件os.rename(old_name,new_name) # 修改文件或目录名称os.path.abspath(path) # 获取指定相对路径的绝对路径os.path.split(path) # 获取指定路径的目录名或文件名os.path.isfile(path) # 判断指定路径目标是否为文件os.path.isdir(path) # 判断指定路径目标是否为目录os.path.exists(path) # 判断指定路径是否存在os.path.splitext(path) # 分离文件拓展名os.path.join(path,*paths) # 路径连接os.path.base(path) # 提取文件名os.path.dirname(path) # 提取文件路径os.path.getsize(path) # 返回文件大小