python编程基础(lv3_第四课)

学习目标:

python函数和文件操作

学习内容:

1、[函数] 2、[强化练习] 3、[文件操作、综合引用]

学习时间:

2小时

学习产出:

1、[函数]
		1、什么是函数
			(不多说)
		2、定义函数
			*格式:
				def 函数名():
					代码
		3、调用函数
			*通过函数名()调用
		4、注意:
			*每次调用函数时,函数都会从头开始执行,当这个函数中的代码执行完毕后,意味着调用结束了
			*当然了如果函数中执行到了return也会结束函数
		5、函数的文档说明
			*使用help(函数名)可以查看函数的相关说明
		6、函数参数
			类似C语言的函数参数
			*定义时小括号中的参数,用来接收参数用的,称为 “形参”
			*调用时小括号中的参数,用来传递给函数用的,称为 “实参”
		7、函数的返回值
			*使用return返回函数的返回值
			*使用变量接受函数的返回值
		8、四种函数类型
			无参数,无返回值
			无参数,有返回值
			有参数,无返回值
			有参数,有返回值
		9、函数的嵌套调用
			*一个函数里面又调用了另外一个函数,这就是所谓的函数嵌套调用
		10、局部变量
			*局部变量,就是在函数内部定义的变量
			*其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用的
			*因为其作用范围只是在自己的函数内部,所以不同的函数可以定义相同名字的局部变量(打个比方,把你、我是当做成函数,把局部变量理解为每个人手里的手机,你可有个iPhone8,我当然也可以有个iPhone8了, 互不相关)
			*局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储
			*当函数调用时,局部变量被创建,当函数调用完成后这个变量就不能够使用了			
		11、全局变量
			*如果一个变量,既能在一个函数中使用,也能在其他的函数中使用,这样的变量就是全局变量
			*当函数内出现局部变量和全局变量相同名字时,函数内部中的 变量名 = 数据 此时理解为定义了一个局部变量,而不是修改全局变量的值
			*如果在一个函数中需要对多个全局变量进行修改,那么可以使用global定义
		12、多函数程序大的基本使用流程
			*多个函数中共享数据方法:
				*使用全局变量
				*使用函数的返回值、参数
				*函数嵌套调用
		13、函数返回值2*如何返回多个值:
				*一个函数中可以有多个return语句,但是只要有一个return语句被执行到,那么这个函数就会结束了,因此后面的return没有什么用处
				*return后面可以是元组,列表、字典等,只要是能够存储多个数据的类型,就可以一次性返回多个数据
				*如果return后面有多个数据,那么默认是元组
		14、函数参数2*缺省参数
				*在形参中默认有值的参数,称之为缺省参数
					例如: def printinfo(name, age=35, sex):
				*调用函数时,缺省参数的值如果没有传入,则取默认值
				*注意:带有默认值的参数一定要位于参数列表的最后面
			*不定长参数:
				*有时可能需要一个函数能处理比当初声明时更多的参数, 这些参数叫做不定长参数,声明时不会命名。
					def functionname([formal_args,] *args, **kwargs):
						"""函数_文档字符串"""
						function_suite
						return [expression]
				*加了星号(*)的变量args会存放所有未命名的变量参数,args为元组
				*而加**的变量kwargs会存放命名参数,即形如key=value的参数, kwargs为字典
				*如果很多个值都是不定长参数,那么这种情况下,可以将缺省参数放到 *args的后面, 但如果有**kwargs的话,**kwargs必须是最后的
		15、拆包、交换两个变量的值
			*拆包:
				*对返回的数据直接拆包
				*拆包时要注意,需要拆的数据的个数要与变量的个数相同,否则程序会异常
				*除了对元组拆包之外,还可以对列表、字典等拆包
			*交换2个变量的值
				第1种方式
				# a = 4
				# b = 5
				# c = 0
				#
				# c = a
				# a = b
				# b = c
				#
				# print(a)
				# print(b)2种方式
				# a = 4
				# b = 5
				# a = a+b  # a=9, b=5
				# b = a-b  # a=9, b=4
				# a = a-b  # a=5, b=4
				# print(a)
				# print(b)3种方式
				a, b = 4, 5
				a, b = b, a
						
		16、引用
			*在python中,值是靠引用来传递来的
				我们可以用id()来判断两个变量是否为同一个值的引用;
			*引用当做实参
				*Python中函数参数是引用传递(注意不是值传递)
				*对于不可变类型,因变量不能修改,所以运算不会影响到变量自身
				*而对于可变类型来说,函数体中的运算有可能会更改传入的参数变量
		17、可变不可变类型
				*所谓可变类型与不可变类型是指:数据能够直接进行修改,如果能直接修改那么就是可变,否则是不可变
				*可变类型有: 列表、字典、集合
				*不可变类型有: 数字、字符串、元组			
		18、函数使用的注意事项
			*函数名不能重复
			*调用时有形参的需要传递形参,注意函数返回值的接收;
			*注意变量的作用域

2、[强化练习]

		1、项目练习:
			学生管理系统
		2、递归函数
			(有C语言基础不难理解递归函数)
		3、匿名函数
			*什么是匿名函数
				用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。
			*格式:
				lambda [arg1 [,arg2,.....argn]]:expression
				例如:
					sum = lambda arg1, arg2: arg1 + arg2
			*使用:
				sum(arg1,arg2)
			*注意:
				Lambda函数能接收任何数量的参数但只能返回一个表达式的值

				匿名函数不能直接调用print,因为lambda需要一个表达式
		
		4、列表推导式
			*所谓的列表推导式,就是指的轻量级循环创建列表
			*例如:
				a=[x for x in range(4)]
		5setlisttuple
			*setlisttuple之间可以相互转换
			*set()
			*list()
			*tuple()
			*使用set,可以快速的完成对list中的元素去重复的功能

3、[文件操作、综合引用]

		1、文件操作介绍
			*什么是文件	
				文件是以某种格式保存数据的集合;
			*文件的作用:
				就是把一些存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力
			
		2、文件的打开和关闭	
			/*打开文件
				open(文件名,访问模式)
					例如: f = open('test.txt', 'w')
				*访问模式
					r	:只读打开文件,文件指针至于开头
					w	:打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件
					a	:打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
					rb	:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
					wb	:以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件
					ab	:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
					r+	:打开一个文件用于读写。文件指针将会放在文件的开头
					w+	:打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
					a+	:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
					rb+	:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
					wb+	:以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
					ab+	:	以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写
			/*关闭文件
				close()
					例如:f.close()
				
		3、文件的读写
			1、写数据(write)
				例如:f.write('hello world, i am here!')
				*如果文件不存在那么创建,如果存在那么就先清空,然后写入数据
			2、读数据(read)
				例如:content = f.read(5)  # 最多读取5个数据
				*使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据
			3、读数据(readlines)
				例如:content = f.readlines()
				*就像read没有参数时一样,readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素
			4、读数据(readline)
				例如:content = f.readline()
				*一行行的读入数据
			5、应用1:
				制作文件的备份:
					输入文件的名字,然后程序自动完成对文件进行备份
				
		4、文件的相关操作
			*使用os模块
			1、文件的重命名
				例如:	
					import os
					os.rename("需要修改的路径及文件名", "新的路径及文件名")
			2、删除文件
				例如:
					import os
					os.remove("待删除的路径及文件名")
			3、创建文件夹
				例如:
					import os
					os.mkdir("目录名")
			4、获取当前目录
				例如:
					import os
					os.getcwd()
			5、改变默认目录
				例如:
					import os
					os.chdir("../")
			6、获取目录列表
				例如:
					import os
					os.listdir("./")
			7、删除文件
				例如:
					import os
					os.rmdir("文件名")
		5、综合运用
			项目:学生管理系统(文件版)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值