Python入门到精通(四)——Python函数

发布时间:2024年01月19日

Python函数

一、函数的定义

二、函数的参数及返回值

1、函数的参数

?2、函数的返回值

三、函数说明文档

四、函数的嵌套调用

五、变量的作用域

六、综合案例


一、函数的定义

定义:

调用:

  • 函数:是组织好的,可重复使用的,用来实现特定功能的代码段。
  • input()、print()、str()、int()等都是Python的内置函数
  • 将功能封装在函数内,可供随时随地重复利用
  • 提高代码的复用性,减少重复代码,提高开发效率
  • 参数不需要时,可以省略,但括号不可以省略
  • 返回值不需要时,也可以省略

代码示例

def say_hi():
    print("欢迎来到CSDN!\n请出示您的邀请卡")


# 调用函数
say_hi()

输出

二、函数的参数及返回值

1、函数的参数

语法解析:

  • 函数定义中,提供的x和y,称之为:形式参数(形参),表示函数声明将要使用2个参数
  • 参数之间使用逗号进行分隔
  • 函数调用中,提供的5和6,称之为:实际参数(实参),表示函数执行时真正使用的参数值
  • 传入的时候,按照顺序传入数据,使用逗号分隔
  • 传入参数的功能:在函数进行计算的时候,接受外部(调用时)提供的数据
  • 可以不使用参数,也可以使用任意N个参数

练习题

代码示例

# 练习题
def temperature(x):
    if x <= 37.5:
        print(f"您的体温是{x},体温正常,欢迎进入")
    else:
        print(f"您的体温是{x},体温异常,需要隔离")


temperature(36)
temperature(38)

输出

?2、函数的返回值

  • 返回值:函数在执行完成后,返回给调用者的结果
  • 通过return关键字,就能向调用者返回数据
  • 函数体在遇到return后就结束了,所以写在return后的代码不会执行
  • 如果没有使用return,默认返回None类型
  • 在if判断中,None等同于False
  • 定义变量,但暂时不需要变量有具体值,可以用None来代替

代码示例

# none类型
def say_hi():
    print("欢迎来到CSDN")


# 调用函数
result = say_hi()
print(f"无返回值函数,返回的内容是:{result}")
print(f"无返回值函数,返回的内容类型是:{type(result)}")

输出

三、函数说明文档

语法:

  • 定义完成后,输入三个 回车,会自动补全注释
  • 在PyCharm编写代码时,可以通过鼠标悬停,查看调用函数的说明文档
  • :param 用于解释参数
  • :return 用于解释返回值

代码示例

# 函数说明文档
def add(x, y):
    """
    输入三个“ 回车会自动补全注释
    :param x: 形参其中一个数字
    :param y: 形参另一个数字
    :return: 返回值是2者相加的结果
    """
    result = x + y
    return result


# 鼠标悬停在函数名上会显示说明文档
add(1, 2)

鼠标悬停示例

四、函数的嵌套调用

  • 嵌套:在一个函数中,调用另外一个函数
  • 过程:函数A中执行到调用函数B的语句,会将函数B全部执行完成后,继续执行函数A的剩余内容

代码示例

# 函数嵌套调用
def func_b():
    print("---2---")


def func_a():
    print("---1---")
    func_b()
    print("---3---")


func_a()

输出

五、变量的作用域

1、局部变量

  • 定义在函数体内部的变量,即只在函数体内部生效
  • 在函数体内部,临时保存数据,即当函数调用完成后,则销毁局部变量

2、全局变量

在函数体内、外都能生效的变量

3、global 关键字

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

局部变量、全局变量示例

# 定义全局变量
num = 200


def test_a():
    print(f"test_a:{num}")


def test_b():
    num = 500  # 局部变量
    print(f"test_b:{num}")


test_a()
test_b()
print(num)

输出

global 关键字使用示例

# 定义全局变量
num = 200


def test_a():
    print(f"test_a:{num}")


def test_b():
    # global 设置内部变量为全局变量
    global num
    num = 500  # 局部变量
    print(f"test_b:{num}")


test_a()
test_b()
print(num)

输出

六、综合案例

练习题

代码示例

# 综合案例
# 定义全局变量 money name
money = 500000
# name = None  # 此行可以省略
# 要求客户输入姓名
name = input("请输入您的姓名:")


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


# 定义存款函数
def saving(num):
    global money   # money 在函数内部定义为全局变量
    money += num
    print("--------------------存款----------------------")
    print(f"{name},您好,您存款{num}元成功")
    # 调用query查询余额函数
    query(False)


# 定义取款函数
def get_money(num):
    global money
    money -= num
    print("--------------------取款----------------------")
    print(f"{name},您好,您取款{num}元成功")
    # 调用query查询余额函数
    query(False)


# 定义主菜单函数
def main():
    print("--------------------主菜单----------------------")
    print(f"{name},你好,欢迎来到ATM机,请选择操作:")
    print("查询余额\t\t[输入1]")
    print("存款\t\t[输入2]")  # 通过\t制表符对其输出
    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  # 通过break退出程序

输出

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