程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

Python学不会来打我(23)函数基础详解,一篇讲清所有知识点

hfteth 2025-06-15 16:25:44 技术文章 1 ℃

在Python编程中,函数(Function) 是组织和重用代码的基本单位。它可以帮助我们将复杂的任务拆分成多个小模块,使程序结构更清晰、逻辑更易理解、维护更方便。

本文将详细讲解 Python函数的基础知识:如何使用 def 定义函数、参数的传递方式、函数体的作用、返回值的设置以及函数调用的方法,并通过大量示例帮助你掌握函数的使用方法与实际应用场景。


一、什么是函数?

函数是一段可重复使用的代码块,它可以接收输入(称为“参数”),经过处理后返回输出(称为“返回值”)。函数的存在可以大大提高代码的复用性、可读性和可维护性。

函数的四个核心要素:

要素

含义说明

def

关键字,用于定义一个函数

参数

接收外部传入的数据

函数体

实现具体功能的代码块

返回值

函数执行完毕后返回给调用者的结果


二、1. 使用def定义函数

基本语法格式:

def 函数名(参数1, 参数2, ...):
    # 函数体代码
    return 返回值

示例:定义一个简单的问候函数

def greet():
    print("Hello, welcome to Python world!")

greet()  # 调用函数

输出:

Hello, welcome to Python world!

三、2. 函数的参数

参数是函数与外界沟通的桥梁。你可以通过参数向函数传递数据,从而让函数根据不同的输入做出不同的响应。

(1)无参函数

def say_hello():
    print("你好!")

(2)有参函数

示例:带一个参数的函数

def greet_user(name):
    print(f"你好,{name}!")

greet_user("Tom")  # 输出:你好,Tom!

示例:带多个参数的函数

def add(a, b):
    result = a + b
    print(f"{a} + {b} = {result}")

add(3, 5)  # 输出:3 + 5 = 8

(3)参数类型说明(Python 3.5+ 支持)

虽然Python是动态类型语言,但你可以为参数添加类型提示,增强可读性。

def multiply(a: int, b: int) -> int:
    return a * b

注意:类型提示不会强制检查类型,只是辅助阅读。

四、3. 函数体的作用

函数体是函数的核心部分,包含实现特定功能的代码逻辑。函数体内的变量只在函数内部有效(局部作用域)。

示例:函数体中的局部变量

def calculate_sum():
    a = 10
    b = 20
    total = a + b
    print(f"总和为:{total}")

calculate_sum()
# print(a) 
# 报错:NameError: name 'a' is not defined

五、4. 返回值(return)

函数可以通过 return 语句将结果返回给调用者。如果没有显式使用 return,函数默认返回 None。

示例1:返回计算结果

def square(x):
    return x * x

result = square(4)
print(result)  # 输出:16

示例2:提前退出函数

def check_age(age):
    if age < 18:
        return "未成年"
    else:
        return "成年"

print(check_age(16))  # 输出:未成年
print(check_age(20))  # 输出:成年

使用场景:

  • 数据处理后的结果返回。
  • 条件判断后提前结束函数执行。

六、5. 函数调用

函数调用就是执行已定义好的函数,并传入所需的参数。

示例:函数调用的基本形式

def say_hi(name):
    print(f"Hi, {name}!")

say_hi("Alice")  # 调用函数并传入参数

示例:将函数返回值赋给变量

def get_name():
    return "John"

user = get_name()
print(f"欢迎回来,{user}")

七、函数的进阶用法

(1)默认参数值

def greet(name="用户"):
    print(f"你好,{name}!")

greet()         # 输出:你好,用户!
greet("Tom")    # 输出:你好,Tom!

(2)关键字参数(按参数名传值)

def describe_pet(animal_type, pet_name):
    print(f"我有一只{animal_type},名字叫{pet_name}")

describe_pet(pet_name="小白", animal_type="狗")

(3)可变数量参数(*args 和 **kwargs)

*args:接收任意数量的位置参数

def sum_numbers(*numbers):
    total = sum(numbers)
    print(f"总和为:{total}")

sum_numbers(1, 2, 3)  # 输出:总和为:6

**kwargs:接收任意数量的关键字参数

def user_info(**info):
    for key, value in info.items():
        print(f"{key}: {value}")

user_info(name="Tom", age=20, city="北京")

八、函数的实际应用举例

场景1:登录验证函数

def login(username, password):
    valid_users = {
        "admin": "123456",
        "user1": "password"
    }
    if username in valid_users and 
               valid_users[username] == password:
        return True
    else:
        return False

result = login("admin", "123456")
if result:
    print("登录成功")
else:
    print("用户名或密码错误")

场景2:成绩等级评定函数

def get_grade(score):
    if score >= 90:
        return "A"
    elif score >= 80:
        return "B"
    elif score >= 70:
        return "C"
    elif score >= 60:
        return "D"
    else:
        return "F"

print(get_grade(85))  # 输出:B

场景3:批量文件重命名工具

import os

def rename_files(folder_path, prefix):
    index = 1
    for filename in os.listdir(folder_path):
        new_name = f"{prefix}_{index}
                            {os.path.splitext(filename)[1]}"
        os.rename(os.path.join(folder_path, filename), 
                            os.path.join(folder_path, new_name))
        index += 1

rename_files("./images", "image")

九、注意事项与最佳实践

  1. 函数应尽量单一职责
  2. 一个函数最好只完成一个任务,便于测试和维护。
  3. 合理使用默认参数
  4. 默认值通常用于简化调用,避免不必要的参数传递。
  5. 避免使用可变对象作为默认参数(如列表、字典)
def bad_function(a, lst=[]):  #  不推荐
    lst.append(a)
    return lst

正确做法:

def good_function(a, lst=None):
    if lst is None:
        lst = []
    lst.append(a)
    return lst
  1. 函数命名要清晰、有意义
  2. 如 calculate_total_price() 比 calc() 更具可读性。
  3. 文档字符串(docstring)必不可少
def add(a, b):
    """
    计算两个数的和
    
    参数:
        a (int): 第一个加数
        b (int): 第二个加数
        
    返回:
        int: 两数之和
    """
    return a + b

十、总结

函数是Python中最基本、最强大的工具之一。通过 def 定义函数、使用参数接收输入、编写函数体实现功能、通过 return 返回结果,我们能够构建出结构清晰、逻辑严谨的程序。

作为Python初学者,建议你在练习中多动手写代码,尝试不同类型的函数定义和调用,理解它们的行为差异。随着学习的深入,你会发现函数在实际开发中的强大作用。

掌握好函数,不仅能提升你的逻辑思维能力,还能为你后续学习模块化编程、面向对象编程等高级知识打下坚实基础。

希望本文能帮助你全面掌握Python函数的基础知识,并在今后的编程实践中灵活运用!

最近发表
标签列表