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
相关推荐
奈斯。zs8 分钟前
yjs08——矩阵、数组的运算
人工智能·python·线性代数·矩阵·numpy
Melody20508 分钟前
tensorflow-dataset 内网下载 指定目录
人工智能·python·tensorflow
学步_技术9 分钟前
Python编码系列—Python抽象工厂模式:构建复杂对象家族的蓝图
开发语言·python·抽象工厂模式
Narutolxy43 分钟前
Python 单元测试:深入理解与实战应用20240919
python·单元测试·log4j
Amo Xiang1 小时前
2024 Python3.10 系统入门+进阶(十五):文件及目录操作
开发语言·python
liangbm31 小时前
数学建模笔记——动态规划
笔记·python·算法·数学建模·动态规划·背包问题·优化问题
B站计算机毕业设计超人1 小时前
计算机毕业设计Python+Flask微博情感分析 微博舆情预测 微博爬虫 微博大数据 舆情分析系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI
爬虫·python·深度学习·算法·机器学习·自然语言处理·数据可视化
羊小猪~~2 小时前
深度学习基础案例5--VGG16人脸识别(体验学习的痛苦与乐趣)
人工智能·python·深度学习·学习·算法·机器学习·cnn
waterHBO4 小时前
python 爬虫 selenium 笔记
爬虫·python·selenium
编程零零七5 小时前
Python数据分析工具(三):pymssql的用法
开发语言·前端·数据库·python·oracle·数据分析·pymssql