《Python 修炼全景指南:一》从环境搭建到第一个程序

张开发
2026/4/21 22:51:36 15 分钟阅读

分享文章

《Python 修炼全景指南:一》从环境搭建到第一个程序
前言你一定听说过Python。这门诞生于1991年的编程语言如今已经是全球最受欢迎的编程语言之一。从网页后台到人工智能从数据分析到自动化运维从大学教授到硅谷工程师Python的身影无处不在。但你可能不知道的是Python最初只是一门 “让编程变得快乐” 的语言。它的发明者Guido van Rossum不满意当时主流语言的复杂性设计了这门简洁、易读、优雅的语言。没想到三十多年后Python成了这个时代最具影响力的编程语言。这篇文章我们从零开始一步一步搭建Python环境运行第一个程序并系统学习变量与数据类型。为后续的编程之路打下最坚实的基础。1、Python是什么为什么学习Python1.1、一门 “会放电” 的语言Python的Logo是一条蓝色的大蟒蛇但Python这个名字其实来源于Guido喜爱的一部英国电视喜剧《Monty Python’s Flying Circus》蒙提·派森的飞行马戏团。蟒蛇只是Logo不是名字的来源——Python的真正含义是那部喜剧带来的幽默精神。1991年Guido在荷兰阿姆斯特丹写下了Python的第一行代码。他的目标很简单让编程变得更简单、更愉快。三十多年过去了Python已经成为全球最受欢迎的编程语言之一Stack Overflow开发者调查多年位居榜首AI和机器学习领域的事实标准TensorFlow、PyTorch、Hugging Face全部基于Python数据科学领域的首选语言pandas、NumPy、Jupyter生态自动化运维领域的主流脚本语言Ansible、ScrapyWeb开发领域的重要力量Django、Flask、FastAPI教育领域的最佳编程入门语言全球无数大学用它教编程1.2、Python能做什么这个问题值得好好回答因为了解Python的 “能耐”能让你对未来学习方向有更清晰的规划。1.2.1、数据分析与科学计算如果你想转行数据分析师或者做量化交易Python几乎是必学的语言。pandas库让数据清洗和分析变得前所未有的简单NumPy提供了高效的数值计算能力Matplotlib和Seaborn能画出出版级的图表Jupyter Notebook提供了交互式的编程环境让数据分析过程一目了然。# 一个简单的数据分析示例计算班级平均分scores[85,92,78,96,88,74,91,83]averagesum(scores)/len(scores)print(f班级平均分{average:.2f})1.2.2、人工智能与机器学习TensorFlow 和 PyTorch 是深度学习领域最重要的两个框架全部以 Python 为主要接口。Hugging Face 的 Transformers 库让自然语言处理NLP变得触手可及。OpenCV 让计算视觉应用开发不再困难。# 几行代码就能调用强大的AI模型fromtransformersimportpipeline# 加载一个预训练的情感分析模型classifierpipeline(sentiment-analysis)resultclassifier(Python is an amazing programming language!)print(result)1.2.3、Web开发Django 是 Python 最成熟的全功能 Web 框架Instagram、Pinterest、YouTube 等巨头都在使用它。Flask 则是轻量级框架的代表适合快速开发 API 和小规模应用。FastAPI 是新生代框架性能极高自带 API 文档。# 用Flask创建一个最简单的Web服务fromflaskimportFlask appFlask(__name__)app.route(/)defhello():returnHello, World!# app.run() # 运行后访问 http://127.0.0.1:5000 即可看到页面1.2.4、自动化运维与脚本Python 是运维工程师的瑞士军刀。Ansible 这个流行的自动化工具本身就是用 Python 写的。Paramiko 让你用 Python 连接 SSH 服务器Scrapy 可以爬取整个网站的数据Selenium 能模拟浏览器操作实现 Web 自动化测试。# 用Python自动备份服务器日志文件importosimportshutilfromdatetimeimportdatetime backup_dirf/tmp/backup_{datetime.now().strftime(%Y%m%d_%H%M%S)}os.makedirs(backup_dir)shutil.copy(/var/log/syslog,backup_dir)print(f备份完成目录{backup_dir})1.3、Python的设计哲学import thisPython有一句名言“batteries included”——电池内置。意思是 Python 标准库已经非常丰富不需要额外安装就能做很多事。但 Python 更精髓的设计哲学藏在一条特殊的命令里importthis当你在 Python 解释器中运行这条命令会看到这样一段话——这被称为 “Python之禅” The Zen of PythonThe Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases arent special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless youre Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, its a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- lets do more of those!翻译过来核心思想是优美胜于丑陋。代码是给人看的要写得赏心悦目。显式胜于隐式。让代码的意图一目了然不要用奇怪的技巧让人看不懂。简单胜于复杂。能用一行解决的问题不要写十行。可读性很重要。代码是给程序员读的机器只是执行。应该有一种——而且最好只有一种——显而易见的方式。Python 倾向于提供 “最明显” 的方式来做事情减少选择困难。记住这些原则。它们将贯穿你整个Python学习生涯。1.4、Python 2 vs Python 3只学Python 3这是一个必须明确回答的问题应该学Python 2还是Python 3只学Python 3。这是毫无疑问的。Python 2 发布于 2000 年Python 3 发布于 2008 年。两者在语法上存在一些不兼容的地方比如print语句、/除法的默认行为、字符串编码等。Python 官方在 2020 年 1 月 1 日正式停止了对 Python 2 的支持。现在所有主流的第三方库、框架、工具、教程都只支持 Python 3。# Python 2 的写法旧式不要学printHello, World!# print后面不加括号printValue is %d%x# 字符串格式化# Python 3 的写法当前标准print(Hello, World!)# print是函数加括号print(fValue is{x})# f-string格式化更优雅本书所有代码均基于Python 3.10及以上版本后续不再说明。2、Python是如何工作的2.1、编译型、解释型、字节码型三种代码执行方式在开始写代码之前我们需要理解一个关键问题代码是如何被计算机执行的我们写的代码是人类可以阅读的文本源代码但计算机的CPU只能理解二进制指令机器码。所以任何编程语言都需要一个 “翻译” 过程把源代码转换成 CPU 能执行的指令。这个翻译的方式决定了一门语言的 “类型”。编译型语言的代表是 C 和 C。程序员的源代码经过编译器一次性全部翻译成机器码生成一个独立的可执行文件比如 Windows 上的 .exe 文件。之后运行时不需要源代码也不需要编译器直接运行编译好的机器码即可。源代码.c文件 ↓ [编译一次性] 可执行文件.exe ↓ [运行直接执行] 机器码被CPU执行编译型语言的优点是 “一次编译多次运行”执行效率高。但缺点是修改代码后必须重新编译跨平台Windows/Linux/Mac需要分别为每个平台编译。解释型语言的代表是 JavaScript 和 PHP。解释器逐行读取源代码逐行翻译成机器码并立即执行。没有单独的编译步骤修改代码后直接运行即可生效。源代码.js文件 ↓ [解释器逐行翻译执行] 机器码被CPU执行边翻译边执行解释型语言的优点是修改后立即运行跨平台只需要安装对应平台的解释器。但缺点是每次运行都需要翻译执行效率通常不如编译型语言。字节码型语言是上述两种方式的折中代表是 Python 和 Java。源代码先被编译成一种中间代码字节码字节码不是机器码但也不是源代码而是一种平台无关的中间表示。然后一个虚拟机Virtual Machine负责执行这些字节码。源代码hello.py ↓ [编译器内置的py_compiler] 字节码hello.pyc跨平台 ↓ [Python虚拟机PVM逐行执行字节码] 机器码被CPU执行Python 属于字节码型但通常被归类为 “解释型”因为在用户看来Python程序的运行过程和解释型语言非常相似—— “运行源代码” 即可无需显式的编译步骤。Python 的字节码文件.pyc保存在__pycache__/目录下# 第一次运行 hello.pyPython会# 1. 调用内置编译器将 hello.py 编译成 hello.cpython-311.pyc# 2. 调用Python虚拟机PVM执行字节码# 3. 下次运行时如果 hello.py 没有变化直接使用缓存的 .pyc# 你可以在文件系统中找到字节码文件# __pycache__/hello.cpython-311.pyc2.2、Python的多种实现当你听说 “Python是一门解释型语言”这里的 “Python” 实际上指的是 CPython —— 用 C 语言实现的 Python也是最官方、最广泛使用的 Python 实现。但 Python 语言本身是一套规范语法规则、关键字、内置行为可以有多种实现方式实现用什么语言写关键特点适用场景CPythonC 语言最官方版本最新生态最全通用场景99%的情况用它JythonJava运行在JVM上可与 Java 互操作Java 项目中嵌入 PythonIronPythonC#运行在 .NET 上可与 C# 互操作.NET 项目中嵌入 PythonPyPyPythonRPythonJIT 即时编译执行速度快对性能要求高的场景初学者不需要关心这些区别直接使用 CPython 即可。所有第三方库首先支持的也是 CPython。2.3、验证 Python 安装在终端Linux/Mac中运行以下命令验证 Python 是否已正确安装# 查看Python版本python3--version# 期望输出Python 3.10.x 或更高版本# 进入交互式解释器逐行执行Python代码python3进入交互式解释器后你会看到类似这样的输出Python 3.11.7 (main, Oct 4 2024, 14:00:00) [GCC 11.4.0] on linux Type help, copyright, credits or license for more information. 是Python的提示符表示它正在等待你输入代码112print(Hello, Python!)Hello,Python!hello.upper()HELLOexit()# 退出交互式解释器3、在 CentOS 上安装 Python 环境

更多文章