Python---函数

函数定义:

python 复制代码
"""
def 函数名(传入参数):
    函数体
    return 返回值
"""

函数调用:

python 复制代码
"""
函数名(传入参数)
"""

例子:

python 复制代码
# 不带参
def check():
    print("欢迎光临\n请进")
check()


#带参
def he(m, n):   # 形参
    result = m + n
    print(f"{m}+{n}={result}")
he(109, 2)      # 实参

函数返回值:

python 复制代码
"""
def 函数名(传入参数):
    函数体
    return 返回值
变量 = 函数(参数)
"""

例子:

python 复制代码
def add(a, b):
    result = a + b
    return result
    print("1")  # return后面的语句不能执行


r = add(3, 1)
print(r)
复制代码
如果函数没有使用return语句返回数据,那么函数有返回值吗?
实际上是:有的。
Python中有一个特殊的字面量: None,其类型是:<lass NoneType'>无返回值的函数,实际上就是返回了: None这个字面量

例如:

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

None的使用场景:

python 复制代码
"""
None类型的应用场景
None作为一个特殊的字面量,用于表示:空、无意义,其有非常多的应用场景。

1.用在函数无返回值上

2.用在if判断上
    在if判断中,None等同于False
    一般用于在函数中主动返回None,配合if判断做相关处理

3.用于声明无内容的变量上
    定义变量,但暂时不需要变量有具体值,可以用None来代替
        #暂不赋予变量具体值
        name = None
"""
python 复制代码
# 用在函数无返回值上
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 None


result3 = check_age(16)
if  not result3:
    print("未成年")

# None用于声明无初始内容的变量
name = None

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

函数作用域:

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

总结小案例:

python 复制代码
name = input("请输入你的姓名")
money = 10000000
# 查询
def query(show_header):
    if show_header:
        print("-------查询余额-------")
    print(f"{name}您好,您的余额剩余:{money}元")

# 存款
def saving(num):
    global money
    money += num
    print("------存款-------")
    print(f"{name},您存款{num}元成功")
    query(False)


# 取款
def get_money(num1):
    global money
    money -= num1
    print("------取款-------")
    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)
        continue
    elif keyboard_input == "3":
        num = int(input("请输入取款金额:"))
        get_money(num)
        continue
    else:
        print("退出")
        break
相关推荐
傲笑风2 分钟前
jupyter转PDF教程
python·jupyter
测试员周周2 分钟前
【AI测试功能2】AI功能测试的“不可确定性“难题与应对思路:从精确断言到统计判定的完整方案
大数据·人工智能·python·功能测试·测试工具·单元测试·测试用例
szial12 分钟前
uv 实战指南:用一个工具重塑 Python 开发工作流
开发语言·python·uv
Aision_21 分钟前
为什么 CTI 场景需要知识图谱?
人工智能·python·安全·web安全·langchain·prompt·知识图谱
BU摆烂会噶22 分钟前
【LangGraph】LangGraph 工具中访问运行时上下文——ToolRuntime
人工智能·python·langchain·人机交互
MATLAB代码顾问9 小时前
5大智能算法优化标准测试函数对比(Python实现)
开发语言·python
ting94520009 小时前
Tornado 全栈技术深度指南:从原理到实战
人工智能·python·架构·tornado
果汁华9 小时前
Browserbase Skills:让 Claude Agent 真正“看见“网页世界
人工智能·python
ZhengEnCi9 小时前
04-缩放点积注意力代码实现 💻
人工智能·python
DeepReinforce10 小时前
三、AI量化投资:使用akshare获取A股主板20260430所有的涨停股票
python·量化·akshare·龙头战法