当前位置: 首页 > news >正文

Python---函数

函数定义:

"""
def 函数名(传入参数):函数体return 返回值
"""

函数调用:

"""
函数名(传入参数)
"""

例子:

# 不带参
def check():print("欢迎光临\n请进")
check()#带参
def he(m, n):   # 形参result = m + nprint(f"{m}+{n}={result}")
he(109, 2)      # 实参

函数返回值:

"""
def 函数名(传入参数):函数体return 返回值
变量 = 函数(参数)
"""

例子:

def add(a, b):result = a + breturn resultprint("1")  # return后面的语句不能执行r = add(3, 1)
print(r)
如果函数没有使用return语句返回数据,那么函数有返回值吗?
实际上是:有的。
Python中有一个特殊的字面量: None,其类型是:<lass NoneType'>无返回值的函数,实际上就是返回了: None这个字面量

 例如:

def say_hi():print("你好")
result = say_hi()
print(result)             # None
print(f"{type(result)}")  # <class 'NoneType'>

None的使用场景:

"""
None类型的应用场景
None作为一个特殊的字面量,用于表示:空、无意义,其有非常多的应用场景。1.用在函数无返回值上2.用在if判断上在if判断中,None等同于False一般用于在函数中主动返回None,配合if判断做相关处理3.用于声明无内容的变量上定义变量,但暂时不需要变量有具体值,可以用None来代替#暂不赋予变量具体值name = None
"""
# 用在函数无返回值上
def say_hi2():print("你好")return None
result2 = say_hi2()
print(result2)             # None
print(f"{type(result2)}")  # <class 'NoneType'># None用于if判断
def check_age(age):if age > 18:return "SUCCESS"else:return Noneresult3 = check_age(16)
if  not result3:print("未成年")# None用于声明无初始内容的变量
name = None

函数作用域:局部变量与全局变量

函数作用域:

num1 = 100   # 全局变量
def a():num2 = 200   # 局部变量print(num1)  # 函数内能使用 全局 变量print(num2)  # 函数内能使用 局部 变量
a()
print(num1)   # 函数外 可以 使用 全局 变量
# print(num2   # 函数外 不能 使用 局部 变量
在函数内修改全局变量----局部与全局互不影响
num = 100  # 全局变量
def a1():num = 200  # 局部变量,不会影响全局变量print(num)
a1()
print(num)   # 100
若要在函数内声明变量为全局变量  ---使用global
num = 100
def a2():global numnum = 200print(num)
a2()
print(num)

总结小案例:

name = input("请输入你的姓名")
money = 10000000
# 查询
def query(show_header):if show_header:print("-------查询余额-------")print(f"{name}您好,您的余额剩余:{money}元")# 存款
def saving(num):global moneymoney += numprint("------存款-------")print(f"{name},您存款{num}元成功")query(False)# 取款
def get_money(num1):global moneymoney -= num1print("------取款-------")print(f"{name},您取款{num1}元成功")query(False)# 主菜单
def main():print("----------主菜单------------")print(f"{name},您好,欢迎来到银行ATM,请选择操作")print("查询余额\t[输入1]")print("存款\t\t[输入2]")print("取款\t\t[输入3]")print("退出\t\t[输入4]")return input("请输入你的选择")while True:keyboard_input = main()if keyboard_input == "1":query(True)continue   # 通过continue继续下一次循环elif keyboard_input == "2":num = int(input("请输入存的金额:"))   # 默认字符串saving(num)continueelif keyboard_input == "3":num = int(input("请输入取款金额:"))get_money(num)continueelse:print("退出")break

http://www.lryc.cn/news/155264.html

相关文章:

  • Myvatis关联关系映射与表对象之间的关系
  • 算法通关村第十四关:黄金挑战-数据流的中位数
  • 【2023集创赛】国家集创中心杯三等奖:不对称轻失配运算放大器
  • 手写Mybatis:第18章-一级缓存
  • 哈夫曼编码实现文件的压缩和解压
  • 解决六大痛点促进企业更好使用生成式AI,亚马逊云科技顾凡采访分享可用方案
  • Qt 定时器放在线程中执行,支持随时开始和停止定时器。
  • java 过滤器 接口(API)验证入参,验签(sign) Demo
  • 独家!微信正在灰测一款全新消金产品
  • 阿秀C++笔记-学习记录
  • 前端入门到入土?
  • 架构设计基础设施保障IaaS之网络
  • zabbix安装部署
  • 零碎的C++
  • 模糊测试面面观 | 模糊测试是如何发现异常情况的?
  • C#备份数据库文件
  • 行军遇到各种复杂地形怎么处理?
  • Python Number(数字).............................................
  • 设置 Hue Server 与 Hue Web 界面之间的会话超时时间
  • openGauss学习笔记-57 openGauss 高级特性-并行查询
  • 软考(1)-面向对象的概念
  • 深度学习推荐系统(四)WideDeep模型及其在Criteo数据集上的应用
  • 第十二章 YOLO的部署实战篇(中篇)
  • 面试题查漏补缺 i++和 ++ i哪个效率更高
  • Docker的数据管理(持久化存储)
  • 定时脚本自动自动将文件push到git
  • 025: vue父子组件中传递方法控制:$emit,$refs,$parent,$children
  • 使用js搭建简易的WebRTC实现视频直播
  • LeetCode 2707. Extra Characters in a String【动态规划,记忆化搜索,Trie】1735
  • 设计模式行为型-模板模式