第5天:函数

学习目标

  • 理解函数的基本概念和作用
  • 掌握函数的定义和调用
  • 学习参数传递和返回值
  • 了解作用域的概念
学习内容
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")  # 传递任意数量的关键字参数
  • 返回值:

    python 复制代码
    def 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
今日任务
  1. 定义并调用简单函数:

    • 定义一个函数,打印问候语。
    • 调用该函数并传递参数。
python 复制代码
def greet(name):
    """打印问候语"""
    print("Hello, " + name + "!")

greet("Alice")
greet("Bob")
  1. 练习参数传递和返回值:

    • 定义一个函数,接受两个参数并返回它们的和。
    • 使用位置参数、关键字参数和默认参数调用该函数。
    • 定义一个函数,接受任意数量的参数,并返回它们的乘积。
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))
  1. 理解并使用作用域:

    • 定义一个包含局部变量的函数,并观察局部变量的作用域。
    • 定义一个全局变量,并在函数内部修改它。
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
扩展练习
  1. 编写一个函数,接受一个列表并返回列表中的最大值。
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
  1. 编写一个函数,接受一个字符串并返回该字符串的反转。
python 复制代码
def reverse_string(s):
    return s[::-1]

print(reverse_string("hello"))  # 输出结果是olleh
相关推荐
倔强的石头1068 分钟前
【C++指南】vector(一):从入门到详解
开发语言·c++
程序员小远9 分钟前
Python+requests实现接口自动化测试框架
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
A叶子叶17 分钟前
Kong网关部署研究
python·spring cloud·微服务·gateway·kong
ITLiu_JH21 分钟前
scikit-surprise 智能推荐模块使用说明
开发语言·数据分析·智能推荐
聪明的墨菲特i24 分钟前
Python 办公技巧:PDF 自动化处理
python·pdf·自动化
User_芊芊君子28 分钟前
【Java】——数组深度解析(从内存原理到高效应用实践)
java·开发语言
Ronin-Lotus29 分钟前
深度学习篇---模型参数调优
人工智能·pytorch·python·深度学习·paddlepaddle·batch·学习率
林泽毅1 小时前
SwanLab硬件监控:英伟达、昇腾、寒武纪
python·深度学习·昇腾·英伟达·swanlab·寒武纪·训练实战
一 乐1 小时前
网红酒店|基于java+vue的网红酒店预定系统(源码+数据库+文档)
java·开发语言·数据库·毕业设计·论文·springboot·网红酒店预定系统
DARLING Zero two♡2 小时前
C++底层学习精进:模板进阶
开发语言·c++·模板