【Python 基础 2022 最新】第五课 函数


概述

从今天开始, 小白我将带领大家学习一下 Python 零基础入门的内容. 本专栏会以讲解 + 练习的模式, 带领大家熟悉 Python 的语法, 应用, 以及代码的基础逻辑.

【Python 基础 2022 最新】第五课 函数_调用函数

函数

函数 (Function) 是一段可以帮助我们实现我们想要功能的代码段. 函数可以重复使用, 我们也可以自定义函数.

【Python 基础 2022 最新】第五课 函数_调用函数_02

格式:

def 函数名(参数1, 参数2, 参数3...):
函数主体

无参函数

例子:

# 定义无参函数
def func():
print("祖国你好")

# 调用函数
func()

输出结果:

祖国你好

含参函数

例子:

# 定义函数
def num_compare(num1, num2):
# 条件判断, 比较数字大小
if num1 > num2:
print("第一个数字大")
elif num1 == num2:
print("两个数字相同")
else:
print("第二个数字大")

# 调用函数
num_compare(1, 2)

输出结果:

第二个数字大

更优的写法:

# 定义函数
def num_compare(num1, num2):
# 判断传入的参数是否为数字
if str(num1).isdigit() == False or str(num2).isdigit() == False:
print("参数必须为数字")
return # 跳出函数

# 条件判断, 比较数字大小
if num1 > num2:
print("第一个数字大")
elif num1 == num2:
print("两个数字相同")
else:
print("第二个数字大")

# 调用函数
num_compare("a", 2)
num_compare("c", "d")
num_compare(1, 2)

输出结果:

参数必须为数字
参数必须为数字
第二个数字大

我们将传入的参数转换为字符串 (String), 然后通过函数​​isdigit()​​判断是否为数字, 避免了可能会发生的错误.

参数

参数 (Parameter)

Python 中的参数有两大类:

  • 形式参数
  • 实际参数

【Python 基础 2022 最新】第五课 函数_局部变量_03

形参

形参 (形式参数), 是在函数定义, 的时候命名的参数.

例子:

# 定义函数
def sum(num1, num2): # num1, num2为形式参数
# 返回求和
return num1 + num2

# 获取结果
total = sum(2, 3) # 2, 3为实际参数
print(total)

输出结果:

5

实参

实参 (实际参数) 是在实际执行是, 传递给函数的参数. 形参相当于实参的一个副本.

例子:

# 定义函数
def multi(num1, num2): # num1, num2为形式参数

# 返回乘积
return num1 *num2


# 获取结果
total = multi(2, 3) # 2, 3为实际参数
print(total)

输出结果:

6

变量

局部变量

局部变量 (Local Variable) 只能在变量所在的函数内使用. 当我们创建局部变量时, 内存中会临时分配一块空间, 当函数执行完该临时空间就会被回收.

例子:

# 定义函数
def func():
# 局部变量
a = 10
b = 20

# 调试输出
print("函数内")
print(a)
print(b)

# 调用函数
func()

# 在函数外调用变量 (报错)
print("函数外")
print(a)
print(b)

输出结果:

Traceback (most recent call last):
File "C:/Users/Windows/Desktop/讲课/第五课 函数/第五课 局部变量.py", line 17, in <module>
print(a)
NameError: name 'a' is not defined
函数内
10
20
函数外

注意: 局部变量无法在函数外调用

全局变量

例子:

# 在函数体外定义的变量为全局变量
a = 10

# 定义函数
def func():
# 使用global修饰符在函数内申明变量
global b
b = 10

# 调试输出
print("函数内")
print(a)
print(b)


# 调用函数
func()

# 输出结果
print("函数外")
print(a)
print(b)

输出结果:

函数内
10
10
函数外
10
10