ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Python零基础入门:从环境配置到小游戏实战

Python零基础入门:从环境配置到小游戏实战 你好我是老李。最近总看到不少人想学编程第一个想到的就是 Python。网上的教程五花八门今天收藏一个“三天速成”明天又存一个“从入门到精通”结果大部分人还是卡在了第一步环境装不上、代码一跑就报错、概念看了就忘。与其零散地刷短视频片段不如静下心来完整走一遍流程。这篇文章我会从 Python 的下载安装、环境变量配置、虚拟环境创建一路带你写到基础语法、函数封装最后手把手做一个简单的“人狗大作战”小游戏实战。你不用具备任何编程基础只要键盘能用、会复制粘贴就能跟着一步步跑通。文章里的所有命令和代码我都按“可复制、可运行”的标准来写。每个例子都分了解释和预期输出方便你对照检查。即使过程中出现报错我也在文末整理了一份高频问题排查表你按顺序对号入座即可。如果你是一名刚接触编程的零基础读者这篇文章就是你的完整起步笔记。如果你已经写过一点代码也可以直接跳到实战部分看看整体项目结构是怎么组织的。接下来我们进入正题。1. Python 是什么为什么要从 Python 开始在学习任何技术之前先花三分钟搞清楚“它是什么”和“为什么是它”这会直接影响你后续的学习动力。Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。它由荷兰程序员 Guido van Rossum 于 1991 年发布语法设计非常强调代码的可读性。简单来说你用 Python 写出来的代码哪怕不做任何注释其他人也能猜出大致意图。相比 C、C、Java 这类语言Python 最大的特点是“开发效率高”。它内置了大量标准库比如处理文件、发送网络请求、解析 JSON 等不需要你从零造轮子。你只需要专注于业务逻辑本身。平时我们看到的 Python 主要用于以下几个方向数据分析和数据可视化例如 pandas、numpy、matplotlib 生态。自动化脚本批量重命名文件、定时爬取网页信息、办公文档处理。Web 开发Django、Flask、FastAPI 都是成熟的 Web 框架。人工智能和机器学习TensorFlow、PyTorch 的首选入门语言。量化交易策略回测因为语法简洁很多个人开发者用它验证交易逻辑。当然Python 也不是万能的。它的执行效率天生低于编译型语言不适合做高性能底层引擎在移动端原生开发、大型游戏引擎等方面也不是主流选择。但对于新手入门、工具开发、数据处理、算法验证等场景Python 依旧是性价比最高的选择。你可能会问那我应该选择 Python 2 还是 Python 3这里直接给出结论当前所有新项目都建议使用 Python 3旧项目如果没有特殊原因也不要再维护 Python 2 代码。Python 2 官方早已停止维护生态和语法也都停留在旧时代。本文所有内容均基于 Python 3。2. 环境准备Python 下载安装与版本说明环境安装是新手最容易翻车的一步。很多人下载了安装包一路点“下一步”结果打开命令行输入python却发现提示“不是内部或外部命令”。这一般不是安装包的问题而是安装时漏掉了环境变量勾选。2.1 下载 Python 安装包打开 Python 官网 https://www.python.org/downloads/ 首页会自动推荐适合你当前操作系统的安装包。比如 Windows 用户会看到 “Download Python 3.x.x” 按钮。下载时建议选择 64 位版本如果你的电脑系统比较老再考虑 32 位版本。具体版本号会随时间更新本文以常见的 3.10、3.11、3.12 系列为例。这里不指定具体某一版本因为新版本不断发布重点是掌握安装思路。如果你下载速度较慢也可以选择国内镜像站点下载但要确认下载文件的完整性和来源可信度。不要从不明来源下载所谓的“绿色版”或“免安装版”。2.2 Windows 安装步骤重点安装包下载完成后双击运行。这里有一个关键步骤很多人就是在这里出错在安装向导第一个页面务必勾选底部最下方的 “Add Python 3.x to PATH”。然后点击 “Install Now”。勾选 “Add Python 3.x to PATH” 的作用是把 Python 的可执行文件目录自动写入系统环境变量。这样你在命令行输入python时系统就能找到它。如果没有勾选后续虽然也能通过修改环境变量手动配置但对新手来说容易踩坑。安装过程一般为几分钟。安装完成后点击 “Close” 关闭窗口。2.3 验证安装是否成功按快捷键Win R输入cmd回车打开命令行窗口。然后依次输入以下两条命令python --version预期输出类似Python 3.12.4再来一条pip --version预期输出类似pip 24.0 from C:\Users\你的用户名\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip (python 3.12)两条命令都正常显示版本号说明安装成功。如果提示python 不是内部或外部命令请检查是否勾选了 “Add Python to PATH”或者在“系统属性 - 高级 - 环境变量”中手动添加 Python 安装目录和 Scripts 目录。2.4 Linux / macOS 环境说明Linux 系统一般自带 Python 3但版本可能不是最新。你可以通过系统的包管理器安装或更新例如 Ubuntu 下常见命令sudo apt update sudo apt install python3 python3-pipmacOS 用户也自带 Python 3但为了避免和系统自带 Python 冲突更推荐使用 Homebrew 安装brew install python这里特别提醒在 Linux/macOS 环境下不要直接覆盖系统自带的 Python 解释器否则可能导致系统工具依赖出现问题。建议使用虚拟环境后面的章节会专门讲。2.5 选择代码编辑器安装好 Python 之后你还需要一个写代码的工具。通常有几种选择Python 自带的 IDLE适合测试极短代码但不适合写工程。VS Code免费、插件丰富、轻量适合绝大多数初学者。PyCharmJetBrains 出品的专业 Python IDE社区版免费功能更完整。如果你不知道怎么选我建议从 VS Code 开始。它的 Python 插件支持代码补全、调试、虚拟环境自动识别等功能而且不占用太多内存。VS Code 安装完成后打开扩展面板搜索 “Python”安装 Microsoft 官方发布的 Python 扩展。然后通过Ctrl Shift P打开命令面板输入 “Python: Select Interpreter”选择你安装的 Python 版本即可。3. 虚拟环境是什么为什么新手也要尽早使用这是一个很多人学了很久才明白的概念但理解之后会少走很多弯路。3.1 为什么需要虚拟环境Python 项目非常依赖第三方库比如 requests、flask、pandas 等等。当你同时开发多个项目时可能会遇到一个头疼的问题项目 A 需要 pandas 1.x项目 B 因为某些原因只能用 pandas 0.25如果都安装在同一个全局环境里两者就会互相冲突。虚拟环境就是为每个项目单独创建一个独立的 Python 运行环境。每个环境都有自己的一套第三方库和独立的 Python 解释器路径。项目之间互不干扰也不会污染全局环境。3.2 创建虚拟环境的两种方式Python 3.3 之后官方内置了一个名为venv的模块无需额外安装即可创建虚拟环境。打开命令行进入你想创建的项目目录例如mkdir my-first-project cd my-first-project然后执行python -m venv venv这行命令会在当前目录下创建一个名为venv的文件夹里面就是独立的 Python 环境。激活虚拟环境Windows 环境下执行venv\Scripts\activatemacOS / Linux 环境下执行source venv/bin/activate激活成功后命令行提示符前面会出现(venv)字样表示当前处于该虚拟环境内。如果你使用 conda也可以用conda create -n myenv python3.11 conda activate myenv3.3 安装第三方库的命令在虚拟环境激活状态下使用 pip 安装第三方库pip install requests安装完成后生成依赖清单方便其他环境复现pip freeze requirements.txt当你换一台电脑或删掉环境后可以这样一键安装全部依赖pip install -r requirements.txt3.4 退出虚拟环境执行deactivate脚本类的工具项目可以不用虚拟环境但凡是涉及 Web 开发、数据处理、爬虫的项目都推荐使用虚拟环境。这个习惯从第一天养成后面会省去大量环境折腾的时间。另外提醒一下热词中经常出现“要安装缺失的节点请先在你的 python 环境中运行 pip install -u --pre comfyui-m”。这类提示本质上是某个 Python 项目在运行前检测到缺少依赖包需要你用 pip 安装对应库。你只要理解 pip 是包管理工具这类报错就能轻松解决。4. Python 基础语法入门零基础也能看懂这一节我们通过大量极短示例把 Python 的核心语法过一遍。建议不要只看而是打开命令行或编辑器跟着敲一遍。编程是手艺活看一百遍不如手动跑一次。4.1 变量与数据类型Python 中不需要显式声明变量类型赋值时自动判断类型。# 文件路径lesson01_variables.py name 小明 # str 字符串 age 18 # int 整数 height 1.75 # float 浮点数 is_student True # bool 布尔值 print(name) print(age) print(height) print(is_student)运行结果小明 18 1.75 TruePython 内建数据类型还包括列表list、元组tuple、字典dict和集合set。# 列表有序、可变 fruits [苹果, 香蕉, 橘子] fruits.append(西瓜) print(fruits) # [苹果, 香蕉, 橘子, 西瓜] # 字典键值对结构 person {name: 小红, age: 20} print(person[name]) # 小红 # 元组有序、不可变 coordinates (10, 20) print(coordinates[0]) # 10 # 集合无序、去重 tags {python, 教程, python} print(tags) # {python, 教程}这里需要注意列表用方括号字典用花括号且内部是“键: 值”的形式元组用圆括号集合虽然也用花括号但内部没有冒号。4.2 条件判断# 文件路径lesson02_if.py score 85 if score 90: print(优秀) elif score 60: print(及格) else: print(不及格)运行结果及格Python 的代码块用缩进表示而不是像 Java 或 C 那样用大括号。缩进可以使用 4 个空格或 Tab但同一个代码块内必须保持一致。新手最容易犯的错误就是缩进混用导致IndentationError。4.3 循环语句最常见的循环是for和while。# for 循环遍历一个范围 for i in range(5): print(i)运行结果0 1 2 3 4注意range(5)生成的是 0 到 4不包括 5。这是很多新手一开始会困惑的地方。# 遍历列表 names [Alice, Bob, Charlie] for name in names: print(fHello, {name})运行结果Hello, Alice Hello, Bob Hello, Charlief...是 f-string 格式化字符串可以在字符串中直接嵌入变量用花括号包裹。# while 循环注意跳出条件 count 0 while count 3: print(正在执行当前计数, count) count 1运行结果正在执行当前计数 0 正在执行当前计数 1 正在执行当前计数 2如果count 1这一行漏掉while 条件永远成立程序就会进入死循环。4.4 函数封装当一段逻辑需要在多个地方重复使用时就应该封装成函数。# 文件路径lesson03_function.py def greet(name): 传入姓名返回打招呼的字符串 return f你好{name}欢迎来到 Python 世界。 message greet(小明) print(message)运行结果你好小明欢迎来到 Python 世界。函数使用def关键字定义函数体内通过return返回值。定义函数时可以先给出默认参数def calc_area(width, height10): return width * height print(calc_area(5)) # 50 print(calc_area(5, 20)) # 1004.5 列表推导式这是 Python 非常优雅的语法之一一行代码完成“遍历 筛选 生成新列表”的操作。# 生成 0 到 9 中所有偶数的平方 squares [x * x for x in range(10) if x % 2 0] print(squares)运行结果[0, 4, 16, 36, 64]第一次读这个语法可能会觉得抽象但你只要记住列表推导式由三部分组成最左侧是结果表达式中间是 for 循环最右侧是可选的条件判断。熟练之后它会成为你写 Python 时最常用的手法之一。4.6 文件读写编写脚本时经常需要把结果保存到文件或者从文件读取数据。# 文件路径lesson04_file.py # 写入文件 with open(output.txt, w, encodingutf-8) as f: f.write(第一行内容\n) f.write(第二行内容\n) # 读取文件 with open(output.txt, r, encodingutf-8) as f: content f.read() print(content)使用with open(...) as f语句可以自动管理文件资源即使出现异常也会自动关闭文件不需要手动调用f.close()。写入时指定encodingutf-8能避免中文乱码问题。5. 完整实战做一个简单的“人狗大作战”小游戏理论语法学了不少但如果你只会零散的语法片段遇到实际需求还是无从下手。这一节我们通过一个简单的小游戏把变量、条件、循环、函数、随机数等知识串起来。5.1 需求分析游戏规则如下玩家和电脑各控制一个角色分别是“人”和“狗”。双方初始生命值HP都为 100攻击力都为 20。每回合双方轮流攻击攻击时伤害在基础攻击力上下浮动。任何一方生命值降到 0 或以下游戏结束。每次输出当前轮次、双方血量变化。这个项目不涉及图形界面只需要在命令行中运行重点在于帮助你理解一个完整程序的“输入 - 处理 - 输出”流程。5.2 创建项目结构在命令行中创建目录并进入mkdir human-dog-game cd human-dog-game然后激活虚拟环境可选但这个项目不依赖第三方库也可以不创建。新建一个文件game.py后续所有代码都写入这个文件。5.3 编写游戏代码# 文件路径human-dog-game/game.py import random def init_status(): 初始化双方状态 return { human: {hp: 100, attack: 20}, dog: {hp: 100, attack: 20}, } def attack(attacker_name, defender_name, status): 进行一次攻击伤害有正负 5 的浮动 base_attack status[attacker_name][attack] damage random.randint(base_attack - 5, base_attack 5) if damage 0: damage 0 status[defender_name][hp] - damage print(f{attacker_name} 对 {defender_name} 造成了 {damage} 点伤害) print(f{defender_name} 剩余血量{status[defender_name][hp]}) if status[defender_name][hp] 0: print(f{defender_name} 倒下了{attacker_name} 获胜) return True return False def main(): print(欢迎来到 人狗大作战 ) status init_status() round_num 1 game_over False while not game_over: print(f\n 第 {round_num} 回合 ) print(f人HP {status[human][hp]}狗HP {status[dog][hp]}) # 人先攻击狗 game_over attack(human, dog, status) if game_over: break # 如果狗没倒狗再反击 game_over attack(dog, human, status) if game_over: break round_num 1 print(\n游戏结束) if __name__ __main__: main()简单分析一下这段代码init_status()返回一个字典保存两个角色的初始状态。attack()函数接收攻击方、防守方和状态字典使用random.randint生成浮动伤害并调用print输出战斗信息。main()是程序入口通过 while 循环控制回合每次循环双方各攻击一次。if __name__ __main__:是 Python 的常见写法表示只有直接运行该文件时才执行main()如果该文件被其他模块导入不会自动执行。5.4 运行游戏在命令行执行python game.py运行效果类似欢迎来到 人狗大作战 第 1 回合 人HP 100狗HP 100 人 对 狗 造成了 22 点伤害 狗 剩余血量78 狗 对 人 造成了 18 点伤害 人 剩余血量82 第 2 回合 人HP 82狗HP 78 ...因为使用了随机数每次运行的具体伤害值都会不同。游戏进行到某一方 HP 小于等于 0 时程序会输出获胜方并退出循环。5.5 尝试扩展方向这个游戏虽然简单但可以轻松扩展增加角色选择玩家可以从“人、狗、猫”中挑选一个角色。增加技能系统每回合可以选择普通攻击或者技能攻击技能消耗法力值。增加回合治疗每三回合可以使用一次治疗。增加界面显示使用 tkinter 或 Pygame 实现图形界面。扩展时优先保持代码结构清晰把每个功能拆成独立函数而不是全部堆在main()里。6. 常见问题与排查思路新手阶段会遇到不少同一个模子的报错。下面把最高频的问题整理成一张排查表你对号入座就能解决大多数问题。问题现象常见原因解决思路python 不是内部或外部命令安装时未勾选 Add Python to PATH重新安装并勾选或在系统环境变量里手动添加 Python 目录和 Scripts 目录pip 不是内部或外部命令未安装 pip或 Scripts 目录不在 PATH确保安装时勾选完整组件或执行python -m ensurepip --upgradeModuleNotFoundError: No module named requests当前环境未安装对应第三方库在激活的虚拟环境中执行pip install requestsIndentationError: unexpected indent缩进不一致混用了空格和 Tab统一使用 4 个空格缩进不要混用 TabSyntaxError: invalid syntax括号不匹配、缺少冒号、字符串引号未闭合检查报错行附近的中英文符号优先使用英文符号中文输出乱码文件编码不是 UTF-8或控制台编码不一致在 Python 文件首行写# -*- coding: utf-8 -*-保存时选择 UTF-8 编码ImportError: cannot import name xxx导入的模块名拼写错误或库的版本不包含该功能检查拼写使用pip show 包名查看版本VS Code 运行时提示“没有找到解释器”未选择 Python 解释器Ctrl Shift P执行 “Python: Select Interpreter”选择虚拟环境或全局 Python重复安装多个 Python 版本后执行python进入错误版本环境变量中排列顺序决定优先级使用where python查看路径调整 PATH 顺序或使用py -3.11指定版本pip install下载速度慢默认官方源网络不稳定使用国内镜像源如pip install 包名 -i https://pypi.tuna.tsinghua.edu.cn/simple排查思路总结为三步先看报错的第一行也就是错误类型和摘要不要只看最后一行。再看报错的文件名和行号例如File game.py, line 15定位到对应代码。最后复制完整报错信息去搜索引擎搜索不要只搜半句。这里特别强调一点不要一遇到报错就感觉天塌了。报错是编程过程中的正常信息反馈。绝大多数报错都能通过“读报错信息 搜索 对比代码”解决。7. 最佳实践与工程建议很多初学者代码能跑但一旦项目变大代码就难维护。下面这些习惯越早养成越好。7.1 命名规范Python 官方推荐的命名风格是变量、函数、模块名使用小写字母加下划线例如user_name、get_age()。类名使用驼峰命名法例如PlayerCharacter。常量使用全大写字母加下划线例如MAX_HP 100。不要使用拼音缩写或语义不清的单词命名例如sjjl时间记录应该写成time_records。7.2 代码可读性每个函数只做一件明确的事。如果函数名字叫load_data就不要再在函数里画图形。避免写超过 50 行的函数。过长时考虑拆分。适当使用空行区分逻辑块不要用连续空行刷屏。字符串拼接优先使用 f-string 而不是可读性更高。7.3 异常处理程序运行中可能会出现用户输入格式错误、文件不存在、网络请求超时等情况。不要把所有异常都裸奔给用户看到更不要用空的try-except吞掉异常。try: number int(input(请输入一个数字)) except ValueError: print(输入的不是有效数字请重试) else: print(f你输入的数字是 {number})except ValueError只捕获类型转换错误其他错误不会被误吞方便后续排查。7.4 依赖与版本管理每个项目都使用独立虚拟环境。使用requirements.txt锁定依赖版本方便复现。关键项目可以考虑使用pipenv或poetry管理依赖但新手从 venv 开始就够用了。不要随意升级项目中的第三方库大版本升级前先在测试环境验证兼容性。7.5 关于代码打包与方向选择热词里经常出现“python转exe文件”。如果你希望把写好的 Python 工具分享给没有安装 Python 的人使用可以使用 PyInstaller 打包成 exe命令如下pip install pyinstaller pyinstaller -F game.py-F参数表示生成单文件 exe。但需要注意打包后的 exe 体积较大启动速度也比源码运行慢而且杀毒软件可能误报。建议只在工具确实需要分发给其他用户时再做打包。如果后续你想深入学习可以按以下顺序打牢语法基础列表、字典、循环、函数、文件操作。学习常用标准库os、sys、json、csv、datetime。学习第三方库requests、pandas、matplotlib、flask。选择一个方向深入数据分析、Web 开发、自动化脚本、爬虫。学习工程化工具git 版本管理、pytest 测试、docker 部署。每一步都配合一个小项目来消化而不是记完语法就结束。比如学完文件操作就写一个批量文件重命名脚本学完 requests就爬取一个公开的天气接口数据。8. 总结与动手挑战这篇文章从 Python 是什么讲起带你完成了下载安装、环境变量配置、虚拟环境搭建然后讲解了变量、数据类型、条件判断、循环、函数、文件读写等核心语法最后用“人狗大作战”小游戏把零散知识点串联成完整项目。你现在应该可以做到在 Windows / Linux / macOS 上安装 Python 并验证版本。使用 venv 为每个项目创建独立环境。看懂并运行基础 Python 代码理解缩进、变量、判断、循环、函数。独立运行一个包含随机数和循环逻辑的小游戏源码。根据报错信息按照排查表定位并解决常见问题。接下来我建议你做一个简单的挑战修改“人狗大作战”的代码加入第三名角色“猫”让玩家开局可以选择角色并给每个角色设置不同的攻击力和血量。这个需求看起来简单但已经覆盖了条件判断、函数拆分、字典操作、用户输入处理等多个知识点。遇到报错不要慌回到第 6 节查表再对照代码逐行检查。如果这篇文章对你有帮助可以收藏备用动手敲起来才是进步最快的方式。
返回列表