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
相关推荐
deephub6 分钟前
Tokenformer:基于参数标记化的高效可扩展Transformer架构
人工智能·python·深度学习·架构·transformer
Open-AI23 分钟前
Python如何判断一个数是几位数
python
极客代码26 分钟前
【Python TensorFlow】入门到精通
开发语言·人工智能·python·深度学习·tensorflow
义小深29 分钟前
TensorFlow|咖啡豆识别
人工智能·python·tensorflow
疯一样的码农33 分钟前
Python 正则表达式(RegEx)
开发语言·python·正则表达式
进击的六角龙2 小时前
Python中处理Excel的基本概念(如工作簿、工作表等)
开发语言·python·excel
一只爱好编程的程序猿2 小时前
Java后台生成指定路径下创建指定名称的文件
java·python·数据下载
Aniay_ivy2 小时前
深入探索 Java 8 Stream 流:高效操作与应用场景
java·开发语言·python
gonghw4032 小时前
DearPyGui学习
python·gui
向阳12182 小时前
Bert快速入门
人工智能·python·自然语言处理·bert