学习目标
- 理解函数的基本概念和作用
- 掌握函数的定义和调用
- 学习参数传递和返回值
- 了解作用域的概念
学习内容
1. 函数的基本概念
函数是组织代码的基本方式,它将一组逻辑相关的操作封装在一起,通过函数名调用函数,可以使代码更简洁、更易读和维护。
2. 函数的定义和调用
- 定义函数:
python
def function_name(parameters):
"""函数的文档字符串(可选)"""
# 函数体
return value # 可选
- 调用函数:
python
function_name(arguments)
- 示例:
python
def greet(name):
"""打印问候语"""
print("Hello, " + name + "!")
greet("Alice")
greet("Bob")
3. 参数和返回值
-
参数传递:
- 位置参数:按位置传递参数。
- 关键字参数:按名称传递参数。
- 默认参数:为参数提供默认值。
- 可变参数:接受任意数量的位置参数或关键字参数。
python
# 位置参数
def add(a, b):
return a + b
print(add(3, 5)) # 传递参数3和5,输出结果是8
# 关键字参数
def greet(name, message):
print(message + ", " + name + "!")
greet(name="Alice", message="Good morning") # 使用关键字参数
# 默认参数
def greet(name, message="Hello"):
print(message + ", " + name + "!")
greet("Alice") # 使用默认参数,输出Hello, Alice!
greet("Bob", "Good evening") # 覆盖默认参数,输出Good evening, Bob!
# 可变参数
def add(*args):
return sum(args)
print(add(1, 2, 3, 4, 5)) # 传递任意数量的参数,输出结果是15
def display_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
display_info(name="Alice", age=30, city="New York") # 传递任意数量的关键字参数
-
返回值:
pythondef add(a, b): return a + b result = add(3, 5) print(result) # 输出结果是8
4. 作用域
-
局部变量和全局变量:
- 局部变量:在函数内部定义,作用域仅限于函数内部。
- 全局变量:在函数外部定义,作用域为整个程序
python
x = 10 # 全局变量
def my_function():
x = 5 # 局部变量
print("函数内部的x:", x)
my_function()
print("函数外部的x:", x)
global
关键字: 用于在函数内部声明全局变量。
python
x = 10
def my_function():
global x
x = 5
my_function()
print("函数外部的x:", x) # 输出结果是5
今日任务
-
定义并调用简单函数:
- 定义一个函数,打印问候语。
- 调用该函数并传递参数。
python
def greet(name):
"""打印问候语"""
print("Hello, " + name + "!")
greet("Alice")
greet("Bob")
-
练习参数传递和返回值:
- 定义一个函数,接受两个参数并返回它们的和。
- 使用位置参数、关键字参数和默认参数调用该函数。
- 定义一个函数,接受任意数量的参数,并返回它们的乘积。
python
def add(a, b):
return a + b
# 位置参数
print(add(3, 5))
# 关键字参数
print(add(a=3, b=5))
# 默认参数
def greet(name, message="Hello"):
print(message + ", " + name + "!")
greet("Alice")
greet("Bob", "Good evening")
# 可变参数
def multiply(*args):
result = 1
for num in args:
result *= num
return result
print(multiply(1, 2, 3, 4, 5))
-
理解并使用作用域:
- 定义一个包含局部变量的函数,并观察局部变量的作用域。
- 定义一个全局变量,并在函数内部修改它。
python
# 局部变量示例
x = 10
def my_function():
x = 5
print("函数内部的x:", x)
my_function()
print("函数外部的x:", x)
# 全局变量示例
y = 20
def modify_global():
global y
y = 15
modify_global()
print("函数外部的y:", y) # 输出结果是15
扩展练习
- 编写一个函数,接受一个列表并返回列表中的最大值。
python
def find_max(numbers):
max_num = numbers[0]
for num in numbers:
if num > max_num:
max_num = num
return max_num
print(find_max([1, 2, 3, 4, 5])) # 输出结果是5
- 编写一个函数,接受一个字符串并返回该字符串的反转。
python
def reverse_string(s):
return s[::-1]
print(reverse_string("hello")) # 输出结果是olleh