【主要内容】
函数:
函数:对功能的封装
语法:
def 函数名(形参):
函数体
函数名(实参)
函数名:命名规则和变量一样
函数的返回值:
return, 函数执行完毕. 不会执行后面逻辑
1. 如果函数中不写return返回None
2. 只写return 返回None
3. return 返回值. 返回一个值
4. return 值1, 值2,... 返回多个值. 调用方接收到的是元组
参数:
在函数执行的时候给函数传递的信息
1. 形参:
1. 位置参数.
2. 默认值参数. 当调用的时候不给传值使用默认值
3. 混合使用. 顺序: 1. 位置参数, 2, 默认值参数
2. 实参:
1.位置参数. 按照位置给形参赋值
2. 关键字参数. 按照名称给形参赋值
3. 混合参数. 先用位置参数, 再用关键字参数
【代码】
1、函数的引入
1 # while 1: 2 # print("首先, 打开手机") 3 # print("打开陌陌") 4 # print("找一个看着还不错的某一某") 5 # print("出来约一约.开开心心") 6 # print("各回各家,各找各妈") 7 8 # 需要把上面这个功能进行定义或者封装. 在需要的时候.随时拿过来执行, 封装的这个东西就是函数 9 10 # 定义一个功能叫yue 11 def yue(): 12 # 函数体,代码块 13 print("首先, 打开手机") 14 print("打开陌陌") 15 print("找一个看着还不错的某一某") 16 print("出来约一约.开开心心") 17 print("各回各家,各找各妈") 18 19 # 函数的调用, 函数名() 20 yue() # 执行函数 # 第一次调用 21 print("正常上班") 22 yue() # 第二次调用
2、函数的返回值
1 # def yue(): 2 # print("约你") 3 # print("约他") 4 # print("我不约") 5 # return "大妈" # return 返回值 当函数结束的时候. 给调用方一个结果 6 # 7 # ret = yue() 8 # print(ret) 9 # 10 # ret2 = yue() 11 # print(ret2) 12 13 # 只要函数执行到return 函数就会停止执行 14 # 1. 每个函数如果在函数中不写return, 默认返回None 15 # 2. 我们也可以只写一个return, 也是返回None, 停止函数的执行 16 # 3. return 一个返回值. 你在调用方能接受到一个返回值 17 # 4. return 多个返回值. 多个值需要用,隔开 接收的位置. 接收的是元组. 18 19 # def yue(): 20 # print("约一约") 21 # return # 函数就停止了 22 # ret = yue() 23 # print(ret) 24 25 # def yue(): 26 # print("打开陌陌") 27 # print("大阳哥出马") 28 # return "大妈", "萝莉", "模特" 29 # 30 # a,b,c = yue() # 多个返回值在接受的位置接受到的是tuple类型的数据 31 # print(a) 32 # print(b) 33 # print(c)
3、函数的参数
1 # def yue(fangshi, age): # 形参 2 # print("打开手机") 3 # print("打开%s" % fangshi) 4 # print("找一个漂亮的妹子") 5 # print("年龄最好是%s" % age) 6 # print("出来约一约") 7 # 8 # yue("微信") 9 # yue("探探", 38) 10 # yue("陌陌", 26) 11 12 # def fn(a,b,c): 13 # print(a) 14 # print(b) 15 # print(c) 16 # 17 # fn(1, 2, 3) 18 # fn(b=3, a=2, c=1) # 在实参调用的时候 . 可以指定参数的值是多少. 关键字(形参)参数 19 20 21 # def gn(name, age, address, id, sex, hobby): 22 # print("人的名字叫%s, 年龄:%s, 地址:%s, id是:%s, 性别:%s, 爱好是:%s" % (name, age, address, id, sex, hobby)) 23 # gn("太白", 58, "保定", 1, "不详", "女") # 位置参数 24 # gn(id=1, name="太白", address="保定", hobby="女", age=58, sex="不详") # 关键字(形参)参数 25 # gn("太白", 58, "保定", id="3", sex="女", hobby="不详") 26 27 def regist(id, name, sex="男"): 28 print("录入学生信息:id是%s, 名字是%s, 性别是:%s" % (id, name, sex)) 29 30 regist(1, "大阳哥") 31 regist(2, "徐卫星") 32 regist(3, "毛尖妹妹", "女") 33 34 35 # 参数: 在函数执行的时候给函数传递的信息 36 # 形参: 在函数声明的位置.声明出来变量 37 # 实参: 在函数调用的时候. 实际你给函数传递的值 38 # 函数的参数个数是没有要求的 但是,在运行的时候. 形参和实参要匹配. 按照位置把实参赋值给形参 39 # 参数的分类: 40 # 站在实参的角度: 41 # 1. 位置参数 42 # 2. 关键字参数 43 # 3. 混合参数, 注意顺序. 先写位置参数, 然后在写关键字参数. 否则会报错 44 # 站在形参的角度: 45 # 1. 位置参数 46 # 2. 默认值参数 47 # 3. 默认值参数和位置参数混合使用. 顺序: 先写位置参数. 然后在写默认值参数
4、实际应用
1 # 1+2+3+4+5+6+7+8+9+....+100 = ? 5050 2 # 对功能的封装 3 # def sum(n): 4 # s = 0 5 # count = 1 6 # while count <= n: 7 # s = s + count 8 # count = count + 1 9 # return s 10 # 11 # ret = sum(456) 12 # print(ret) 13 14 # 计算n是奇数还是偶数 15 16 # def fn(n): 17 # if n%2 == 0: 18 # return "偶数" 19 # return "奇数" 20 # 21 # print(fn(456)) 22 23 # lst = ["大阳哥", "徐卫星"] 24 # print(lst.append("胡辣汤")) # 没有return 25 # 26 # s = "哈哈" 27 # print(s.replace("哈", "呵")) # 一定有return
5、作业与练习
1 # ***********作业讲解************** 2 ''' 3 #1.1 4 f=open("a1.txt",mode="r",encoding="utf-8") 5 # for line in f: 6 # print(line) 7 s=f.read() 8 print(s) 9 f.close() 10 11 # 1.2 12 f=open("a1.txt",mode="a",encoding="utf-8") 13 f.write(" 信不信由你") 14 f.flush() 15 f.close() 16 17 #1.3 18 f=open("a1.txt",mode="r+",encoding="utf-8") 19 f.read() 20 f.write(" 信不信由你,反正我信了") 21 f.flush() 22 f.close() 23 24 #1.5 25 import os 26 with open("a1.txt",mode="r",encoding="utf-8") as f1, 27 open("a1_new.txt",mode="w",encoding="utf-8") as f2: 28 s=f1.read() 29 ss=s.replace("我说的都是真的。哈哈","你们就相信吧~ 我说的都是真的。哈哈") 30 f2.write(ss) 31 os.remove("a1.txt") 32 os.rename("a1_new.txt","a1.txt") 33 34 #6★★★★★ 35 f=open("a6.txt",mode="r",encoding="utf-8") 36 line=f.readline() 37 lst=line.split() 38 result=[] 39 #接着往后读 40 for lin in f:#读取每一行 41 ll=lin.split()#每一行进行切割 42 dic={} #每一行对应的字典 43 for i in range(len(ll)):#i表示ll的索引 44 dic[lst[i]]=ll[i] 45 result.append(dic)#将每一个字典放入列表 46 print(result) 47 ''' 48 49 #************今日练习*****************