当前位置: 首页 > news >正文

Python--函数入门

1. 函数基础概念

1.1 什么是函数

  • 定义:函数是一段可重复调用的代码块,用于封装特定功能。

  • 核心作用

    • 代码重用:减少重复代码的编写。
    • 增强可读性:通过命名和模块化让代码逻辑更清晰。

1.2 函数的定义与调用

def 函数名(参数):
    """函数文档字符串(可选)"""
    函数体代码
    return 返回值  # 可选

# 示例
def greet(name):
    """向用户打招呼"""
    print(f"Hello, {name}!")

greet("Alice")  # 输出:Hello, Alice!

1.3 函数的应用场景

  • 场景1:重复代码封装

    def send_alert(email):
        # 发送邮件的10行代码
        pass
    
    if cpu_usage > 90:
        send_alert("admin@example.com")
    
  • 场景2:复杂逻辑分块

    def check_straight(cards):
        """判断是否为顺子"""
        pass
    
    def check_flush(cards):
        """判断是否为同花"""
        pass
    

2. 函数参数详解

2.1 位置参数与关键字参数

  • 位置传参:按参数定义顺序传递值。

    def add(a, b):
        return a + b
    
    add(3, 5)  # 输出:8
    
  • 关键字传参:通过参数名指定值,顺序可调。

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

2.2 默认参数

  • 定义时指定默认值,调用时可省略。

    def power(base, exponent=2):
        return base ** exponent
    
    power(3)    # 输出:9(使用默认指数2)
    power(3, 3) # 输出:27
    

2.3 动态参数

  • *args​:接收任意数量的位置参数,存储为元组。

    def sum_all(*args):
        return sum(args)
    
    sum_all(1, 2, 3)  # 输出:6
    
  • ​**kwargs​:接收任意数量的关键字参数,存储为字典。

    def print_info(**kwargs):
        for key, value in kwargs.items():
            print(f"{key}: {value}")
    
    print_info(name="Alice", age=25)
    

2.4 参数传递的注意事项

  • 混合使用顺序:位置参数 → 默认参数 → *args​ → **kwargs​。

  • 不可变与可变对象

    • 不可变对象(如整数、字符串)在函数内修改时会创建新对象。
    • 可变对象(如列表、字典)在函数内修改会直接影响原对象。

3. 函数返回值

3.1 返回值的基本使用

def is_even(num):
    return num % 2 == 0

print(is_even(4))  # 输出:True

3.2 返回值的类型与特性

  • 多返回值:自动打包为元组。

    def min_max(nums):
        return min(nums), max(nums)
    
    result = min_max([3, 1, 4])  # (1, 4)
    
  • 无返回值:默认返回 None​。

3.3 利用返回值控制流程

def find_user(users, target):
    for user in users:
        if user == target:
            return True  # 找到后立即终止函数
    return False

相关文章:

  • Docker 网络详解
  • 正则表达式--元字符-特殊符号(5)
  • vue+element-plus简洁完美实现淘宝网站模板
  • 【STM32】内存管理
  • UE_C++ —— Delegates
  • 网络安全营运周报
  • 【Linux系统编程】网络编程
  • 机器学习数学通关指南——拉格朗日乘子法
  • 汽水分离器 酿酒不锈钢碳钢蒸汽发生器锅炉空气旋风式油水分离器
  • Python----数据分析(Numpy一:numpy库简介,与list列表的区别,数组的创建,随机数组的创建)
  • 一、初始爬虫
  • 基于数据可视化学习的卡路里消耗预测分析
  • VisActor/VTable - 快速搭建表格
  • 【HeadFirst系列之HeadFirst设计模式】第10天之迭代器与组合模式:遍历与管理的艺术
  • 【C语言】第七期——字符数组、字符串、类型转换
  • JavaScript函数-arguments的使用
  • Kafka安装
  • 抽象类的好处
  • vue3学习2
  • 加密数据的模糊查询
  • 重庆公司网站建设价格/网络营销理论包括哪些
  • 网站是否wordpress/餐饮培训
  • 真人视频发牌网站开发/广州网络运营课程培训班
  • 免费淘宝网站建设/seo优化师
  • 燕赵邯郸网站建设/网络营销技术
  • 做新媒体广告的网站/口碑好的设计培训机构