python函数实例应用案例


一、函数的用法

1. 函数可以做赋值

def func():
    print('from func')
f=func()

2.函数可以当做参数被调用

3.可以放入列表等当中

1 l=[func,]     #作为元素时,函数名不加括号
2 l[0]()       #调用
View Code

4.案例1:

  1)小白写的程序 

 1 def login():
 2     print('登录功能')
 3 def transfer():
 4     print('转账功能')
 5 def select():
 6     print('查询余额')
 7 while True:
 8     print(''''
 9     0 退出
10     1 登录
11     2 转账
12     3 查询余额
13     ''')
14     chice=input('请输入命令编号:').strip()
15     if not chice.isdigit():
16         continue
17     if chice=='0':
18         break
19     elif chice=='1':
20         login()
21     elif chice=='2':
22         transfer()
23     elif chice == '3':
24         select()
25     else:
26         print('输入指令不存在')
View Code

  2)我进一步优化(程序写死后添加功能不方便,一个功能写一个函数)

 

 1 def login():
 2     print('登录功能')
 3 def transfer():
 4     print('转账功能')
 5 def select():
 6     print('查询余额')
 7 func_dict={
 8     '1':login,
 9     '2':transfer,
10     '3':select
11 }
12 while True:
13     print(''''
14     0 退出
15     1 登录
16     2 转账
17     3 查询余额
18     ''')
19     chice=input('请输入命令编号:').strip()
20     # if not chice.isdigit():
21     #     continue
22     # if chice=='0':
23     #     break
24     # elif chice=='1':
25     #     login()
26     # elif chice=='2':
27     #     transfer()
28     # elif chice == '3':
29     #     select()
30     # else:
31     #     print('输入指令不存在')
32     if chice in func_dict.keys():
33         func_dict[chice]()
34     else:
35         print('输入指令不存在')
View Code

  3)高手的优化

 1 def login():
 2     print('登录功能')
 3 def transfer():
 4     print('转账功能')
 5 def select():
 6     print('查询余额')
 7 func_dict={
 8     '0':['退出',None],
 9     '1':['登录',login],
10     '2':['转账',transfer],
11     '3':['查询余额',select]
12 }
13 while True:
14     # print(''''
15     # 0 退出
16     # 1 登录
17     # 2 转账
18     # 3 查询余额
19     # ''')
20     for k in func_dict:      #解放以上print内容
21         print(k,func_dict[k][0])
22     chice=input('请输入命令编号:').strip()
23     # if not chice.isdigit():
24     #     continue
25     if chice=='0':
26         break
27     # elif chice=='1':
28     #     login()
29     # elif chice=='2':
30     #     transfer()
31     # elif chice == '3':
32     #     select()
33     # else:
34     #     print('输入指令不存在')
35     if chice in func_dict.keys():
36         func_dict[chice][1]()
37     else:
38         print('输入指令不存在')
View Code

5.函数的嵌套调用及定义

 1 def bijiao():
 2 # 对4个数字比较大小
 3     def max2(x,y):
 4         if x>y:
 5             return x
 6         else:
 7             return y
 8     def max4(a,b,c,d):
 9         res1=max2(a,b)
10         res2=max2(res1,c)
11         res3=max2(res2,d)
12         return res3
View Code

优点:减少代码量,清晰明了

 二、闭包函数

      闭包函数=名称空间与作用域+函数嵌套+函数对象        (核心点:名字的查找关系是以函数定义阶段为准)

  1.闭包的解释

    ‘闭’指的是该函数在函数内部;

    “包”指的是该函数包含对外层函数作用域名字(外不函数的变量)的引用; 

  2.定义闭包函数

    内部函数可以实现在外部调用。

1 def f1():
2     x=22222
3     def f2():
4         print(x)
5     return f2         #不管函数怎么调用,f2调用的永远是f1当中的变量,f2可以在任何地方调用
View Code

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM