引言 (Introduction)

  • Python 是一门强大且优雅的语言,它的魅力在于能将你的想法变为现实。学会它,你将可以:
    • 开发网站: 打造属于自己的博客、作品集或在线工具。
    • 数据分析: 从海量数据中发现规律,做出更明智的决策。
    • 自动化脚本: 让电脑帮你处理繁琐的日常任务,解放你的时间。
    • 探索 AI: 站在时代的前沿,与人工智能进行有趣的互动。
  • 记录学习和使用Python的过程
    • 构建Python整体体系
    • 提高使用效率

Python入门 (First Steps in Python)

万丈高楼平地起。在正式用 Python 创造有趣的东西之前,我们需要先打好坚实的地基。这一部分,我们将一起完成所有必要的准备工作,为后续的学习铺平道路。

简介

安装Python

  • 你的电脑 (Windows/Mac) 上正确安装 Python 主程序。

选择代码编辑器

  • 选择vs code传统IDE,或者cursor 、trae等AI IDE

使用pyenv管理多版本Python

pyenv,是python的多版本管理工具。

pyenv 通过在系统路径(PATH)的最前端插入一个名为 “shims” 的目录来实现版本控制。当您运行 python 命令时,系统会先找到 pyenv 的 “shim”,然后 pyenv 会根据您当前的配置,决定启动哪个版本的真实 Python 解释器。

它主要通过三个层面来管理版本:

  1. Global (全局): 设置一个在您电脑上全局默认使用的 Python 版本。
  2. Local (本地): 为某一个特定的项目文件夹设置一个专属的 Python 版本。这个设置会覆盖全局设置。
  3. Shell (当前会话): 只在当前的终端会话中临时切换 Python 版本。这个设置优先级最高。

安装和配置pyenv

1
2
3
4
5
6
# 第一步:安装pyenv
brew install pyenv
# 第二步:配置 `pyenv` 到你的 Shell
~/.zshrc 文件文件下,添加配置代码
# 第三步:让配置立即生效,terminal执行如下命令
source ~/.zshrc

使用 pyenv 安装Python和查看Python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 查看可安装的Python版本
pyenv install --list

# 安装一个稳定版本(可以通过上面列出的版本,选择任意版本进行安装)
pyenv install 3.12.4

# 设置全局默认Python版本
pyenv global 3.12.4

# 验证Python安装
# 查看Python版本
python3 --version
pip3 --version
# > Python 3.12.4
# 查看python3命令的位置,它应该指向pyenv的“垫片”(shim)
which python3
which pip3
# > /Users/doubleming/.pyenv/shims/python3

pyenv常见命令

  • pyenv install --list

    • 查看所有可供安装的 Python 版本。
  • pyenv install <version>

    • 安装一个指定版本的 Python (例如: pyenv install 3.11.5)。
  • pyenv versions

    • 列出所有已经安装的 Python 版本,并用星号 标记出当前正在使用的版本。
    • 例子如下:系统安装了两个Python版本;system是macOS 系统自带的、或通过非 pyenv 方式安装的 Python 版本;3.12.4是通过pyenv安装的,星号表示 3.12.4当前终端会话中正在激活并使用的版本,****(set by PYENV_VERSION environment variable)这句解释了为什么 3.12.4 是当前激活的版本。
    1
    2
    system
    * 3.12.4 (set by PYENV_VERSION environment variable)
  • pyenv global <version>

    • 设置全局默认的 Python 版本 (例如: pyenv global 3.11.5)。
  • pyenv local <version>

    • 在当前项目文件夹下,设置该项目专用的 Python 版本 (例如: pyenv local 3.12.4)。它会在当前文件夹下创建一个 .python-version 文件来记录这个设置。

理解/运用全局安装和虚拟环境安装

可以用一个“书房”的比喻,帮我们快速理解“全局安装”和“虚拟环境安装”的区别

全局安装 (Global Installation):一个巨大、混乱的公共书架 📚

“全局安装”是指您直接在终端里运行 pip3 install <package>,将一个库安装到您系统或当前 Python 版本的主环境中。

  • 如何理解?
    • 这就像把您买回来的所有书(技术书、小说、漫画、菜谱)全都塞在一个巨大无比的公共书架上。这个书架为您所有的“项目”(比如“做饭”、“学编程”、“写小说”)服务。
  • 什么时候使用?
    • 只应该用于安装那些您希望在任何地方都能直接从命令行使用的、系统级的工具
    • 例子yt-dlp (YouTube视频下载器), httpie (命令行HTTP客户端), 或者 pyenv, pip 本身。这些是工具,而不是某个具体项目的“依赖”。
  • 有什么问题?(关键)
    1. 依赖冲突 (Dependency Hell):这是最大的问题。假设“项目A”(写Web应用)需要 SQLAlchemy 1.4版本,而“项目B”(做数据分析)需要 SQLAlchemy 2.0版本。您在公共书架上只能放一个版本,导致其中一个项目无法正常工作。
    2. 环境污染:公共书架会越来越乱,塞满了各种项目的书。久而久之,您完全不知道哪些书是哪个项目需要的,哪些是过时的、可以扔掉的。这使得项目难以维护和复现。
    3. 权限问题:在某些系统上,全局安装可能需要管理员权限(sudo),这本身就是一种不好的安全实践。

虚拟环境安装 (Virtual Environment Installation):为每个项目准备的独立小书房 🏠

“虚拟环境安装”是指先为您的项目创建一个隔离的、纯净的、独立的 Python 环境,然后在这个环境中安装只属于这个项目的库。

  • 如何理解?
    • 这就像为您要做的每一件事,都准备一个独立的、私人的小书房
    • 要“学编程”了?您就建一个“编程书房”,里面只放编程相关的书 (pandas, numpy)。
    • 要“写小说”了?您再建一个“文学书房”,里面只放文学理论和字典。
    • 这两个书房完全隔离,互不干扰。您可以在“编程书房”里放1.0版的书,在“文学书房”里放2.0版的同一本书。
  • 什么时候使用?
    • 几乎所有时候! 只要您是在开发一个具体的Python项目(无论是网站、数据分析脚本、自动化工具),都应该为它创建一个虚拟环境。
  • 有什么好处?
    1. 依赖隔离:完美解决冲突问题。每个项目都有自己独立的“书架”,可以使用任意版本的库。
    2. 环境纯净:每个虚拟环境只包含该项目必需的库,清晰明了。
    3. 便于协作和部署:您可以轻松地生成一个项目依赖清单(requirements.txt),您的同事或服务器可以根据这个清单,一键复制出一个一模一样的“书房”,确保了环境的一致性。
  • 注意:项目环境(虚拟环境)通常就是基于一个特定的项目目录来搭建的。

如何使用:全局安装 (应避免用于项目开发)

1
2
# 直接安装,库会进入您的全局 site-packages 目录
pip3 install requests

如何使用:搭建隔离项目环境

搭建一套专业、高效、无痛的Python开发环境:

  • 版本分离:使用 pyenv 工具来管理和切换你电脑上不同版本的Python,让它们互不干扰。
  • 环境隔离:使用 venvPoetry 为你的每一个项目创建独立的“虚拟环境”,让项目之间的依赖库互不冲突。
  • Homebrew: macOS的包管理器。
  • pyenv: 管理你电脑上的Python版本(你的“地基”)。
  • venv / Poetry: 管理你每个项目的依赖环境(你的“房间”)。
    • venv —— Python官方“标配帐篷”
    • Poetry —— 现代“精装公寓”

如何使用:虚拟环境安装 (使用 Python 内置的 venv)(推荐初学者掌握)

  1. 为您的项目创建一个文件夹

    1
    2
    mkdir my-project
    cd my-project
  2. 在该文件夹内创建虚拟环境

    • venv 是您为这个虚拟环境起的名字,这是个通用惯例。
    1
    python3 -m venv venv
    • 执行后,您会看到文件夹里多了一个名为 venv 的子文件夹,这就是您的“独立小书房”。
  3. 激活虚拟环境

    • 在 macOS 或 Linux 上:

      1
      source venv/bin/activate
    • 激活后,您会看到终端命令提示符前面多了 (venv) 的字样,表示您已经“走进”了这个独立书房。

  4. 在虚拟环境中安装依赖Bash

    • 此时,您使用的 pip 就是这个虚拟环境专属的了。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 安装的 requests 只会存在于 venv 这个文件夹里
    pip install requests

    # (my_project_env) ...
    # 在这里用 pip 安装的库,只会存在于这个环境中
    pip install requests

    # 在这里运行的 python,也是这个环境中的 python
    python my_script.py
  5. 退出虚拟环境

  • 当您想“离开”这个书房时,只需运行:
1
2
3
# (my_project_env) ...
# 直接运行 deactivate 命令
deactivate
  • 命令提示符前的 (venv) 会消失,您又回到了全局环境。

如何使用:虚拟环境安装 (使用 现代方法Poetry)(更高效,推荐进阶使用)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装 Poetry
brew install poetry

# 用 Poetry 创建新项目
poetry new my-poetry-project
cd my-poetry-project

# 添加依赖库
# Poetry会自动处理虚拟环境的创建和激活,你只需:
poetry add requests numpy pandas

# 运行脚本
# 假设你的代码在 my_poetry_project/my_poetry_project.py
poetry run python my_poetry_project/my_poetry_project.py

总结

特性 全局安装 虚拟环境安装
比喻 📚 一个巨大的公共书架 🏠 为每个项目准备的独立书房
适用场景 系统级命令行工具 所有具体的Python项目开发
优点 方便调用系统级工具 依赖隔离、环境纯净、便于协作
缺点 依赖冲突、环境污染 需要额外创建和激活的步骤

最佳实践:养成好习惯,永远为您的新 Python 项目创建一个虚拟环境。这是成为一个专业 Python 开发者的基本素养。

**Python开发常见组合:**使用 pyenv 来安装和切换基础的 Python 版本,然后在具体的项目文件夹中,使用 Poentry 来管理该项目的虚拟环境和所有依赖。

Python常见命令

好的,Python 的“常见命令”可以分为几个不同但密切相关的类别。下面我将为您分类列出最核心、最常用的命令,并解释它们的用途。

Python 解释器 (python / python3)

这是与 Python 语言本身直接交互的命令。

  • python3 script.py
    • 作用: 运行 Python 脚本。这是最常用的命令,用于执行一个名为 script.py 的文件中的代码。
  • python3
    • 作用: 启动交互式会话 (REPL)。直接运行此命令会进入一个可以逐行输入并立即执行 Python 代码的环境,非常适合快速测试、计算或学习。退出交互式会话通常使用 exit()quit()
  • python3 -m <module>
    • 作用: 以脚本方式运行库模块m 参数允许您像运行脚本一样运行一个库。最常见的例子就是用它来创建虚拟环境 (python3 -m venv ...) 或启动一个简单的Web服务器 (python3 -m http.server)。
  • python3 -c '<command>'
    • 作用: 执行单行命令c 参数允许您直接在终端执行一小段 Python 代码字符串,而无需将其写入文件。

包管理器 (pip / pip3)

这是用来管理第三方库(包)的工具。

  • pip3 install <package_name>
    • 作用: 安装一个或多个库。例如,pip3 install requests pandas。您还可以指定版本,如 pip3 install numpy==1.26.0
  • pip3 install -r requirements.txt
    • 作用: 根据列表批量安装库requirements.txt 是一个文本文件,里面列出了项目需要的所有依赖及其版本。这个命令会读取该文件并安装所有指定的库,是项目协作和部署的关键。
  • pip3 uninstall <package_name>
    • 作用: 卸载一个库
  • pip3 list
    • 作用: 列出当前环境中所有已安装的库及其版本。
  • pip3 freeze > requirements.txt
    • 作用: 生成当前环境的依赖列表pip3 freeze 会以特定格式列出所有已安装的包,> 符号则将这些输出重定向并保存到 requirements.txt 文件中。
  • pip3 show <package_name>
    • 作用: 显示某个已安装库的详细信息,如版本、作者、安装路径、依赖关系等。

虚拟环境 (venv)

这是用于项目依赖隔离的内置工具。

  • python3 -m venv <environment_name>
    • 作用: 创建一个虚拟环境。这会在当前目录下创建一个以 <environment_name> 命名的文件夹,其中包含一个独立的Python环境。
  • source <environment_name>/bin/activate
    • 作用: 激活虚拟环境 (在 macOS 或 Linux 上)。激活后,您安装的所有包都将局限于这个环境中。
  • <environment_name>\Scripts\activate
    • 作用: 激活虚拟环境 (在 Windows 上)。
  • deactivate
    • 作用: 退出当前的虚拟环境,返回到全局环境。

多版本管理 (pyenv)

这是用于管理和切换不同 Python 版本的第三方工具。

  • pyenv versions
    • 作用: 列出所有已安装的 Python 版本,并用星号 标记当前正在使用的版本。
  • pyenv install <version>
    • 作用: 安装一个新的 Python 版本,例如 pyenv install 3.11.5
  • pyenv global <version>
    • 作用: 设置全局默认的 Python 版本
  • pyenv local <version>
    • 作用: 为当前目录(及其子目录)设置一个特定的 Python 版本。这个命令会创建一个 .python-version 文件,非常适合为不同项目指定不同的Python版本。
  • pyenv shell <version>
    • 作用: 只在当前终端会话中临时切换 Python 版本,优先级最高。

掌握Python语法规则 📜

学习编程语言,就像学习一门新的外语。我们需要先掌握它的基本词汇和语法,才能组织出有意义的句子。

常用语法

  • 变量与数据类型: 学习如何存储数字、文本等不同类型的信息。
  • 常用数据结构: 探索列表 (List)、字典 (Dictionary) 等组织数据的方式。
  • 流程控制: 掌握 if 判断和 for/while 循环,让你的程序学会“思考”和“重复”。
  • 函数 (Function): 学习如何将代码打包成可复用的模块,让程序更整洁。

语法框架

当然,为了让你快速熟悉,这里是 Python 语法的整体框架,它就像一张学习地图。

基本构成 (Core Building Blocks) 🧱——变量 (Variable) +数据类型 (Data Type)

这是 Python 语言最基础的元素(基础元素),用来存储和表示信息。

  • 变量 (Variables):需要提前声明类型,直接用 名字 = 值 的方式给数据贴上标签。
  • 数据类型 (Data Types):
    • 文本 (String):'单引号'"双引号" 括起来的文字。
    • 数字 (Number): 包括整数 int (如 10) 和浮点数 float (如 3.14)。
    • 布尔值 (Boolean): 只有 TrueFalse 两个值,用于判断。
  • 理解:
    • 变量:就像一个贴着标签的空盒子。它提供一个名字,让你用来存放和引用信息。
    • 数据类型:就是你放进盒子里的东西的种类。比如,是文字(字符串)、数字、还是一个开关(布尔值)。

数据结构 (Data Structures) 🗃️

这是 Python 用来组织和存放批量数据的方式

  • 列表 (List): [1, "apple", True]
    • 一个有序的、可变的集合,像一个可以随时增删物品的购物清单。
  • 元组 (Tuple): (1, "apple", True)
    • 一个有序的、不可变的集合,一旦创建就不能修改,像一份已签署的合同。
  • 字典 (Dictionary): {"name": "Alice", "age": 30}
    • 一个无序的、由 键-值对 (key-value) 构成的集合,通过唯一的“键”来查找“值”,像一本字典。
  • 集合 (Set): {"apple", "banana", "cherry"}
    • 一个无序的、包含不重复元素的集合,主要用于成员测试和去重。
  • 其他
  • 基础元素与数据结构关系
    • 基础元素 (变量 + 数据类型): 就是 一块块单独的乐高积木

      • name = "Alice" 是一块刻着 “Alice” 的文字积木 (String)。
      • age = 30 是一块标着 “30” 的数字积木 (Integer)。
      • is_student = True 是一块代表 “是” 的开关积木 (Boolean)。

      现在,这些积木(信息)零散地堆在地上,它们之间没有联系。

    • 数据结构 (Data Structures): 就是你用来 组织这些积木的特定方式,比如一个“清单”或者一个“名片夹”。

      • 它是一个容器,把这些零散的积木按照某种规则装起来。
    • 数据结构是用来存放和组织基础元素的。


流程控制 (Control Flow) 🚦

这决定了你的代码按什么顺序、在什么条件下执行。

  • 条件判断 (if, elif****, else****): 根据条件是否为 True 来决定执行哪一段代码,实现程序的分支逻辑。

    1
    2
    3
    4
    5
    6
    if age < 18:
    print("未成年")
    elif age >= 18 and age < 60:
    print("成年人")
    else:
    print("老年人")
  • 循环 (for, while****):

    • for 循环: 主要用于遍历一个序列(如列表、字符串),按顺序取出每一个元素进行操作。
    • while 循环: 只要某个条件持续为 True,就一直重复执行代码块。

代码组织 (Code Organization) 📦

当代码变多时,用这些方式来保持其结构清晰和可复用。

  • 函数 (def): 将一段具有特定功能的代码打包,并给它起一个名字。通过 def function_name(parameters): 来定义,可以接收输入参数(parameters)并返回一个结果(return)。这是代码复用的核心。
  • 模块 (import): Python 的强大之处在于其丰富的“代码库”。你可以将自己的代码写在一个 .py 文件中(这就是一个模块),或者通过 import 关键字导入别人写好的模块(如 import math),直接使用其中定义好的函数和变量。
  • 类与对象 (class): 这是面向对象编程(OOP)的核心。通过 class 关键字定义一个“模板”,这个模板描述了一类事物共同拥有的属性(数据)和行为(方法/函数)。通过这个模板创建出来的具体实例,就是“对象”。

错误处理 (Error Handling) 🛡️

让你的程序更健壮,遇到错误时不会轻易崩溃。

  • try...except 块: 将你认为可能出错的代码放在 try 块中。如果真的发生错误,程序会立即跳转到 except 块去执行预设的补救措施,而不是直接崩溃。

最重要的语法规则

缩进 (Indentation) 是 Python 语法的核心!它不是为了好看,而是用来定义代码块的归属关系(例如,哪些代码属于 if,哪些属于 for 循环)。通常使用 4 个空格作为一级缩进

解锁核心技能 (Unlocking Core Skills)——待更新

掌握了基础语法,就像我们学会了单词和句子。现在,是时候运用这些知识,去真正地“说话”和“做事”了。在这一部分,我们将把理论付诸实践,解锁 Python 在真实世界中的强大能力

2.1 Web 开发基础 (Web Development Basics) 🌐

我们将学习如何使用 Python 构建网站和提供服务的 API。我会从 Flask 开始,因为它非常轻量,能帮助初学者快速理解 Web 的工作原理,并搭建起第一个属于自己的网页。

2.2 数据采集入门 (Introduction to Data Scraping) 🕸️

这项技能可以教会计算机自动浏览网页,并抓取我们所需要的信息。我们会从最经典的组合 requests + Beautiful Soup 入手,编写第一个网络爬虫,让信息收集变得轻而易举。

2.3 自动化你的日常 (Automate Your Life) ⚡

这是 Python 最酷的应用之一:用代码解放你的双手。我们将探索一些贴近生活的自动化场景,比如:

  • 编写脚本,自动整理“下载”文件夹里的混乱文件。
  • 设置一个程序,定时发送邮件提醒自己完成重要任务。

2.4 数据分析初体验 (A Taste of Data Analysis) 📊

数据背后隐藏着故事和真相。我们将学习如何使用 Python 来处理数据,并从中发现有趣的规律。为了让过程不枯燥,我们会从一些简单有趣的数据集开始,比如分析电影评分或者过往的天气数据。

2.5 与 AI 对话 (Talking with AI) 🤖

这可能是最前沿、最激动人心的部分。我们将学习如何通过 Python 调用大语言模型(LLMs)的 API,让你的程序拥有“智慧大脑”,去构建一些真正智能的应用。

我的实践项目 (My Practical Projects)

理论学习最终要回归实践。在这一部分,我们会把之前解锁的各项技能组合起来,像搭积木一样,创造出真正有价值的实用项目。我会完整记录从想法到成品的每一步,让你也能跟着动手实现。

待更新

学习资源库 (Resource Library)

独行快,众行远。在学习的路上,我们不必重新发明轮子。有无数优质的资源可以帮助我们走得更稳、更快。这部分是我在学习过程中收藏和依赖的资源库,它们都对初学者非常友好,我也会持续更新这个列表。

官方与权威 👑

三方资料

在线课程 💻

  • Python for Everybody (Coursera): 由密歇根大学的 Charles Severance 教授主讲,非常适合零基础的文科生或非计算机专业学生入门,风趣幽默。
  • freeCodeCamp: 一个完全免费的编程学习社区,提供了从基础到数据分析、机器学习等完整的 Python 课程和认证。

优质网站与社区 🌐

  • Real Python: 提供海量高质量的 Python 教程和文章,内容深入浅出,覆盖面广。
  • Stack Overflow: 全球最大的程序员问答社区。遇到任何解决不了的 Bug,先来这里搜索,大概率你的问题前人已经问过并解决了。
  • GitHub: 全球最大的代码托管平台。不仅是分享和管理自己代码的地方,更是学习和阅读他人优秀代码的宝库。

实用工具 🛠️

  • Jupyter Notebook: 一个交互式的笔记本,可以边写代码、边运行、边记笔记。尤其适合数据分析和学习过程中的代码片段验证。
  • Black: 一个“不妥协”的代码格式化工具。它可以帮你自动整理代码风格,让你专注于逻辑而不是格式。

书籍推荐 📚

  • 《Python编程:从入门到实践》(Python Crash Course): 一本全球畅销的经典入门书。前半部分讲解基础知识,后半部分带你做三个有趣的项目(游戏、数据可视化、Web应用),理论与实践结合得非常好。
  • 《Python自动化办公》(Automate the Boring Stuff with Python): 如果你想用 Python 解决实际问题,这本书是绝佳选择。它不执着于理论,而是用大量实际案例教你如何用代码解放生产力。

总结 (Conclusion)

到这里,我们已经一起走过了 Python 学习的第一段旅程。从最初的环境搭建,到掌握核心语法,再到动手解锁各项实用技能,并最终将它们融合成看得见、摸得着的实践项目。

如果你有任何问题、建议,或是有趣的想法,请一定在评论区留言。

让我们一起在这条路上继续前行,期待看到我们共同的成长!