学习python收藏这一篇就够了(函数详解以及综合案例)

发布时间:2024年01月12日

函数

#定义一个简单的函数
def hs(x):
    if x >= 0:
        return x
    else:
        return -x

print(hs(10)) #10

函数的好处

  • 将功能封装在函数内,可供随时随地重复利用

  • 提高代码的复用性,减少重复代码,提高开发效率

函数的定义

def 函数名(传入参数):
	函数体
	return 返回值
	
	函数的调用:

函数名(参数)
案例1
#调用函数输出欢迎语
def hesuan():
    print("请出示您的健康吗以及核酸证明")
    return 
hesuan()
#请出示您的健康吗以及核酸证明

函数的传入参数

  • 函数定义中,提供的x和y,称之为:形式参数,表示函数声明将要使用2个参数

  • 参数之间使用逗号进行分隔

  • 函数调用中,提供1和2,称之为:实际参数,表示函数执行时真正使用的参数值

  • 传入的时候,按照顺序传入数据,使用逗号分隔

#定义2数相加的函数,通过参数接收被计算的2个数字
def ceshi1(x,y):
    result = x + y
    print(result)

ceshi1(1,2) #3

函数的返回值

函数执行完成后,返回给调用者的结果。

语法:

def 函数(参数):
	函数体
	return 返回值

变量 = 函数(参数)
def ceshi1(x,y):
    result = x + y
    return result

r = ceshi1(1,2) 
print(r)#3
None类型
#无return语句的函数返回值
def ceshi2():
    print("hello")

result2 = ceshi2()
print(f"无返回值函数,返回的内容是:{result2}")
print(f"无返回值函数,返回的内容类型是:{type(result2)}")
#无返回值函数,返回的内容是:None
#无返回值函数,返回的内容类型是:<class 'NoneType'>

#主动返回none
def ceshi2():
    print("hello")
    return None

result2 = ceshi2()

#none用于if判断
def ceshi(age):
    if age > 18:
        print("已成年")
    else:
        return None

result = ceshi(16)
if not result:
    print("未成年")

函数的嵌套调用

def fun_b():
    print(2)

def fun_a():
    print(1)

    fun_b()

    print(3)

fun_a() #1 2 3

函数中的作用域

局部变量

变量作用域指的是变量的作用范围

主要分两类:局部变量和全局变量

所谓局部变量是定义在函数体内的变量,即只在函数体内部生效

全局变量

指的是在函数体内,外都能生效的变量

num = 100
def test1():
    print(num)
def test2():
    print(num)
    
test1()
test2()
print(num)

使用global关键字,可以在函数内部声明变量为全局变量

num = 100
def test1():
    print(num)

def test2():
    global num 
    num = 200
    print(num)

test1()
test2()
print(num)
#100
200
200

综合案例

银行ATM

# 定义全局变量
money = 5000000
name = None
# 要求客户输入姓名
name = input("请输入姓名")


# 定义查询函数
def yue(show_header):
    if show_header:
        print("----查询余额----")
    print(f"{name}你好,您的余额剩余{money}")


# 定义存款函数
def cunkuan(num):
    global money  # money在函数内部定义为全局变量
    money += num
    print("----存款----")
    print(f"{name}你好,您成功存款{num}元")

    # 调用yue函数
    yue(False)


# 定义取款函数
def get_num(num):
    global money
    money -= num
    print("----取款----")
    print(f"{name}你好,你以成功取款{num}元")

    yue(False)


# 定义主菜单
def main():
    print("----主菜单----")
    print(f"{name}你好,欢迎来到python银行,请选择你的操作:")
    print("查询余额输入1")
    print("存款输入2")
    print("取款输入3")
    print("退出输入4")
    return input("请输入你的选择")


# 设置无限循环,确保程序不会退出
while True:
    key_input = main()
    if key_input == "1":
        yue(True)
        continue  # 通过continue进入下一次循环
    elif key_input == "2":
        num = int(input("请输入您想要的存款金额"))
        cunkuan(num)
        continue
    elif key_input == "3":
        num = int(input("请输入您想要取款的金额"))
        get_num(num)
        continue
    else:
        print("程序推出啦")
        break

文章来源:https://blog.csdn.net/m0_66011019/article/details/135554557
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。