Python函数

Python函数

函数介绍

函数:组织好的、可重复使用的、用来实现特定功能的代码段
好处:

  • 将功能封装在函数内,可供随时随地重复利用
  • 提高代码的复用性,减少重复代码,提高开发效率
# 需求,统计字符串的长度,不适用函数len()
str1 = "yingxionglianmeng"
str2 = "yuanshen"
str3 = "gta5"

# 定义一个计数的变量
count = 0
for i in str1:
    count += 1
print(f"字符串{str1}的长度是:{count}")

count = 0
for i in str2:
    count += 1
print(f"字符串{str2}的长度是:{count}")

count = 0
for i in str3:
    count += 1
print(f"字符串{str3}的长度是:{count}")

print("使用函数计数...................................")
# 可以使用函数,优化重复的过程
def my_len(data):
    count = 0
    for x in data:
        count += 1
    print(f"字符串{data}的长度是:{count}")

my_len(str1)
my_len(str2)
my_len(str3)

函数的定义

语法:

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

使用步骤:先定义函数,后调用函数
注意事项:参数不需要,可以省略。返回值不需要,可以省略

# 定义一个函数
def say_hi():
    print("hi 我是崔佛,我要学Python")

# 调用函数,让定义函数开始工作
say_hi()

# 结果
hi 我是崔佛,我要学Python

函数的参数

函数的参数:在函数运行的时候,接受外部传入的数据
注意事项:

  • 函数定义中的参数,称之为形式参数
  • 函数调用中的参数,称之为实际参数
  • 函数的参数数量不限,使用逗号分隔开
  • 传入参数的时候,要和形式参数一一对应,逗号隔开
# 定义三个数字想加的函数
def add(x, y, z):
    result = x + y + z
    print(f"{x} + {y} + {z}的计算结果是:{result}")

# 调用函数
add(5, 6, 7)

# 结果
5 + 6 + 7的计算结果是:18

函数的返回值定义

返回值:函数在执行完成后,返回给调用者的结果;使用关键字:return 来返回结果
注意事项:函数体在遇到return后就结束了,所以写在return后的代码不会执行

# 定义一个函数,完成2数组相加功能
def add(a, b):
    result = a + b
    # 通过返回值,将想加的结果返回给调用者
    return result
    print("哈哈哈哈")

# 调用函数传入参数,获取返回值
r = add(5, 6)
print(r)

# 结果
11

函数的返回值None类型

  1. None:None是类型"NoneType"的字面量,用于表示:空的、无意义的。返回None的两种方式:
    • 函数不使用return语句即返回None
    • 主动返回 return None
  2. 使用场景:
    • 函数返回值
    • if判断
    • 变量
# 定义一个函数,无返回值
def say_hi():
    print("哈哈哈")

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


# 主动返回None类型
def say_hi2():
    print("返回None类型")
    return None

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

# None用于if判断
def check_age(age):
    if age > 18:
        return "SUCCESS"
    else:
        return None

result = check_age(16)
if not result:
    # 进入if表示result是None类型也就是False
    print("未成年,不可以进入")

# None用于声明无初始内容的变量
name = None

# 结果
哈哈哈
无返回值函数,返回的内容是:None
无返回值函数,返回的内容类型是:<class 'NoneType'>
返回None类型
无返回值函数,返回的内容是:None
无返回值函数,返回的内容类型是:<class 'NoneType'>
未成年,不可以进入

函数的说明文档

对函数进行说明解释,帮助更好理解函数的功能

  • :param 用于解释参数
  • :return 用于解释返回值
# 定义函数,进行文档说明
def add(x, y):
    """
    add函数可以接收2个参数,进行2数想加的功能
    :param x: 形参x表示相加的其中一个数字
    :param y: 形参y表示相加的其中一个数字
    :return: 2数相加的结果
    """
    result = x + y
    print(f"2数相加的结果是:{result}")
    return result

add(5, 6)

调用函数时,鼠标悬停在方法上可直接看到注释信息

函数的嵌套调用

函数的调用:在一个函数中,调用另外一个函数

# 定义函数func_a
def func_a():
    print("func_a...")

# 定义函数func_b
def func_b():
    print("func_b...start")
    # 调用函数func_a
    func_a()
    print("func_b...end")

# 调用函数
func_b()

# 结果
func_b...start
func_a...
func_b...end

函数中变量的作用域

局部变量:作用范围在函数内部,在函数外部无法使用
全局变量:在函数内部和外部均可使用
如何将函数内定义的变量声明为全局变量:使用global关键字,global 变量

# 演示局部变量
def test_a():
    num = 100
    print(num)

test_a()
# 出了函数体,局部变量就无法访问了
# print(num)

# 演示全局变量
num = 200

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

def test_c():
    global num # 设置内定义的变量为全局变量
    num = 500
    print(f"test_c:{num}")

test_b()
test_c()
print(num)

## 结果
100
test_b:200
test_c:500
500
posted @ 2023-09-09 16:22  橙香五花肉  阅读(3)  评论(0编辑  收藏  举报