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 小时前
[Python] 从《千字文》中随机挑选汉字
后端·python
cup117 小时前
[技术复盘] Windows Python 打包实战:Nuitka 环境踩坑总结与 CI 自动化构建全指南
python·ai·环境变量·ci·nuitka·skill
aqi009 小时前
15天学会AI应用开发(七)有了大模型为什么还要引入RAG
人工智能·python·大模型·ai编程·ai应用
金銀銅鐵11 小时前
用 Python 实现 Take-Away 游戏
python·游戏
copyer_xyf11 小时前
Agent 流程编排
后端·python·agent
copyer_xyf12 小时前
Agent RAG
后端·python·agent
copyer_xyf12 小时前
【RAG】向量数据库:milvus
后端·python·agent
copyer_xyf12 小时前
Agent 记忆管理
后端·python·agent
星云穿梭1 天前
用Python写一个带图形界面的学生管理系统——完整教程
python