python简介及开发环境配置总结
参考Python3 教程 | 菜鸟教程 (runoob.com)本系列文章主要作为自己的笔记使用以菜鸟的Python3为参考。Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python 由 Guido van Rossum 于 1989 年底发明第一个公开发行版发行于 1991 年。像 Perl 语言一样, Python 源代码同样遵循 GPL(GNU General Public License) 协议。官方宣布2020 年 1 月 1 日 停止 Python 2 的更新。Python 2.7 被确定为最后一个 Python 2.x 版本。Python 的 3.0 版本常被称为 Python 3000或简称 Py3k。相对于 Python 的早期版本这是一个较大的升级。为了不带入过多的累赘Python 3.0 在设计的时候没有考虑向下兼容。执行Python程序对于大多数程序语言第一个入门编程代码便是 Hello WorldPython 3.0 版本已经把 print 作为一个内置函数输出 Hello World 代码如下实例(Python 3.0)#!/usr/bin/python3 print(Hello, World!)关于脚本第一行的#!/usr/bin/python的解释相信很多不熟悉 Linux 系统的同学需要普及这个知识脚本语言的第一行只对 Linux/Unix 用户适用用来指定本脚本用什么解释器来执行。有这句的加上执行权限后可以直接用./执行不然会出错因为找不到 python 解释器。#!/usr/bin/python 是告诉操作系统执行这个脚本的时候调用 /usr/bin 下的 python 解释器。#!/usr/bin/env python 这种用法是为了防止操作系统用户没有将 python 装在默认的 /usr/bin 路径里。当系统看到这一行的时候首先会到 env 设置里查找 python 的安装路径再调用对应路径下的解释器程序完成操作。#!/usr/bin/python相当于写死了 python 路径。#!/usr/bin/env python会去环境设置寻找 python 目录可以增强代码的可移植性推荐这种写法。分成两种情况1如果调用 python 脚本时使用:$ python3 hello.py#!/usr/bin/python 被忽略等同于注释2如果调用python脚本时使用:./script.py#!/usr/bin/python 指定解释器的路径PSshell 脚本中在第一行也有类似的声明。Python 发展历史Python 是由 Guido van Rossum 在八十年代末和九十年代初在荷兰国家数学和计算机科学研究所设计出来的。Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。像 Perl 语言一样Python 源代码同样遵循 GPL(GNU General Public License)协议。现在 Python 是由一个核心开发团队在维护Guido van Rossum 仍然占据着至关重要的作用指导其进展。Python 2.0 于 2000 年 10 月 16 日发布增加了实现完整的垃圾回收并且支持 Unicode。Python 3.0 于 2008 年 12 月 3 日发布此版不完全兼容之前的 Python 源代码。不过很多新特性后来也被移植到旧的Python 2.6/2.7版本。Python 3.0 版本常被称为 Python 3000或简称 Py3k。相对于 Python 的早期版本这是一个较大的升级。Python 2.7 被确定为最后一个 Python 2.x 版本它除了支持 Python 2.x 语法外还支持部分 Python 3.1 语法。为什么说python是一个脚本语言C/C不可以做脚本语言吗关于 “脚本语言” 的定义不同语境下可能有细微差异但通常可从执行方式、应用场景、语言特性三个维度区分。以下是 Python 被视为脚本语言而 C/C 不是的核心原因一、执行方式解释型 vs 编译型Python脚本语言的典型特征解释执行 Python 代码无需提前编译为二进制文件而是由解释器如 CPython逐行读取并执行。例如保存为.py的文件可直接通过命令python script.py运行修改代码后无需重新编译即可生效。动态类型 变量类型在运行时确定无需显式声明如x 10和x hello可直接赋值降低了编写门槛。C/C典型的编译型语言编译执行 C/C 代码必须通过编译器如 GCC、Clang编译为机器码.exe、.o等二进制文件才能运行。例如C 代码hello.c需通过gcc hello.c -o hello编译生成可执行文件hello后才能运行修改代码后必须重新编译。静态类型 变量类型必须提前声明如int x 10;类型错误会在编译阶段报错需严格遵循语法规则。二、设计目标快速开发 vs 性能优先Python脚本语言的设计初衷强调效率和易用性语法简洁如用缩进代替大括号代码量通常比 C/C 少 50% 以上。内置丰富的标准库如文件操作、网络请求、数据处理无需从零开始编写底层代码。适合快速迭代 脚本语言常用于一次性任务、临时工具、自动化流程如数据清洗、爬虫、测试脚本允许开发者快速编写、调试、运行代码。C/C系统级语言的定位强调性能和底层控制直接操作内存和硬件执行效率极高C 的速度通常是 Python 的 10-100 倍。需要手动管理内存如malloc/free、指针允许编写高度优化的代码。适合复杂系统开发 编译型语言常用于操作系统内核、大型软件、高性能服务、游戏引擎等对性能要求苛刻的场景而非快速脚本任务。三、应用场景胶水工具 vs 基建工程Python 的脚本语言典型场景自动化脚本 批量处理文件、部署测试环境、监控系统状态如用 Python 脚本每天自动生成报表。胶水代码 连接不同语言或组件如用 Python 调用 C/C 编译的库或调用 Shell 命令。快速验证 科研计算、算法原型设计如用 Python 编写机器学习模型验证逻辑后再用 C 优化。C/C 难以作为脚本语言的场景不适合临时任务 编写一个简单的 “文件重命名” 工具Python 可能只需 10 行代码而 C 需要包含头文件、处理参数、编写文件操作逻辑代码量多且需编译。动态性不足 无法在运行时修改代码逻辑如通过字符串动态执行表达式而 Python 的eval()、exec()等功能支持动态编程。四、例外情况脚本语言的边界并非绝对C/C 的 “脚本化” 尝试部分嵌入式系统会用 C 语言编写类似脚本的 “配置文件解析器”但本质仍是编译型代码需提前编译到程序中。例如游戏引擎用 C 编写但可能嵌入 Lua/Python 作为脚本语言如 Unity 用 C#Boo 脚本。Python 的 “非脚本” 用途Python 也可用于开发大型应用如 Web 框架 Django、数据分析库 Pandas但此时它更接近 “通用编程语言”而非单纯的脚本。总结一句话区分脚本语言如 Python是 “可以直接运行的指令集”适合快速解决具体问题像 “螺丝刀” 一样即取即用。编译型语言如 C/C是 “需要提前锻造的工具”适合构建复杂系统像 “钢铁” 一样需要精心冶炼才能发挥威力。两者并无优劣之分只是设计目标和应用场景不同。Python 的脚本语言特性使其成为 “自动化神器”而 C/C 的编译型特性使其成为 “性能基石”。Python特点1.易于学习Python 有相对较少的关键字结构简单和一个明确定义的语法学习起来更加简单。2.易于阅读Python 代码定义的更清晰。3.易于维护Python的 成功在于它的源代码是相当容易维护的。4.一个广泛的标准库Python 的最大的优势之一是丰富的库跨平台的在 UNIX、Windows 和 Mac 兼容很好。5.互动模式互动模式的支持您可以从终端输入执行代码并获得结果的语言互动的测试和调试代码片段。6.可移植基于其开放源代码的特性Python 已经被移植也就是使其工作到许多平台。7.可扩展如果你需要一段运行很快的关键代码或者是想要编写一些不愿开放的算法你可以使用 C 或 C 完成那部分程序然后从你的 Python 程序中调用。8.数据库Python 提供所有主要的商业数据库的接口。9.GUI 编程Python 支持 GUI 可以创建和移植到许多系统调用。10.可嵌入:你可以将 Python 嵌入到 C/C 程序让你的程序的用户获得脚本化的能力。Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 是一种解释型语言这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。Python 是交互式语言这意味着您可以在一个 Python 提示符后直接执行代码。Python 是面向对象语言:这意味着Python支持面向对象的风格或代码封装在对象的编程技术。Python 是初学者的语言Python 对初级程序员而言是一种伟大的语言它支持广泛的应用程序开发从简单的文字处理到 WWW 浏览器再到游戏。Python 应用Youtube - 视频社交网站Reddit - 社交分享网站Dropbox - 文件分享服务豆瓣网 - 图书、唱片、电影等文化产品的资料数据库网站知乎 - 一个问答网站果壳 - 一个泛科技主题网站Bottle - Python微Web框架EVE - 网络游戏EVE大量使用Python进行开发Blender - 使用Python作为建模工具与GUI语言的开源3D绘图软件Inkscape - 一个开源的SVG矢量图形编辑器。...python常见应用比如数据处理、网络爬虫、人工智能等等数据处理#!/usr/bin/env python # -- coding: utf-8 -- import pandas as pd def sort_excel_file(input_file, output_file, sort_column, ascendingTrue): 对 Excel 文件中的数据按指定列进行排序并保存为新文件 参数: input_file (str): 输入 Excel 文件路径 output_file (str): 输出 Excel 文件路径 sort_column (str): 排序依据的列名 ascending (bool): 是否升序排列默认为 True try: # 读取 Excel 文件 df pd.read_excel(input_file) # 检查排序列是否存在 if sort_column not in df.columns: print(f错误: 列 {sort_column} 不存在于文件中。) return False # 按指定列排序 sorted_df df.sort_values(bysort_column, ascendingascending) # 将排序后的数据保存到新的 Excel 文件 sorted_df.to_excel(output_file, indexFalse) print(f成功排序并保存到 {output_file}) return True except FileNotFoundError: print(f错误: 文件 {input_file} 不存在。) return False except Exception as e: print(f发生未知错误: {e}) return False # 使用示例 if __name__ __main__: # 输入和输出文件路径 input_file rC:\Users\admin\Desktop\data.xlsx # 请替换为你的 Excel 文件路径 output_file rC:\Users\admin\Desktop\sorted_data.xlsx # 按指定列排序请替换为你要排序的列名 sort_excel_file(input_file, output_file, sort_column编号, ascendingTrue)网络爬虫import requests from bs4 import BeautifulSoup import csv from time import sleep import random # 设置请求头模拟浏览器访问 headers { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 } def get_poems(url): 爬取古诗文网主页的古诗 try: response requests.get(url, headersheaders) response.encoding utf-8 # 设置编码 soup BeautifulSoup(response.text, html.parser) poems [] # 查找古诗条目 for item in soup.find_all(div, class_left): for poem_div in item.find_all(div, class_sons): # 提取标题 title_tag poem_div.find(b) title title_tag.text.strip() if title_tag else 无标题 # 提取作者和朝代 source_div poem_div.find(p, class_source) if source_div: author source_div.find_all(a)[0].text.strip() dynasty source_div.find_all(a)[1].text.strip() else: author 未知 dynasty 未知 # 提取内容 content_div poem_div.find(div, class_contson) content content_div.text.strip().replace(\n, ) if content_div else 无内容 poems.append({ 标题: title, 作者: author, 朝代: dynasty, 内容: content }) return poems except Exception as e: print(f爬取失败: {e}) return [] def save_to_csv(poems, filenamepoems.csv): 将古诗保存到CSV文件 with open(filename, w, newline, encodingutf-8-sig) as f: writer csv.DictWriter(f, fieldnames[标题, 作者, 朝代, 内容]) writer.writeheader() writer.writerows(poems) print(f数据已保存到 {filename}) def main(): base_url https://www.gushiwen.cn/ # 爬取首页古诗 print(开始爬取古诗文网...) poems get_poems(base_url) if poems: print(f共爬取到 {len(poems)} 首古诗) save_to_csv(poems) # 打印前3首作为示例 print(\n示例古诗:) for i, poem in enumerate(poems[:3], 1): print(f\n{i}. {poem[标题]}) print(f作者: {poem[作者]} ({poem[朝代]})) print(内容:) print(poem[内容]) else: print(未爬取到古诗数据) if __name__ __main__: main()人工智能-机器学习加州房价预测简单示例# 导入必要的库 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.datasets import fetch_california_housing from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error, r2_score # 1. 加载加州房价数据集 housing fetch_california_housing() X housing.data # 特征 y housing.target # 目标变量房价 # 2. 数据探索可选 print(数据基本信息) print(housing.DESCR) # 打印数据集描述 # 转换为DataFrame便于查看 housing_df pd.DataFrame(X, columnshousing.feature_names) housing_df[MedHouseVal] y print(\n数据集行数和列数:, housing_df.shape) print(\n数据前几行信息:) print(housing_df.head()) # 3. 划分训练集和测试集 X_train, X_test, y_train, y_test train_test_split( X, y, test_size0.2, random_state42) # 4. 特征标准化 scaler StandardScaler() X_train_scaled scaler.fit_transform(X_train) X_test_scaled scaler.transform(X_test) # 5. 模型训练使用随机森林回归器 model RandomForestRegressor(n_estimators100, random_state42) model.fit(X_train_scaled, y_train) # 6. 模型预测 y_pred model.predict(X_test_scaled) # 7. 模型评估 mse mean_squared_error(y_test, y_pred) rmse np.sqrt(mse) r2 r2_score(y_test, y_pred) print(\n模型评估结果:) print(f均方误差 (MSE): {mse:.4f}) print(f均方根误差 (RMSE): {rmse:.4f}) print(f决定系数 (R²): {r2:.4f}) # 8. 特征重要性可视化 importances model.feature_importances_ features housing.feature_names plt.figure(figsize(10, 6)) plt.bar(features, importances) plt.title(特征重要性) plt.xlabel(特征) plt.ylabel(重要性) plt.xticks(rotation45) plt.tight_layout() plt.show() # 9. 预测值与真实值对比可视化 plt.figure(figsize(10, 6)) plt.scatter(y_test, y_pred, alpha0.6) plt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], r--) plt.title(预测值 vs 真实值) plt.xlabel(真实房价) plt.ylabel(预测房价) plt.show()更多待补充。Python环境搭建接下来我们将向大家介绍如何在本地搭建Python开发环境。Python可应用于多平台包括 Win、Linux 和 Mac OS X等等。你可以通过终端窗口输入 python 命令来查看本地是否已经安装Python以及Python的安装版本。我们可以在命令窗口(Windows 使用 winR 调出 cmd 运行框)使用以下命令查看我们使用的 Python 版本python -V 或 python --version比如Python下载Python最新源码二进制文档新闻资讯等可以在Python的官网查看到Python官网Welcome to Python.org你可以在以下链接中下载 Python 的文档你可以下载 HTML、PDF 和 PostScript 等格式的文档。Python文档下载地址Our Documentation | Python.orgPython安装Python已经被移植在许多平台上经过改动使它能够工作在不同平台上。您需要下载适用于您使用平台的二进制代码然后安装Python。如果您平台的二进制代码是不可用的你需要使用C编译器手动编译源代码。编译的源代码功能上有更多的选择性 为python安装提供了更多的灵活性。以下是各个平台安装包的下载地址以下为不同平台上安装 Python 的方法Unix Linux 平台安装 Python:以下为在 Unix Linux 平台上安装 Python 的简单步骤打开 WEB 浏览器访问Python Source Releases | Python.org选择适用 于Unix/Linux 的源码压缩包。下载及解压压缩包。如果你需要自定义一些选项修改Modules/Setup执行./configure 脚本makemake install执行以上操作后Python 会安装在 /usr/local/bin 目录中Python 库安装在 /usr/local/lib/pythonXXXX 为你使用的 Python 的版本号。Window 平台安装 Python:以下为在 Window 平台上安装 Python 的简单步骤打开 WEB 浏览器访问Python Releases for Windows | Python.org在下载列表中选择Window平台安装包包格式为python-XYZ.msi文件 XYZ 为你要安装的版本号。下载后双击下载包进入 Python 安装向导安装非常简单你只需要使用默认的设置一直点击下一步直到安装完成即可。更多参考如何在Win10下安装Python3_csdnvs环境配置-CSDN博客一台电脑可以装多个 Python 版本完全可以电脑上能同时装 Python3.8、3.9、3.10、3.11、3.12甚至还保留老 Python2.7互不冲突但关键是要管理好环境、环境变量不然命令行容易版本错乱。Windows方式 1官网安装包直接多装去python.org下载不同版本安装包一个个安装。⚠️安装的时候不要全部勾选 Add Python to PATH容易互相覆盖。如果勾选了系统 PATH 会塞一堆 python 路径敲python不知道调用哪一个。调用不同版本py -3.8 # 启动3.8 py -3.11 # 启动3.11 py -0 # 列出本机所有已安装python版本Windows 自带一个py.exe启动器专门用来管理多个 Python 版本推荐优先用py而不是直接写python。pip 安装包py -3.8 -m pip install xxx py -3.11 -m pip install xxx方式 2工具管理更推荐pyenv‑winwindows 下 pyenv 版本管理器一键安装切换版本。Linux / macOS系统自带一个 Python不要直接改系统 Python会弄坏系统工具。用pyenv管理多个版本最标准。pyenv install 3.9.20 pyenv install 3.12.4 pyenv versions # 查看所有版本 pyenv global 3.12.4 #全局默认版本 pyenv local 3.9.20 #当前文件夹用这个版本虚拟环境重要多个 Python 版本 ≠ 虚拟环境。多版本 Python是解释器本身CPython 不同的 exe / 二进制程序。虚拟环境 venv同一个 Python 解释器隔离不同项目的第三方包。示例用 3.10 解释器创建虚拟环境py -3.10 -m venv myenv常见坑直接敲python出来版本不对PATH 环境变量优先级问题Windows 优先用py命令。pip 装的包跑到别的版本去了不要直接用pip install永远用python -m pip install保证包装到当前这个解释器下。Linux 不要卸载系统自带 python很多系统工具依赖它。简单总结✅一台机器可以并存 N 个 Python 解释器版本Windows 优先用py启动器Linux/mac 优先 pyenv版本管解释器虚拟环境管项目依赖包两者配合使用。python安装目录简介默认安装路径如下C:\Users\GM\AppData\Local\Programs\Python\Python311这里的GM是windows登录账号名。目录如下;参考Python教程Python安装目录说明_新建的python项目中的include lib scripts pyvenv.cfg都是有什么作用-CSDN博客在 python 开发中深入了解 Python 的安装目录结构对于开发者来说是至关重要的。本文以Python 3.11.9为例详细介绍 Python 的安装目录结构、各个子目录和文件的作用。Python311/ │ ├── Lib/ # Python 标准库 ├── DLLs/ # Python 解释器所需的 DLL 文件 ├── include/ # 头文件和静态库文件 ├── Scripts/ # 存放 pip 等脚本文件 ├── tcl/ # Tcl/Tk 相关文件 ├── Tools/ # 辅助工具和脚本 ├── python.exe # Python 解释器可执行文件 ├── pyvenv.cfg # Python 虚拟环境配置文件 ├── README.txt # Python 安装说明文件 └── ... # 其他辅助文件和目录Lib/Lib/ 目录是 Python 3.8.6 的标准库目录包含了大量的内置模块和包提供了丰富的功能和工具供开发者使用。在这里可以找到各种用于开发的模块和包。DLLs/DLLs/ 目录包含了 Python 解释器运行所需的 DLL 文件这些动态链接库通常包括与操作系统交互和底层功能相关的库。它们是 Python 解释器正常运行所必需的组件。include/include/ 目录包含了头文件和静态库文件这些文件通常用于编译和链接 C/C 扩展模块。如果您需要扩展 Python 的功能您将会在这里找到所需的文件。Scripts/Scripts/ 目录存放了一些 Python 相关的脚本文件例如 pip 工具的可执行文件就会被安装到这个目录下。这些脚本文件是与 Python 开发和环境配置密切相关的工具。tcl/tcl/ 目录通常包含了与 Tcl/Tk 相关的文件这些文件用于支持 Python 的 Tkinter 等 GUI 库功能。Tcl/Tk 是 Python 中常用的图形用户界面库这些文件提供了 GUI 开发所需的支持。Tools/Tools/ 目录包含了一些辅助工具和脚本这些工具和脚本有助于配置、构建和调试 Python 的运行环境。在这里可以找到一些实用的工具帮助您更有效地管理 Python 开发过程。python.exe执行python命令启动时就是执行的这个exe程序python.exe 是 Python 3.8.6 解释器的可执行文件通过运行这个文件可以启动 Python 解释器并执行 Python 脚本。这是您与 Python 交互的入口点让您能够运行 Python 代码并执行各种任务。pyvenv.cfgpyvenv.cfg 是 Python 虚拟环境的配置文件其中包含了虚拟环境的配置信息如解释器路径、包存储路径等。虚拟环境可以帮助您隔离项目之间的依赖关系使得项目开发更加独立和可控。README.txtREADME.txt 是 Python 的安装说明文件提供了关于安装 Python 的一些基本信息和注意事项。通过阅读此文件您可以快速了解如何正确地安装和配置 Python 3.8.6。其他文件和目录除了上述主要目录和文件外Python 3.8.6 的安装目录还可能包含其他辅助文件和目录如示例代码、文档、配置文件等。这些文件和目录对于帮助您更好地理解 Python 的安装和运行机制也非常重要。补充Windows系统搭建好Python的环境后进入Python的安装目录大家会发现目录中有python.exe和pythonw.exe两个程序。它们到底有什么区别和联系呢概括说明一下python.exe在运行程序的时候会弹出一个黑色的控制台窗口也叫命令行窗口、DOS/CMD窗口pythonw.exe是无窗口的Python可执行程序意思是在运行程序的时候没有窗口代码在后台执行。环境变量配置程序和可执行文件可以在许多目录而这些路径很可能不在操作系统提供可执行文件的搜索路径中。path(路径)存储在环境变量中这是由操作系统维护的一个命名的字符串。这些变量包含可用的命令行解释器和其他程序的信息。Unix或Windows中路径变量为PATHUNIX区分大小写Windows不区分大小写。在Mac OS中安装程序过程中改变了python的安装路径。如果你需要在其他目录引用Python你必须在path中添加Python目录。在 Unix/Linux 设置环境变量如果是csh shell:输入setenv PATH $PATH:/usr/local/bin/python按下Enter。如果是bash shell (Linux):输入export PATH$PATH:/usr/local/bin/python按下Enter。如果是sh 或者 ksh shell:输入PATH$PATH:/usr/local/bin/python按下Enter。注意:/usr/local/bin/python 是 Python 的安装目录。在 Windows 设置环境变量在环境变量中添加Python目录在命令提示框中(cmd) :输入path%path%;C:\Python按下Enter。注意:C:\Python 是Python的安装目录。也可以通过以下方式设置右键点击计算机然后点击属性然后点击高级系统设置选择系统变量窗口下面的Path,双击即可然后在Path行添加python安装路径即可(我的D:\Python32)所以在后面添加该路径即可。ps记住路径直接用分号隔开最后设置成功以后在cmd命令行输入命令python就可以有相关显示。​注意如果安装时勾选了自动添加环境变量就不用再手动添加了更多待补充。运行Python有三种方式可以运行Python1、交互式解释器这种是直接在命令窗口中写程序。你可以通过命令行窗口进入 Python并在交互式解释器中开始编写 Python 代码。你可以在 Unix、DOS 或任何其他提供了命令行或者 shell 的系统进行 Python 编码工作。$ python # Unix/Linux或者C:python # Windows/DOS以下为Python命令行参数更多要退出Python交互模式可以按下Ctrl ZWindows系统或Ctrl DMac和Linux系统组合键然后按下Enter键即可。 注意要按Enter来确认退出。另外ctrlc或者esc都无法退出。2、命令行脚本这种是已经有py脚本然后执行脚本。在你的应用程序中通过引入解释器可以在命令行中执行Python脚本如下所示$ python script.py # Unix/Linux或者C:python script.py # Windows/DOS注意在执行脚本时请检查脚本是否有可执行权限。3、集成开发环境IDEIntegrated Development Environment: PyCharm、idea、vscode等PyCharm 是由 JetBrains 打造的一款 Python IDE支持 macOS、 Windows、 Linux 系统。PyCharm 功能 : 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制……PyCharm 下载地址 :Download PyCharm: The Python IDE for data science and web development by JetBrainsPyCharm 安装地址http://www.runoob.com/w3cnote/pycharm-windows-install.html可选安装 PyCharm 中文插件打开菜单栏 File选择 Settings然后选 Plugins点 Marketplace搜索 chinese然后点击 install 安装在接下来的学习中请确保您的环境已搭建成功。在以后的章节中给出的例子已在 Python2.7.6 版本测试通过。Python 中文编码前面章节中我们已经学会了如何用 Python 输出Hello, World!英文没有问题但是如果你输出中文字符你好世界就有可能会碰到中文编码问题。Python 文件中如果未指定编码在执行过程会出现报错#!/usr/bin/python print (你好世界)以上程序执行输出结果为File test.py, line 2 SyntaxError: Non-ASCII character \xe4 in file test.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for detailsPython中默认的编码格式是 ASCII 格式在没修改编码格式时无法正确打印汉字所以在读取中文时会报错。解决方法为只要在文件开头加入# -*- coding: UTF-8 -*-或者# codingutf-8就行了注意# codingutf-8的号两边不要空格。#!/usr/bin/python # -*- coding: UTF-8 -*- print( 你好世界 )输出结果为你好世界所以如果大家在学习过程中代码中包含中文就需要在头部指定编码。注意Python3.X 源码文件默认使用utf-8编码所以可以正常解析中文无需指定 UTF-8 编码。注意如果你使用编辑器同时需要设置 py 文件存储的格式为 UTF-8否则会出现类似以下错误信息SyntaxError: (unicode error) ‘utf-8’ codec can’t decode byte 0xc4 in position 0: invalid continuation bytePycharm 设置步骤进入file Settings在输入框搜索encoding。找到Editor File encodings将IDE Encoding和Project Encoding设置为utf-8。补充执行python脚本时到底是使用哪个符号python还是python2还是python3执行 Python 脚本时该用python、python2还是python3核心原则是看脚本的 Python 版本兼容性 系统中命令的实际指向下面分场景讲得明明白白新手也能直接套用。一、先明确核心规则记住这 2 点就不懵python2 只执行 Python 2.x 脚本python3 只执行 Python 3.x 脚本这两个命令是「精准指定版本」不会错python是「模糊别名」系统指向哪个版本就用哪个版本执行Ubuntu 22.04 默认没有这个命令你手动创建后才指向 Python 2.7。二、分场景选择执行命令按优先级排序场景 1知道脚本的目标版本推荐最稳妥如果脚本是 Python 2 写的比如你 Buildroot 里的旧脚本python2 脚本名.py # 精准指定不会出错如果脚本是 Python 3 写的比如新开发的脚本python3 脚本名.py # 精准指定避免兼容问题场景 2不知道脚本版本先检测再执行第一步看脚本开头的「shebang 行」第一行直接告诉你目标版本脚本第一行是#!/usr/bin/env python2→ 用python2 脚本名.py脚本第一行是#!/usr/bin/env python3→ 用python3 脚本名.py脚本第一行是#!/usr/bin/env python→ 看系统python指向的版本你这里指向 Python 2.7就用python 脚本名.py或python2 脚本名.py。第二步如果没有 shebang 行用版本检测命令# 检测脚本是否兼容 Python 2 python2 -m py_compile 脚本名.py # 无报错 → 兼容 Python 2 # 检测脚本是否兼容 Python 3 python3 -m py_compile 脚本名.py # 无报错 → 兼容 Python 3三、避坑要点新手最容易错不要混用版本比如用python3执行 Python 2 脚本大概率会报语法错误比如 print 语句少括号、编码问题Ubuntu 22.04 不要直接用python默认没有这个命令必须先创建链接否则报错No such file or directory脚本有可执行权限时chmod x 脚本名.py直接./脚本名.py即可脚本 shebang 是python2→ 自动用 Python 2 执行脚本 shebang 是python3→ 自动用 Python 3 执行。总结优先用python2/python3精准指定版本避免别名带来的混乱旧脚本如 Buildroot 里的用python2新脚本用python3不确定版本时先看脚本 shebang 或用py_compile检测。有些python脚本第一行的#!/usr/bin/env python是什么意思1.#!→ 「shebang / 释伴」符号核心标识这是 Linux/Unix 系统的特殊标记必须写在脚本第一行的开头系统看到这个符号就知道「这不是普通文本是可执行脚本需要找对应的解释器来运行」如果没有这行直接执行./脚本.py会报错系统不知道用什么程序来解析脚本。2./usr/bin/env→ 「找解释器的工具」/usr/bin/env是系统自带的命令作用是在系统的PATH环境变量里找后面跟着的程序为什么不用直接写/usr/bin/python不同系统的 Python 路径可能不一样比如有的在/usr/local/bin/python用env能自动找脚本兼容性更强如果你装了多个 Python 版本env会找PATH里第一个匹配的python命令。3.python→ 「要找的解释器」env会在PATH里找名为python的可执行文件找到后就用这个python来运行整个脚本对应到你的场景你创建了/usr/bin/python指向python2所以env找到的就是 Python 2.7脚本就用 Python 2 执行。