按我的理解,编程世界中的函数就是一个模块:提前写好一个特定功能,方便以后直接调用且实现其功能,可以大大提高工作效率。
今天我们通过一个python语言的函数使用小案例来进一步加深对函数的理解。案例名字为S的银行之行。S是一个吝啬鬼,每天都要去银行查询他的银行卡余额。虽然现在手机银行都可以查到余额啦,可是他还是不信任这个非得银行去查看,风雨无阻,乐此不疲。老爷子每天先喝壶高的,然后信步走入帝豪银行查他的银行卡余额。你要问那个是帝豪银行啊,就是那个帝豪集团旗下的帝豪银行啊。今天也不例外,诸君请看S今天会在帝豪银行发生什么故事。
S走进大厅,轻车熟路走到ATM机旁边,熟练的在系统中输入自己的名字,系统出现主菜单。
主菜单代码如下:
- def main():
- print("----------主菜单-----------")
- print("你好,%s,欢迎来到帝豪银行,请选择操作" % name)
- print("查询服务请点[1]")
- print("存款服务请点[2]")
- print("取款服务请点[3]")
- print("退出服务请点[4]")
- return input("请输入你的选择\n")
S毫不犹豫的按下了查询银行卡余额的按键1,他看着大屏上的存款金额裂开了嘴,哈哈大笑,又仔仔细细的数了大屏上有几个0;噫,哈哈哈,500万,哈哈哈。他像个傻子似的在大厅里笑着,惹着众人侧目。柜姐以及大堂经理早已习以为常,无奈的摇了摇头。谁让S是银行的金主呢。
查询页面代码如下:
- # 定义全局变量 money
- money = 5000000
-
- # 定义查询函数
- def a(add):
- if add:
- print("----------查询余额-----------")
- print("%s你好,你的余额为%d" % (name, money))
S看见自己的银行卡余额高兴坏了,加上昨天结算的30万工程款,自己的余额已经有500万了,S说:”今天必须好好的喝上一杯,还有城南x记熟食店的猪头肉和鸭子。200足够。那就取出200块去买点吧。”他虽然抠抠搜搜的是个吝啬鬼可是在吃这方面却是很乐意掏银子的——在他高兴的时候。不吃非得活活饿死不可。
取款页面代码如下:
- # 定义取款函数
- def c(num2):
- global money #还是使用全部变量 money
- if num2 <= money:
- money -= num2
- print("你好%s,你共取出%d元" % (name, num2))
- a(False)
- else:
- print("余额不足")
S取了200块现金,来到店里买了鸡鸭鱼肉熟食若干,凉菜2斤打了一壶小酒准备回家自斟自饮好好喝一杯。不料刚走到半路上接到一个电话。对话如下:”老表啊,还记得我嘛,我是老x啊,前阵子你借我2万块钱支持我开煎饼摊,已经回本啦,现在还你钱啦”。虽然S很抠门可是和自己从小到大光屁股长大的老x还是很乐意的借出去2万块开煎饼摊的。“好好好,你把钱送到我家吧,我去把钱存了。”S和老x见面说了啥我们不提,S拿着2万块现金又来到了帝豪银行的ATM机前,输入自己的姓名进入主菜单页面然后按下存款的按钮2。
存款页面代码如下:
- # 定义存款函数
- def b(num1):
- global money # money还是全局变量
- money += num1
- print("----------存款-----------")
- print("%s你好,你存款%d元成功" % (name, num1))
- a(False)
S把2万块存入银行卡后,点击系统退出按钮后,愉快的回了家。
退出页面代码如下:
- while True:
- show = main() # 返回主菜单地输入值
- if show == "1":
- a(True) # 查询服务页面的函数调用
- continue
- elif show == "2":
- num3 = int(input("请输入存款金额"))
- b(num3) # 存款服务页面的函数调用
- continue
- elif show == "3":
- num4 = int(input("请输入取款金额"))
- c(num4) # 取款服务页面的函数调用
- continue
- else:
- print("退出菜单") # 退出菜单
- break
案例全部代码如下:
- # 定义全局变量 money
- money = 5000000
-
- # 要求客户输入姓名
- name = input("请输入你的姓名\n")
-
-
- # 定义查询函数
- def a(add):
- if add:
- print("----------查询余额-----------")
- print("%s你好,你的余额为%d" % (name, money))
-
-
- # 定义存款函数
- def b(num1):
- global money
- money += num1
- print("----------存款-----------")
- print("%s你好,你存款%d元成功" % (name, num1))
- a(False)
-
-
- # 定义取款函数
- def c(num2):
- global money
- if num2 <= money:
- money -= num2
- print("你好%s,你共取出%d元" % (name, num2))
- a(False)
- else:
- print("余额不足")
-
-
- def main():
- print("----------主菜单-----------")
- print("你好,%s,欢迎来到帝豪银行,请选择操作" % name)
- print("查询服务请点[1]")
- print("存款服务请点[2]")
- print("取款服务请点[3]")
- print("退出服务请点[4]")
- return input("请输入你的选择\n")
-
-
- while True:
- show = main() # 返回主菜单地输人值
- if show == "1":
- a(True) # 查询服务页面的函数调用
- continue
- elif show == "2":
- num3 = int(input("请输入存款金额"))
- b(num3) # 存款服务页面的函数调用
- continue
- elif show == "3":
- num4 = int(input("请输入取款金额"))
- c(num4) # 取款服务页面的函数调用
- continue
- else:
- print("退出菜单") # 退出菜单
- break
案例代码完整运行结果如下
代码运行逻辑:
输入名字进入主菜单,然后按提示输入数字进入相应的页面进行操作,操作完毕后会返回到主菜单页面,按4会退出系统。
关于a函数调用的时候,实参分别为true和false的原因:
在a函数中,使用if语句判断需要是否打印输出存款页面的表头而使用的形参罢了。
关于直接输入名字便可进行操作的原因:
考虑不周,没有想到需要加入输入银行卡的卡号和密码等系列操作。
后记:
这篇博客从傍晚写到天黑,大概2个小时,累坏我啦。这算是目前来说我写过最长的学习笔记以及耗时最久的一篇博客了。现在是2023年9月30日20:14:01,农历8月16,,周六。有点想你,安好。
本文结束。