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
相关推荐
开源技术1 分钟前
Python GeoPandas基础知识:地图、投影和空间连接
开发语言·ide·python
hedley(●'◡'●)4 分钟前
基于cesium和vue的大疆司空模仿程序
前端·javascript·vue.js·python·typescript·无人机
Cult Of4 分钟前
Alicea Wind的个人网站开发日志(2)
开发语言·python·vue
啊阿狸不会拉杆10 分钟前
《机器学习导论》第 5 章-多元方法
人工智能·python·算法·机器学习·numpy·matplotlib·多元方法
wangsir.27 分钟前
测试之自动化测试常用函数
python·测试
铁蛋AI编程实战31 分钟前
MemoryLake 实战:构建超长对话 AI 助手的完整代码教程
人工智能·python·microsoft·机器学习
清水白石00836 分钟前
《为什么说 deque 是 Python 滑动窗口的“隐藏神器”?深入解析双端队列的高效之道》
开发语言·python
kjkdd38 分钟前
5. LangChain设计理念和发展历程
python·语言模型·langchain·ai编程
摘星编程1 小时前
CANN ops-nn 激活函数算子全解析:从ReLU到GELU的演进与实现
python
love530love1 小时前
【高阶编译】Windows 环境下强制编译 Flash Attention:绕过 CUDA 版本不匹配高阶指南
人工智能·windows·python·flash_attn·flash-attn·flash-attention·定制编译