跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python算法

Python 核心基础:函数、列表与元组实战指南

Python 编程中,函数用于封装逻辑避免重复代码,支持参数传递与返回值。列表为可变序列,适合动态数据存储;元组为不可变序列,保障数据安全且可作为字典键。掌握三者特性及操作是构建高效程序的基础。

CodeArtist发布于 2026/3/27更新于 2026/8/1739 浏览
Python 核心基础:函数、列表与元组实战指南

作为 Python 初学者,掌握函数、列表和元组是从'写代码'到'写好代码'的关键一步。它们不仅是语法核心,更是后续处理复杂数据、构建高效程序的基础。

一、函数:告别重复代码的'工厂'

写代码最忌讳的就是盲目复制粘贴。比如计算不同区间的数列和(1-100、300-400),如果不使用函数,需要重复写多组几乎一样的循环代码。一旦逻辑变更,所有重复代码都要改,效率极低。

函数的核心作用就是提取重复代码,实现复用。简单理解:函数像一个工厂,输入参数(原材料),经过内部加工(函数体),输出返回值(产品)。

1.1 定义与调用

# 定义一个求和函数
def calc_sum(begin, end):
    the_sum = 0
    for i in range(begin, end + 1):
        the_sum += i
    return the_sum

# 调用函数
print(calc_sum(1, 100))   # 输出:5050
print(calc_sum(300, 400)) # 输出:35150

注意: 函数必须先定义再调用,否则报 NameError。形参和实参个数必须匹配,否则会报 TypeError。

1.2 参数的灵活用法

Python 的参数机制比 C++ 或 Java 更灵活,主要有三个特性:

  1. 动态类型:形参无需指定类型,可接收多种类型。
  2. 默认值:给形参设置默认值,调用时可省略(默认值必须在无默认值参数后面)。
  3. 关键字参数:调用时显式指定参数名,可打乱顺序。
# 默认值示例
def add(x, y, debug=False):
    if debug:
        print(f"调试:x={x}, y={y}")
    return x + y

print(add(10, 20))          
(add(, , ))    


 ():
    ()

test(y=, x=)  
# 使用默认值 False
print
10
20
True
# 显式传参
# 关键字参数示例
def
test
x, y
print
f"x = {x}, y = {y}"
100
200
# 顺序无关

1.3 返回值与作用域

  • 返回值:执行到 return 时函数立即结束。一次可以返回多个值(用逗号分隔),接收时用多个变量对应。
  • 作用域:局部变量仅在函数内生效;全局变量在函数内修改需用 global 声明。同名变量在不同作用域互不影响。

1.4 进阶:嵌套与递归

  • 链式/嵌套调用:将函数返回值作为另一个函数的参数,或在函数内调用其他函数。每次调用都会在调用栈中新增一个栈帧。
  • 递归:函数调用自身。核心是必须有结束条件且每次逼近该条件,否则会导致 RecursionError。
# 递归计算阶乘
def factor(n):
    if n == 1:
        return 1
    return n * factor(n - 1)

print(factor(5))  # 输出:120

⚠️ 提示:递归虽简洁但易栈溢出,实际开发中优先用循环替代。

二、列表和元组:批量存储数据的容器

当需要存储多个数据时,单独定义变量不现实。列表(list)和元组(tuple)是 Python 最常用的序列类型。

核心区别:

  • 列表(list):可变容器,元素可增删改。
  • 元组(tuple):不可变容器,元素创建后无法修改。

2.1 列表(list)操作

列表支持下标访问、切片、增删查改等操作。下标从 0 开始,负数表示倒数。

a = [1, 2, 3, 4]

# 访问与修改
print(a[2])      # 3
a[2] = 100       # 修改为 [1, 2, 100, 4]

# 切片(左闭右开)
print(a[1:3])    # [2, 100]

# 增删
a.append(5)      # 尾插
a.pop()          # 删除末尾
a.remove(2)      # 按值删除

# 遍历
for elem in a:
    print(elem)

⚠️ 注意:不要用 list 作为变量名,以免覆盖内置函数。

2.2 元组(tuple)操作

元组用法与列表一致,但不可变。适合存储不需要修改的数据(如身份证号、坐标)。

b = (1, 2, 3)
print(b[0])      # 1
# b[0] = 100     # 报错:不支持修改

为什么需要元组?

  1. 安全性:防止数据被意外修改。
  2. 字典键:字典的键必须是可哈希对象(不可变类型),元组可以,列表不行。

2.3 小结

特性列表(list)元组(tuple)
定义方式[ ]( )
是否可变可变不可变
适用场景需频繁修改数据数据无需修改

日常开发中,如果元素不需要改变,优先考虑元组;如果需要改变,则使用列表。

目录

  1. 一、函数:告别重复代码的“工厂”
  2. 1.1 定义与调用
  3. 定义一个求和函数
  4. 调用函数
  5. 1.2 参数的灵活用法
  6. 默认值示例
  7. 关键字参数示例
  8. 1.3 返回值与作用域
  9. 1.4 进阶:嵌套与递归
  10. 递归计算阶乘
  11. 二、列表和元组:批量存储数据的容器
  12. 2.1 列表(list)操作
  13. 访问与修改
  14. 切片(左闭右开)
  15. 增删
  16. 遍历
  17. 2.2 元组(tuple)操作
  18. b[0] = 100 # 报错:不支持修改
  19. 2.3 小结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • C++ 实现红黑树:深入 STL map 底层原理
  • 如何配置 AI 大模型以适配个人编程习惯
  • Neo4j 图数据库从搭建到项目使用深度详解
  • Spatial Joy 2025 全球 AR&AI 赛事:资源、玩法及避坑攻略
  • Coze(扣子)全解析:100 个落地用途与发布使用指南
  • JavaScript 快速入门:环境搭建与基础知识
  • 基于 Python 的商品销售数据分析与可视化实战
  • 命令行大模型上下文协议(MCP)工具 MCPHost 使用实践
  • FLUX.1-dev FP8 量化模型部署与优化指南
  • RAG 入门教程:LangChain 框架中的向量存储
  • STL map 与 multimap 核心特性详解及实战应用
  • 搞懂 C++ 的 std::string:接口、拷贝与那些面试官爱问的细节
  • OpenClaw 多智能体路由实战:飞书多机器人配置
  • 自然语言处理在医疗健康领域的应用与实战
  • 前端流式输出实现详解:从原理到实践
  • Stable Diffusion 整合包实战:小白快速上手 AI 绘画指南
  • AI 赋能 PET-CT:诊断效率、成像质量与精准医疗
  • Faster-Whisper 实时语音转文本本地部署教程
  • AI 编程助手选型指南:Claude, Cursor, Aider 与 Copilot 对比
  • AI 大模型与互联网行业变革:人才需求及薪酬分析

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online