01 - Python 简介与环境搭建

01 - Python 简介与环境搭建

这一章聊三件事:Python 是啥、为什么值得学、怎么把环境装好。


Python 到底是个什么东西

你要是之前完全没接触过编程,可能听过 Python 这个词但不知道它具体干嘛的。简单说吧------Python 是一门编程语言,你跟它说话(写代码),它帮你干活。

跟它类似的还有 Java、C++、JavaScript 这些,你可能也听过。但 Python 有个很大的特点:它真的很好读

举个例子。同样是让电脑打印一句"你好",不同语言长这样:

Java 版本:

java 复制代码
public class Hello {
    public static void main(String[] args) {
        System.out.println("你好");
    }
}

C++ 版本:

cpp 复制代码
#include <iostream>
int main() {
    std::cout << "你好" << std::endl;
    return 0;
}

Python 版本:

python 复制代码
print("你好")

就一行。我当时看到这个的时候是真的觉得,好吧,就它了。

当然,简单不代表弱。Python 能做的事情太多了:

  • 数据分析 --- 很多数据分析师和科学家的主力工具
  • 网站开发 --- Django、Flask 这些框架都是 Python 的
  • 人工智能 --- 几乎所有 AI/机器学习的项目都用 Python
  • 自动化脚本 --- 批量改文件名、爬网页、处理 Excel,几行代码就搞定
  • 游戏开发 --- 虽然不是主流,但也能做

为什么学 Python

我知道你可能在想"学编程的人那么多,我学了有用吗"。

说个真事。我之前有个同事做运营的,每天要手动从十几个网页上抄数据到 Excel 里。后来我花了一下午教他写了一个 Python 脚本,自动去抓那些数据然后填到表格里。从那以后他每天省出来两小时,用来摸鱼了。

Python 不一定是你唯一要学的语言,但它可能是投入产出比最高的入门选择。语法简单、生态好、社区大(遇到问题搜一下基本都有人回答过)。


装环境

好了,该干正事了。

这一步很多人觉得头疼,但其实没那么复杂。我们用 uv 这个工具,它把 Python 安装、虚拟环境管理、包管理全部合在一起了,省得我们一个一个装。

什么是 uv?

你可以把 uv 理解成一个"瑞士军刀"------一个工具搞定所有事:

  • 帮你安装 Python(不同版本都行)
  • 帮你创建虚拟环境(后面会解释这是什么)
  • 帮你安装第三方库

传统的做法是用 pip 装包、用 venv 管虚拟环境、用 pyenv 管 Python 版本... 光工具就要装三四个。uv 把这些全干了,而且速度比 pip 快 10-100 倍(不是夸张,官方有 benchmark)。

安装 uv

Windows 用户

打开 PowerShell(在开始菜单搜"PowerShell"就行),输入:

powershell 复制代码
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

装完之后,关掉 PowerShell 再重新打开(很重要,不然系统找不到 uv 命令)。

然后验证一下:

powershell 复制代码
uv --version

如果显示了版本号(类似 uv 0.7.x),就说明装好了。

macOS / Linux 用户

打开终端,输入:

bash 复制代码
curl -LsSf https://astral.sh/uv/install.sh | sh

同样装完后重启终端,验证:

bash 复制代码
uv --version

安装 Python

装好 uv 之后,我们可以用 uv 来安装 Python。

bash 复制代码
uv python install 3.12

这条命令会自动帮你下载 Python 3.12 并配置好。等它跑完就行了,不用操心什么路径、环境变量的问题。

验证一下:

bash 复制代码
uv run python --version

应该显示 Python 3.12.x

创建你的第一个项目

好了,现在我们来创建一个真正的项目文件夹。

第一步,创建一个新目录并初始化:

bash 复制代码
uv init my_first_project

这一步 uv 会帮你做这些事情:

  • 创建一个叫 my_first_project 的文件夹
  • 在里面生成 pyproject.toml(项目的配置文件)
  • 生成一个 hello.py(示例文件)
  • 自动创建虚拟环境

第二步,进入项目目录:

bash 复制代码
cd my_first_project

第三步,跑一下看看:

bash 复制代码
uv run hello.py

如果看到 Hello from my-first-project! 这样的输出------恭喜你,环境搭好了。

什么是虚拟环境?

你可能在想"虚拟环境"是个什么东西。

打个比方。你电脑里可能同时有好几个 Python 项目,项目 A 需要某个库的 1.0 版本,项目 B 需要同一个库的 2.0 版本。如果都装在一起就冲突了。

虚拟环境就是给每个项目单独开一个"小房间",里面的东西互不影响。uv 在你 uv init 的时候自动帮你建好了,所以不用额外操心。

安装第三方库

后面我们会用到很多第三方库(别人写好的工具包)。用 uv 安装很简单:

bash 复制代码
uv add requests

这条命令会把 requests 这个库装到你的项目里,同时自动更新 pyproject.toml 里的依赖记录。

想卸载的话:

bash 复制代码
uv remove requests

就这些。后面用到的时候我们再说具体装什么。


编辑器选一个

写代码需要一个趁手的编辑器。我只推荐一个:VS Code

为什么?免费、轻量、插件多、Python 支持好。基本上现在写 Python 的人一半以上都在用。

VS Code 官网 下载安装,然后装一个插件:

  • Python(微软出的那个)--- 提供代码补全、语法高亮这些功能

装完插件后,用 VS Code 打开你刚才创建的项目文件夹:

bash 复制代码
code .

或者在 VS Code 里手动 文件 -> 打开文件夹,选 my_first_project 那个目录。

打开之后你应该能看到 hello.py 这个文件,点进去随便改改,然后终端里 uv run hello.py 跑一下,确认编辑器能正常工作。

如果你不想装 VS Code,用系统自带的记事本也能写 Python... 但是真的很痛苦,别为难自己。


本章小结

回顾一下这章干了什么:

  • 知道了 Python 是什么,为什么值得学
  • 装了 uv,用它装了 Python 3.12
  • uv init 创建了第一个项目
  • 理解了虚拟环境的概念
  • 装了 VS Code 编辑器

到这里你的开发环境就算搭好了。下一章我们正式开始写代码。


面试题

下面这几道题在面试里出现频率还挺高的,建议先自己想一下再看答案。

Q1:Python 是解释型语言还是编译型语言?跟 C/C++ 有什么区别?
点击查看答案

Python 是解释型语言

区别在于:C/C++ 需要先把代码编译成机器能直接执行的二进制文件(.exe),然后才能运行。Python 不需要这一步,代码写好了直接通过 Python 解释器一行一行地执行。

解释型的好处是开发快(改完代码直接跑,不用重新编译),跨平台方便。缺点是运行速度比编译型慢。

Q2:什么是虚拟环境?为什么需要它?
点击查看答案

虚拟环境是一个隔离的 Python 运行空间,每个项目有自己独立的库和依赖。

需要它的原因:不同项目可能依赖同一个库的不同版本。比如项目 A 用 requests 2.28,项目 B 用 requests 2.31,如果都装在全局环境就会冲突。虚拟环境让每个项目的依赖互不影响。

Q3:uvpip 有什么区别?
点击查看答案

主要区别:

  1. 功能范围 --- pip 只管安装包。uv 除了装包,还能管理 Python 版本和虚拟环境,相当于 pip + venv + pyenv 的合体。
  2. 速度 --- uv 是用 Rust 写的,安装速度比 pip 快很多(官方数据是 10-100 倍)。
  3. 依赖锁定 --- uv 会自动生成 lock 文件,确保团队里每个人装的依赖版本完全一致。pip 需要配合其他工具才能做到。

Q4:Python 2 和 Python 3 有什么区别?现在应该学哪个?
点击查看答案

Python 2 在 2020 年已经官方停止维护了。两个版本之间有语法差异(比如 Python 2 的 print 是语句,Python 3 是函数),不能直接兼容。

现在应该学 Python 3,没有任何理由再去学 Python 2 了。如果遇到老项目还在用 Python 2,那属于历史遗留问题,到时候再单独了解差异就行。


下一章:第一个 Python 程序 →

相关推荐
程序员龙叔6 小时前
编写高质量 Skill 系列 -- 如何设计需求分析与用例生成的 SKILL
自动化测试·软件测试·python·软件测试工程师·接口测试·性能测试·skill·ai测试
用户8356290780519 小时前
使用 Python 操作 Word 内容控件
后端·python
LDR0069 小时前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术9 小时前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园9 小时前
C++20 Modules 模块详解
java·开发语言·spring
swordbob10 小时前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享10 小时前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Luminous.10 小时前
C语言--day30
c语言·开发语言
码云骑士10 小时前
32-慢查询排查全流程(下)-索引优化实战与最左前缀原则
python