python学习Day09--函数

【主要内容】

函数:
函数:对功能的封装
语法:
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("\n信不信由你")
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("\n信不信由你,反正我信了")
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("我说的都是真的。哈哈","你们就相信吧~\n我说的都是真的。哈哈")
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 #************今日练习*****************

猜你喜欢

转载自www.cnblogs.com/fengxb1213/p/12290739.html