很多人第一次学 Python跑去搜“Python 基本命令”结果搜出来的东西五花八门——有人教你在终端里敲python --version有人教你在 Python 交互环境里写print(hello)还有人一上来就甩给你一堆 Linux 命令。其实这些都算“Python 基本命令”的范畴但它们是不同层面的东西。这篇文章我会把这两个维度合并到一起讲清楚一是你的电脑怎么“命令” Python 干活终端命令二是 Python 解释器里怎么“命令”它输出、计算、判断语言内置命令。对刚入门的朋友来说把这层窗户纸捅破后面学什么都顺了。如果你是零基础这篇文章就是给你准备的如果你已经会装 Python 但总觉得各种概念很碎也能从中把知识串起来。我尽量按实战路径来写每一步都解释清楚“为什么这么做”而不是光给一串代码让你复制。1. 新手理解“Python 命令”的第一步解释器与脚本的差异1.1 交互式解释器Python 的“命令行模式”很多教程第一章就让你打开命令行输入python回车之后你会看到类似的提示符这就是进入了 Python 交互式解释器。在这个模式下你输入一行命令它立刻执行一行回车就出结果。这种“敲一行、反馈一行”的模式非常适合验证语法、快速计算、测试某个函数到底怎么用。比如你输入 2 3 5 print(你好Python) 你好Python要注意一点在这个环境里我们输入的其实不是 Windows 命令或者 Linux 命令而是 Python 语言本身的语句。所以“Python 基本命令”这个概念要分清操作系统的命令比如dir、cd跟 Python 语言里的命令比如print、if是两码事。你输入cd Desktop想在 Python 交互器里切换目录是做不到的得退出解释器回到终端才能用操作系统的命令。交互式解释器有个好处你不需要创建文件打开就能玩。很多老手排查问题也是这么干的——先开个 Python 环境敲几行代码验证思路确认没问题再写进脚本文件。我自己的习惯是日常 90% 的简单测试都在交互环境里完成真正需要复用、批量处理的时候才会写脚本。1.2 脚本文件把命令存下来批量执行当你需要一次性执行好几十行命令时再一行一行敲效率就太低了。Python 的通用做法是把命令写在一个后缀为.py的文件里然后用终端去“命令” Python 解释器执行这个文件。在终端里执行python my_script.py如果你的电脑装了多个版本的 Python可能要用python3来指定python3 my_script.py这里就出现了一个让很多新手懵圈的点python my_script.py里的python是操作系统能识别的命令它会去系统的 PATH 环境变量里找 Python 解释器然后由解释器去执行.py文件里的内容。所以本质上你是在用操作系统命令去调用 Python然后用 Python 语言命令去控制计算机。这两层关系理清了后面的各种命令都不会再混淆。我见过不少人卡在“为什么我输入python没反应”这种问题上一半以上都是环境变量没配对具体排查方法我会在第 6 章细讲。2. 环境准备从下载安装到终端里敲出第一行代码2.1 下载安装与版本选择Python 官网的下载地址是 python.org进去之后找到 Downloads 页面系统会自动识别你的操作系统推荐对应版本。Windows 用户下载.exe安装包macOS 用户下载.pkgLinux 用户一般直接用包管理器安装比如 Ubuntu 上是sudo apt update sudo apt install python3版本选择上我建议新手直接装当前最新的稳定版即可。很多人纠结 Python 2 还是 Python 3——不用纠结了Python 2 在 2020 年就停止维护现在学 Python 3 就好。下载时注意看版本号比如当前常见的是 3.9、3.10、3.11、3.12装高一点的版本问题不大除非你要用的一些老库还不兼容。Windows 安装的时候有一个小细节极其重要安装向导第一页最底部有一个勾选项叫“Add python.exe to PATH”一定一定要勾上。这个选项的意思是让 Windows 系统在全局范围内都能识别python这个命令。很多教程会漏掉这一步或者用户装得太快没注意结果装完一打开终端输入python系统直接弹到微软商店去了。这里的事故我会在第 6 章展开。2.2 环境变量与常用命令安装完之后你可以打开终端输入检测命令python --version python -V两个命令都能输出当前 Python 版本号。从这个时刻开始python就成了你电脑里一个可用的“命令”。紧接着你应该试一下看安装路径where python # Windows 下查看可执行文件路径 which python3 # Linux / macOS 下查看路径这个命令的价值在于确认你运行的是哪个 Python。很多电脑里装了不止一个 Python——比如你系统自带了一个、自己又装了一个、用 Anaconda 又装了一个。这时候where python的排查价值就体现出来了。我遇到太多人问“为什么我 pip 装的库 import 不到”一查才发现pip是 A 环境的python是 B 环境的两个人互相不认识。Python 生态里还有一个命令是绕不开的pip。它是 Python 的包管理工具专门用来安装第三方库比如最近热词里很多人搜的 numpy、sklearn、cv2都用 pip 来装pip install numpy pip install scikit-learn pip install opencv-python装完之后如果你想确认装好了可以进入 Python 交互模式然后import一下import numpy print(numpy.__version__)能打印出版本号就说明装好了。这个“装库 import 验证”的组合拳是后面所有第三方库使用的基础。2.3 第一次运行print() 与 id()/type() 的直观感受环境配好之后你的第一行代码建议从print开始。print是 Python 里最基础、最常用的输出命令它的作用是把括号里的内容显示到屏幕上。print(Hello, World!) print(3.14) print(1 2)但我要提醒你print只是把值“显示”出来它跟函数返回的结果是两回事。你可以顺手试一下这两个内置函数type(123) id(123)type()会告诉你一个数据的类型id()会告诉你这个对象在内存中的唯一编号。这两个命令是后面理解 Python“一切皆对象”的关键。很多老手调试时也是靠type()来判断一个变量到底是什么类型尤其是从 JSON 接口拿数据、从 Excel 读数据时看到type()的结果你才不慌。3. 最常用的基础命令与内置函数不仅会用还要懂原理3.1 输入输出input() 与 print() 的格式化程序跟人交互的两个最基础动作就是输入和输出。Python 里输入用input()输出用print()。name input(请输入你的名字) print(你好 name)注意一点input()接收到的内容永远是字符串类型。很多新手在这里踩坑——输入了数字拿去计算结果报错或者结果是“10”“20”得到“1020”而不是 30。正确做法是先做类型转换age input(请输入年龄) age int(age) print(你明年, age 1, 岁)print()的格式化输出也是入门必会的技能。我推荐三种写法你自己选喜欢的# 方式一拼接字符串适合少量变量 print(你好 name 你今年 str(age) 岁) # 方式二格式化字符串 f-stringPython 3.6最推荐 print(f你好{name}你今年{age}岁) # 方式三format 方法 print(你好{}你今年{}岁.format(name, age))这里面 f-string 是现在主流的写法代码最短可读性最好你只要记住在字符串前面加个f然后在你想插入变量的位置用{变量名}包起来就行。3.2 数据类型转换int、float、str、boolPython 里最常见的几个内置数据类型新手一定要烂熟于心类型代表内容示例转换函数int整数42int()float浮点数小数3.14float()str字符串hellostr()bool布尔型True / Falsebool()list列表[1, 2, 3]list()dict字典{name: 张三}dict()tuple元组(1, 2, 3)tuple()set集合{1, 2, 3}set()类型转换是 Python 命令里的高频操作。比如从文件里读出来的数字是字符串格式你没法直接做加减乘除就得先转成int或float。再比如你写入 Excel 的时候你希望它保留数字格式而不是文本格式也要提前把类型转好。有一个容易忽略的点bool()的结果是Falsebool(0)的结果是True。因为空字符串会转为 False而字符串 0 不是空字符串它是非空字符串所以是 True。这个细节在判断用户输入是否为空的时候非常实用。3.3 容器的基本操作列表、字典、数组切片容器是 Python 命令中最见功力的部分。列表list可以理解成一个有序的“收纳盒”你可以往里放任意类型的元素fruits [apple, banana, cherry] fruits.append(orange) # 末尾追加 fruits.insert(1, grape) # 指定位置插入 fruits.remove(banana) # 按值删除 print(fruits[0]) # 第一个元素 print(fruits[-1]) # 最后一个元素这里[-1]这种负数索引是 Python 的经典特性很多新手一开始不习惯但一旦用顺了会觉得比别的语言方便很多。它的规则是-1代表最后一个-2代表倒数第二个依此类推。字典dict是另一种高频容器它存的是“键值对”类似现实中的通讯录——一个姓名对应一个电话person {name: 李四, age: 25, city: 上海} print(person[name]) # 按键取值 person[age] 26 # 修改值 person[job] 工程师 # 新增键值对字典在实际开发中太常用了解析 JSON 数据、读取配置文件、操作数据库查询结果返回的基本都是字典或列表套字典的结构。切片slice则是操作列表和字符串的利器格式是[起始:结束:步长]nums [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(nums[2:5]) # [2, 3, 4] 注意结束位置不包含 print(nums[:3]) # [0, 1, 2] 开头到第 3 个 print(nums[::2]) # [0, 2, 4, 6, 8] 每隔一个取一个 print(nums[::-1]) # 倒序翻转值得注意的是切片是“左闭右开”的nums[2:5]包含索引 2、3、4但不包含 5。这个规则如果你记混了写代码会经常差一个数老手也会偶尔翻车所以建议直接把它背下来。4. 流程控制与函数从单条命令到完整的逻辑单元4.1 if / elif / else 条件判断程序之所以能“智能”靠的就是条件判断。Python 的判断命令写法很简洁score 85 if score 90: print(优秀) elif score 60: print(及格) else: print(不及格)有几个新手常见陷阱我要专门提醒一是冒号不能丢。if行结尾必须有冒号下面缩进的代码块才属于这个条件。如果你漏了冒号Python 会直接报SyntaxError。二是缩进意思重大。Python 用缩进来表示代码块归属不像 Java、C 用大括号。你写 if 下面的语句必须缩进 4 个空格或者 Tab同一层的缩进长度必须一致。很多人从别的语言转过来容易在这个地方报IndentationError。三是条件的真假判断。你可以直接写if name: # 等价于 if name ! print(name)因为空字符串在条件判断中相当于 False非空字符串相当于 True。同理if len(list) 0可以简写成if list。这个技巧在判空时非常常用。4.2 for 与 while 循环循环是让程序自动化重复劳动的主要手段。for循环经常配合range()使用for i in range(5): print(i) # 输出 0 1 2 3 4range(5)生成 0 到 4 的整数序列注意不包含 5。如果你要 1 到 5就用range(1, 6)。遍历列表和字典也是 for 循环的核心场景# 遍历列表 for fruit in [apple, banana, cherry]: print(fruit) # 遍历字典的键值对 person {name: 李四, age: 25} for key, value in person.items(): print(key, value)while循环适合你不知道具体循环多少次、只知道退出条件的场景count 0 while count 10: count 1 print(count)写while最怕死循环——条件永远为真程序永远不退出。一个有用的技巧是提前写好退出条件或者用break主动中断循环while True: user_input input(输入 q 退出) if user_input q: break print(你输入的是, user_input)4.3 定义函数def、return、参数默认值当一段逻辑你需要在很多地方重复使用时就应该把它封装成函数。Python 定义函数的命令是defdef add(a, b): return a b result add(3, 5) print(result) # 8这里return是函数的“产出”函数执行到return就会结束并把值返回给调用方。如果函数没有return它返回的是None也就是“什么都没有”。参数默认值也是常用技巧def greet(name, greeting你好): return f{greeting}{name} print(greet(张三)) # 你好张三 print(greet(张三, 早上好)) # 早上好张三设置默认值的参数必须放在非默认参数后面。也就是说你不能写def greet(greeting你好, name): # 这样会报错为什么因为 Python 的位置参数匹配规则是从左到右的如果你把有默认值的参数放在前面调用时只传一个值的话解释器无法判断你传的是给greeting还是name。4.4 列表推导式简洁高效的“一行命令”列表推导式是 Python 里既显专业又实用的语法它把循环和生成列表压缩成一行# 生成 0 到 9 的平方列表 squares [x * x for x in range(10)] print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] # 筛选出偶数 evens [x for x in range(10) if x % 2 0] print(evens) # [0, 2, 4, 6, 8]这个语法的核心结构是[表达式 for 变量 in 可迭代对象 if 条件]。我建议新手不要直接用太复杂的推导式但必须能读懂别人写的推导式因为在实际项目、面试题、开源代码里出现频率极高。等你熟练之后它带来的效率提升非常明显——四行循环写成的代码一行搞定而且可读性反而更好。5. 日常实操中最常调用的标准化命令5.1 文件读写open、read、writePython 处理文件几乎是每个项目都绕不开的。最基础的文件读取用open()配合with语句with open(data.txt, r, encodingutf-8) as f: content f.read() print(content)而写入文件则是with open(output.txt, w, encodingutf-8) as f: f.write(Hello, World!\n) f.write(第二行\n)这里r表示只读模式w表示写入模式a表示追加模式。第二个参数这个模式标识要记牢模式含义文件不存在时r只读报错w写入覆盖原内容创建新文件a追加在末尾接续写创建新文件rb / wb二进制读写同上编码问题我要专门强调。你写open(data.txt, r)如果遇到中文乱码十有八九是编码没指定对。最稳妥的做法是写文件时显式指定encodingutf-8读文件时也显式指定。Python 3 在 Windows 上默认编码是中文环境下的 GBK在不同机器之间迁移代码时很容易出乱码所以规范点总是好的。5.2 路径与操作系统交互os、sys 模块想通过 Python 操作文件路径、获取当前目录、判断文件是否存在就要用到os模块。它是 Python 标准库的一部分不需要额外安装import os print(os.getcwd()) # 获取当前工作目录 print(os.listdir(.)) # 列出当前目录下的文件 print(os.path.exists(data.txt)) # 判断文件是否存在 os.mkdir(new_folder) # 创建文件夹sys模块则用于跟 Python 解释器交互最常用的命令是获取命令行参数和退出程序import sys # 脚本运行时传入的参数列表 print(sys.argv) # 退出程序并返回退出码 0 sys.exit(0)sys.argv这个命令在写自动化脚本时极其常用。比如你写了一个批量处理脚本希望运行时传参指定文件名代码就可以这样写import sys if len(sys.argv) 2: print(请传入文件名python my_script.py data.txt) sys.exit(1) filename sys.argv[1] print(f处理文件{filename})5.3 字符串处理split、join、replace、切片字符串操作在 Python 里的出现频率是最高的因为现实中大量数据都是文本。几个核心方法必须熟练掌握text apple,banana,cherry fruits text.split(,) # 按逗号切割成列表 print(fruits) # [apple, banana, cherry] new_text -.join(fruits) # 用连接符拼接列表 print(new_text) # apple-banana-cherry replaced text.replace(apple, orange) print(replaced) # orange,banana,cherry注意split是把字符串切成列表join是反方向把列表拼成字符串。这两个命令就像互逆操作成对记忆不容易混。字符串切片也是高频操作这里我再强调一下它是“左闭右开”url https://example.com print(url[:8]) # https:// print(url[-3:]) # com print(url[8:]) # example.com5.4 引入第三方库pip install 与 import 的配合Python 最强的地方在于生态第三方库要做什么都有。热词里很多人搜的 numpy数值计算、pandas数据处理、matplotlib画图、openpyxl操作 Excel都是第三方库它们的安装和使用规律是一样的pip install pandas然后在代码里引入import pandas as pd df pd.read_excel(data.xlsx) print(df.head())安装第三方库时有一个心态容易让人崩溃明明pip install成功了一运行代码还是提示ModuleNotFoundError: No module named pandas。这种情况九成是环境不统一你在终端里用的python和pip不是同一个。排查方法很简单python -m pip list如果你用python -m pip install pandas来安装就能确保装到当前python对应的环境里。这也是我推荐所有新手默认使用python -m pip而不是直接用pip的原因能省掉很多环境错乱的坑。6. 避坑新手最容易翻车的错误与实际排查思路6.1 “python was not found”与微软商店弹窗Windows 上出现过这个提示的人不计其数在 cmd 或 PowerShell 里输入python结果不是进入解释器而是弹出一条消息带你去微软商店。原因大概率是下面两种之一一是安装时没勾选“Add python.exe to PATH”。解决办法是重新运行安装程序选择 Modify然后把 PATH 那个选项勾上安装完成后重启终端。二是装的路径确实不在 PATH 里。你可以手动把 Python 的安装目录加进去。具体步骤设置 → 系统 → 关于 → 高级系统设置 → 环境变量在 Path 变量中新增两个路径——一个是 Python 安装目录本身另一个是它的Scripts子目录这个目录下放着pip.exe。加完记得保存并重开终端让新的环境变量生效。我见过有人加了 PATH 但还是不行这时候用where python去查发现指向了一个不存在的路径残留。可以把所有遗留的 Python 路径都清理掉再重新添加正确位置。提示如果是在 Visual Studio Code 里遇到这个问题除了系统 PATH 没问题之外还要留意 VS Code 右下角或者命令面板里选择的 Python 解释器是否正确。CtrlShiftP打开命令面板输入 “Python: Select Interpreter” 手动选择。6.2 ModuleNotFoundError库装在哪、怎么找ModuleNotFoundError是新手第二常见的报错。你要弄清一件事你运行代码的解释器跟你装库的解释器必须是一致的。检查方法import sys print(sys.executable) # 输出当前解释器的完整路径然后再用同一个 python 去安装库python -m pip install 库名装完再运行代码基本就能解决。还有一个常见场景是 Anaconda 用户。如果你终端里敲python进入的是 Anaconda 的 base 环境解释器而你用pip install装到了系统 Python 上那 import 一样失败。遇到这种情况用conda list查一下当前环境的包列表或者干脆统一用python -m pip操作。6.3 变量类型混淆引发的错误Python 虽然是动态类型语言但你依然逃不过类型问题。最常见的错误是把字符串拿去运算num 10 print(num 1)这行代码会报TypeError: can only concatenate str (not int) to str。原因是num是字符串类型字符串和整数不能直接相加。解决办法是先转类型num int(num) print(num 1)还有一个比较容易踩的坑是从 Excel、CSV 里读出的“看起来是数字”的数据其实是字符串。所以做完数据导入后建议立刻用print(type(某列数据))检查一下再决定要不要统一转换。这个习惯能帮你省掉大量莫名其妙的结果错误。6.4 中文编码与文件输出乱码前面提到过编码问题这里我展开讲。如果你写的中文字符串输出到控制台是乱码或者写入文件后再打开是乱码基本都能靠“统一用 UTF-8”来解决with open(output.txt, w, encodingutf-8) as f: f.write(你好世界)如果你从某个系统导出的文件是文本格式但没有告知编码读的时候可以尝试encodingutf-8如果报UnicodeDecodeError再换encodinggbk。这里有个小技巧是使用errorsignore参数先读一遍看内容是否正确with open(data.txt, r, encodingutf-8, errorsignore) as f: content f.read()但要注意errorsignore是“掩耳盗铃”式的解决办法它会丢掉无法解析的字符不建议作为正式方案只适合先看看文件大体内容。6.5 编辑器环境配置的最后提醒热词里很多人搜“vscode python环境配置”和“pycharm配置python环境”我也说一句。VS Code 里你只需要装好官方 Python 扩展然后在命令面板里选解释器PyCharm 里则是在 Settings → Project → Python Interpreter 里选择或者新建解释器。它们的本质都是一件事告诉编辑器应该用哪个 Python 解释器来运行代码。理解了这一点不管界面怎么变你都不会慌。7. 把基础命令串起来的一个综合小案例学了这么多零散命令我来用一个完整的小例子把它们串一遍。假设你有一个文本文件scores.txt里面存着几个学生的成绩格式是每行一个“姓名,分数”你想统计总分和平均分并输出到另一个文件。import os def read_scores(filename): 读取成绩文件返回姓名列表和分数列表 names [] scores [] with open(filename, r, encodingutf-8) as f: for line in f: line line.strip() # 去掉行尾换行符 if not line: # 跳过空行 continue name, score line.split(,) names.append(name) scores.append(int(score)) return names, scores def calculate(scores): total sum(scores) avg total / len(scores) return total, avg def write_report(filename, total, avg, names): with open(filename, w, encodingutf-8) as f: f.write(f学生人数{len(names)}\n) f.write(f总分{total}\n) f.write(f平均分{avg:.2f}\n) # 主流程 names, scores read_scores(scores.txt) total, avg calculate(scores) write_report(report.txt, total, avg, names) print(f处理完成共 {len(names)} 人总分 {total}平均分 {avg:.2f})这个例子用到了文件读写、循环、字符串切割、类型转换、函数定义、格式化输出、注释这些所有基础概念而且这些命令组合起来能解决很多真实问题。本质上你在实际工作中写的大多数脚本都是这个模式的变体读数据 → 处理数据 → 输出结果。把它跑通一遍之后我建议你自己动手改造一下比如改成从 Excel 读数据就要先pip install pandas再用pd.read_excel想画图就要装matplotlib。热词里有人问“python画图横坐标太密集”怎么办这就是数据处理后的可视化细节问题等你把基础打通这类问题自然能找到解法。基础命令不用背多用几次就熟了。别人问你能不能写 Python与其看你会多少条命令不如看你能不能把这些命令像搭积木一样组合起来解决真实需求。