• Python语言:函数的使用


    按我的理解,编程世界中的函数就是一个模块:提前写好一个特定功能,方便以后直接调用且实现其功能,可以大大提高工作效率。

    今天我们通过一个python语言的函数使用小案例来进一步加深对函数的理解。案例名字为S的银行之行。S是一个吝啬鬼,每天都要去银行查询他的银行卡余额。虽然现在手机银行都可以查到余额啦,可是他还是不信任这个非得银行去查看,风雨无阻,乐此不疲。老爷子每天先喝壶高的,然后信步走入帝豪银行查他的银行卡余额。你要问那个是帝豪银行啊,就是那个帝豪集团旗下的帝豪银行啊。今天也不例外,诸君请看S今天会在帝豪银行发生什么故事。

     S走进大厅,轻车熟路走到ATM机旁边,熟练的在系统中输入自己的名字,系统出现主菜单。

    • 主菜单如下:

    主菜单代码如下:

    1. def main():
    2. print("----------主菜单-----------")
    3. print("你好,%s,欢迎来到帝豪银行,请选择操作" % name)
    4. print("查询服务请点[1]")
    5. print("存款服务请点[2]")
    6. print("取款服务请点[3]")
    7. print("退出服务请点[4]")
    8. return input("请输入你的选择\n")

     S毫不犹豫的按下了查询银行卡余额的按键1,他看着大屏上的存款金额裂开了嘴,哈哈大笑,又仔仔细细的数了大屏上有几个0;噫,哈哈哈,500万,哈哈哈。他像个傻子似的在大厅里笑着,惹着众人侧目。柜姐以及大堂经理早已习以为常,无奈的摇了摇头。谁让S是银行的金主呢。

    • 查询页面如下:

     查询页面代码如下:

    1. # 定义全局变量 money
    2. money = 5000000
    3. # 定义查询函数
    4. def a(add):
    5. if add:
    6. print("----------查询余额-----------")
    7. print("%s你好,你的余额为%d" % (name, money))

    S看见自己的银行卡余额高兴坏了,加上昨天结算的30万工程款,自己的余额已经有500万了,S说:”今天必须好好的喝上一杯,还有城南x记熟食店的猪头肉和鸭子。200足够。那就取出200块去买点吧。”他虽然抠抠搜搜的是个吝啬鬼可是在吃这方面却是很乐意掏银子的——在他高兴的时候。不吃非得活活饿死不可。

    • 取款页面如下:

    取款页面代码如下:

    1. # 定义取款函数
    2. def c(num2):
    3. global money #还是使用全部变量 money
    4. if num2 <= money:
    5. money -= num2
    6. print("你好%s,你共取出%d元" % (name, num2))
    7. a(False)
    8. else:
    9. print("余额不足")

    S取了200块现金,来到店里买了鸡鸭鱼肉熟食若干,凉菜2斤打了一壶小酒准备回家自斟自饮好好喝一杯。不料刚走到半路上接到一个电话。对话如下:”老表啊,还记得我嘛,我是老x啊,前阵子你借我2万块钱支持我开煎饼摊,已经回本啦,现在还你钱啦”。虽然S很抠门可是和自己从小到大光屁股长大的老x还是很乐意的借出去2万块开煎饼摊的。“好好好,你把钱送到我家吧,我去把钱存了。”S和老x见面说了啥我们不提,S拿着2万块现金又来到了帝豪银行的ATM机前,输入自己的姓名进入主菜单页面然后按下存款的按钮2。

    • 存款页面如下:

    存款页面代码如下:

    1. # 定义存款函数
    2. def b(num1):
    3. global money # money还是全局变量
    4. money += num1
    5. print("----------存款-----------")
    6. print("%s你好,你存款%d元成功" % (name, num1))
    7. a(False)

        S把2万块存入银行卡后,点击系统退出按钮后,愉快的回了家。

    • 退出服务页面如下

    退出页面代码如下:

    1. while True:
    2. show = main() # 返回主菜单地输入值
    3. if show == "1":
    4. a(True) # 查询服务页面的函数调用
    5. continue
    6. elif show == "2":
    7. num3 = int(input("请输入存款金额"))
    8. b(num3) # 存款服务页面的函数调用
    9. continue
    10. elif show == "3":
    11. num4 = int(input("请输入取款金额"))
    12. c(num4) # 取款服务页面的函数调用
    13. continue
    14. else:
    15. print("退出菜单") # 退出菜单
    16. break

    案例全部代码如下:

    1. # 定义全局变量 money
    2. money = 5000000
    3. # 要求客户输入姓名
    4. name = input("请输入你的姓名\n")
    5. # 定义查询函数
    6. def a(add):
    7. if add:
    8. print("----------查询余额-----------")
    9. print("%s你好,你的余额为%d" % (name, money))
    10. # 定义存款函数
    11. def b(num1):
    12. global money
    13. money += num1
    14. print("----------存款-----------")
    15. print("%s你好,你存款%d元成功" % (name, num1))
    16. a(False)
    17. # 定义取款函数
    18. def c(num2):
    19. global money
    20. if num2 <= money:
    21. money -= num2
    22. print("你好%s,你共取出%d元" % (name, num2))
    23. a(False)
    24. else:
    25. print("余额不足")
    26. def main():
    27. print("----------主菜单-----------")
    28. print("你好,%s,欢迎来到帝豪银行,请选择操作" % name)
    29. print("查询服务请点[1]")
    30. print("存款服务请点[2]")
    31. print("取款服务请点[3]")
    32. print("退出服务请点[4]")
    33. return input("请输入你的选择\n")
    34. while True:
    35. show = main() # 返回主菜单地输人值
    36. if show == "1":
    37. a(True) # 查询服务页面的函数调用
    38. continue
    39. elif show == "2":
    40. num3 = int(input("请输入存款金额"))
    41. b(num3) # 存款服务页面的函数调用
    42. continue
    43. elif show == "3":
    44. num4 = int(input("请输入取款金额"))
    45. c(num4) # 取款服务页面的函数调用
    46. continue
    47. else:
    48. print("退出菜单") # 退出菜单
    49. break

    案例代码完整运行结果如下

    代码运行逻辑:

    输入名字进入主菜单,然后按提示输入数字进入相应的页面进行操作,操作完毕后会返回到主菜单页面,按4会退出系统。

    关于a函数调用的时候,实参分别为true和false的原因:

    在a函数中,使用if语句判断需要是否打印输出存款页面的表头而使用的形参罢了。

    关于直接输入名字便可进行操作的原因:

    考虑不周,没有想到需要加入输入银行卡的卡号和密码等系列操作。

    后记:

    这篇博客从傍晚写到天黑,大概2个小时,累坏我啦。这算是目前来说我写过最长的学习笔记以及耗时最久的一篇博客了。现在是2023年9月30日20:14:01,农历8月16,,周六。有点想你,安好。

    本文结束。

  • 相关阅读:
    自动化运维:Ansible脚本之playbook剧本
    MySQL8.0 索引优化-invisible index
    快速排序算法
    基础测试干了4年,自学了自动化(太片面),突然接到被裁员消息
    Spring Boot和Spring MVC常用注解
    【Leetcode刷题】复制带随机指针的链表&&有效的括号
    NoClassDefFoundError: Landroid/databinding/DataBinderMapperImpl
    有没有想过 Java 中的 main 方法为什么一定要用public修饰
    【代码分析】初学解惑C++:函数适配器
    轻量级音乐服务器LMS
  • 原文地址:https://blog.csdn.net/weixin_63279307/article/details/133438835