【Pythonr入门第二讲】你好,世界
"Hello, World!"
是一种传统的编程入门示例,通常是程序员学习一门新编程语言时编写的第一个程序。这个程序的目标非常简单:在屏幕上输出 "Hello, World!"
这个字符串。尽管它非常简单,但具有重要的象征意义和实际价值。
Python介绍
学了Python你能做什么
数据分析与挖掘
- Kaggle入门:泰坦尼克号幸存者 - 分析泰坦尼克号乘客数据,预测乘客是否生存。
- 电影人物关系提取 - 通过分析电影剧本,提取人物之间的关系网络。
- 出租车与网约车调度 - 利用实时数据优化出租车和网约车的调度策略。
- 租房问题 - 分析租房市场数据,找到最佳租房策略。
- NBA比赛结果预测 - 基于历史比赛数据,使用机器学习模型预测NBA比赛结果。
机器学习与深度学习
- 人脸识别 - 使用深度学习模型实现人脸识别系统。
- K-近邻算法实现手写数字识别 - 利用机器学习算法(K-近邻)实现手写数字的自动识别。
- 中文错别字高亮系统 - 基于自然语言处理,设计一个中文错别字检测与高亮系统。
- 街边字符识别 - 利用计算机视觉技术,识别街边标识上的字符信息。
网络开发
- Django搭建个人博客 - 使用Django框架建立个人博客,实现文章发布、用户管理等功能。
- Flask实现简易聊天室 - 利用Flask框架创建一个简易的实时聊天室。
- 信息管理系统 - 使用异步框架(如Toronto)搭建一个信息管理系统,用于数据的存储和检索。
爬虫
- 微信好友信息批量获取 - 利用爬虫技术批量获取微信好友的相关信息。
- 微博热搜 - 爬取微博热搜榜单,分析热门话题。
- 爬取知乎图片 - 通过爬虫程序获取知乎上的图片资源。
- 爬取天气预报 - 从天气网站获取实时天气信息,用于天气预报应用。
- 网易云音乐 - 利用爬虫获取网易云音乐的歌曲、歌手信息等。
这些实际任务展示了Python在不同领域的灵活应用。学习Python后,我们能够处理数据、实现机器学习算法、进行网络开发以及使用爬虫技术获取互联网数据。这种多领域的适用性是Python开发的一大优势。
新建项目
- 新建项目
项目
Python 解释器
Python 解释器是执行 Python 代码的软件组件,它将你编写的 Python 脚本翻译成计算机能够理解的机器语言,然后执行代码。
虚拟环境: virtualenv、pipenv、poetry、conda
什么是Python环境
Python 环境通常指的是 Python 解释器、相关的库、工具和设置。Python 环境可以是全局环境,也可以是虚拟环境。
全局 Python 环境:
- 全局环境是安装在计算机系统上的 Python 解释器和相关库的集合。这是你计算机上默认的 Python 环境。
- 安装 Python 后,你可以在命令行或终端中运行 Python 解释器,执行 Python 脚本。全局环境中的库和工具对所有项目都是可用的。
- 但在开发中,全局环境的一个问题是可能会出现版本冲突或库之间的不兼容性。为了解决这个问题,可以使用虚拟环境。
虚拟环境:
- 虚拟环境是一个独立的 Python 环境,用于隔离不同项目的依赖关系。每个虚拟环境都有自己的 Python 解释器和库,与全局环境和其他虚拟环境相互隔离。
- 虚拟环境允许你在同一台机器上的不同项目中使用不同版本的 Python 解释器和第三方库,以避免冲突。
- 通过虚拟环境,你可以确保每个项目都拥有其独立的 Python 环境,使得项目之间的开发更加灵活和可维护。
什么是虚拟环境
虚拟环境(Virtual Environment)是 Python 中的一个工具,用于创建独立的、隔离的 Python 运行环境。它允许在同一台机器上的不同项目中使用不同版本的 Python 解释器和第三方库,以避免项目之间的依赖冲突。使用虚拟环境,你可以为每个项目创建一个独立的环境,保持项目之间的依赖关系隔离,确保项目的独立性和可维护性。
虚拟环境的主要目的是:
- 依赖隔离: 每个虚拟环境都有自己的 Python 解释器和第三方库,与全局 Python 环境和其他虚拟环境相互隔离。这意味着你可以为每个项目选择特定版本的库,而不受其他项目的影响。
- 版本管理: 你可以在不同的虚拟环境中使用不同版本的 Python 解释器。这对于确保项目在特定 Python 版本下运行非常有用。
- 简化依赖安装: 在虚拟环境中,你可以通过简单的命令安装项目所需的依赖,而不会影响到全局 Python 环境。
Virtualenv、Pipenv、Poetry、Conda 如何选择
选择使用 virtualenv
、pipenv
、poetry
还是 conda
取决于项目需求、工作流程以及个人偏好:
virtualenv
****:
- 适用场景:
- 轻量级虚拟环境管理,适合小型项目和快速原型。
- 当你只需要创建和激活虚拟环境,而不涉及依赖管理时。 - 优点:
- 简单,是 Python 标准库的一部分。
- 易于使用,适合初学者
。
- 与pip
配合使用,可以灵活管理依赖。 - 缺点:
- 不提供依赖管理的高级功能。
- 不能锁定依赖版本。
pipenv
****:
- 适用场景:
- 依赖管理和虚拟环境创建。
- 适用于中小型项目,支持开发和部署的一体化。 - 优点:
- 自动创建和管理虚拟环境。
- 提供 Pipfile 和 Pipfile.lock 文件,用于确定依赖关系和版本。
- 支持环境变量自动加载。 - 缺点:
- 有时可能较慢,对于大型项目可能不是最佳选择。
poetry
****:
- 适用场景:
- 管理 Python 项目的全部生命周期,包括依赖管理、构建、发布等。
- 适用于中大型项目,强调项目整体性。 - 优点:
- 提供全方位的项目管理,包括构建、依赖管理、发布等。
- 简化了setup.py
和requirements.txt
的使用。
- 支持 pyproject.toml 文件。 - 缺点:
- 在某些情况下可能需要额外配置。
- 对于简单项目,可能会感觉过于复杂。
conda
****:
- 适用场景:
- 用于科学计算、数据分析、机器学习等领域。
- 跨平台支持和包管理。 - 优点:
- 能够管理 Python 包和非 Python 包。
- 跨平台,适用于 Windows、macOS、Linux。
- 提供一个独立的环境,可以包含不同版本的 Python。 - 缺点:
- 包的体积相对较大。
- 可能与一些纯 Python 包的依赖产生冲突。
如何选择
- 如果喜欢 Python 标准库的简单性,项目较小,只需虚拟环境管理,那么选择
virtualenv
。 - 如果希望更全面地管理项目的依赖关系,包括创建虚拟环境、锁定依赖版本等,那么选择
pipenv
。 - 如果需要一个更全面的项目管理工具,涵盖了构建、发布等方面,那么选择
poetry
。 - 如果项目涉及到科学计算、数据分析等,并且需要管理非 Python 包的依赖关系,那么选择
conda
。
你好,世界
我们以Python解释器:新 Virtualenv 环境为例;新建一个StudyPython的项目。创建hello_world.py文件。
双击hello_world.py
文件,写入如下代码:
print("Hello Python world!")
控制台输出:
Python都做了些什么呢
运行hello_world.py
时, Python都做了些什么呢?下面来深入研究一下。实际上,即便是运行简单的程序, Python所做的工作也相当多:
- 指定解释器: 在运行文件时,文件末尾的
.py
扩展名告诉操作系统这是一个 Python 程序。编辑器将使用 Python 解释器来执行这个程序。 - 文件读取: Python 解释器读取整个
hello_world.py
文件的内容。 - 词法分析(Lexical Analysis): 解释器对文件内容进行词法分析,将代码分解为词汇单元(token),例如关键字、标识符、运算符等。
- 语法分析(Syntax Analysis): 解释器根据词法分析的结果,建立语法树,确定代码结构和语法是否合法。
- 执行代码: 解释器按照语法树执行代码。对于
hello_world.py
,它会执行print("Hello Python world!")
这行代码。 - 执行
print
函数: 解释器知道print
是一个内置函数,于是执行这个函数。它将括号中的内容,即字符串 “Hello Python world!”,打印到屏幕。
在编写程序时,编辑器通常会提供语法高亮和代码提示等功能。例如,它知道 print
是一个函数,将其显示为蓝色;而字符串 “Hello Python world!” 不是 Python 代码,所以将其显示为橙色。这种功能称为语法突出,有助于程序员更容易地阅读和理解代码。
结语
"Hello, World!"
是一个简单而经典的起点,标志着程序员的编程之旅的开始。它象征着学习和探索编程世界的第一步,是一个传统而重要的示范。