Python语言,总给我一种“嗯?还能这么玩儿?”的感觉
Python像一个二三十岁的年轻人,自由、年轻、又灵活
欢迎一起进入Python的世界~
本人工作中经常使用Python,针对一些常用的语法概念进行持续记录。
目录
一、Python开发环境
Python环境管理工具主要是用于创建、管理、隔离不同的开发环境,以避免依赖冲突和确保项目的可移植性。以下是一些工作时设计过的环境管理工具。
1. venv
venv(Python虚拟环境)用于创建独立的Python运行环境。每个虚拟环境可以安装独立的Python包,而不会影响全局的Python环境。比较适合简单的Python项目。
- 只管理Python包,依赖 pip 进行包安装
- 创建独立的Python环境,隔离项目依赖
- 依赖
requirements.txt
文件管理依赖 - 创建环境和安装包的速度较快
- 内置在Python中,无需额外安装
使用
# 创建虚拟环境,创建文件夹myenv进行存储
python -m venv myenv
# 激活虚拟环境myenv
# Windows系统
myenv\Scripts\activate
# macOS/Linux系统
source myenv/bin/activate
# 安装依赖
pip install requests
# 退出虚拟环境
deactivate
安装时可以使用国内镜像源提升下载速度,例如:
# 临时使用国内源
pip install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple
常用国内镜像源:
- 清华大学:
https://pypi.tuna.tsinghua.edu.cn/simple
- 阿里云:
https://mirrors.aliyun.com/pypi/simple
- 中科大:
https://pypi.mirrors.ustc.edu.cn/simple
- 豆瓣:
https://pypi.douban.com/simple
永久配置镜像源(推荐):
1. 激活虚拟环境:
# Linux/macOS
source myvenv/bin/activate
# Windows
venv\Scripts\activate
2. 创建或修改pip.conf文件:
- Linux/macOS:
mkdir -p ~/.pip
echo "[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn" > ~/.pip/pip.conf
- Windows
- 打开资源管理器,输入路径
%APPDATA%
进入用户配置目录。 - 在
%APPDATA%
下创建pip
文件夹(若不存在)。 - 在
pip
文件夹中创建pip.ini
文件,内容如下:
- 打开资源管理器,输入路径
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
验证配置生效:
pip config list
# 输出应包含:
# global.index-url='https://pypi.tuna.tsinghua.edu.cn/simple'
若多个镜像源不稳定,可配置多个备用源。修改 pip.conf 文件:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
extra-index-url =
https://mirrors.aliyun.com/pypi/simple
https://pypi.douban.com/simple
trusted-host =
pypi.tuna.tsinghua.edu.cn
mirrors.aliyun.com
pypi.douban.com
使用以下语句能够导出所有库及其版本:
pip freeze > requirements.txt
通过上述配置,虚拟环境中的 pip
会优先从国内镜像源下载依赖,大幅提升安装效率。
2. conda
不仅可以管理Python包,还可以管理其他语言的包(如R、C++等)。除了创建独立的Python环境外,还可以安装和管理各种科学计算相关的包。适合复杂的科学计算和数据分析项目、尤其是多语言和库的场景。
使用
# 创建conda环境
conda create -n myenv python=3.9
# 激活conda环境
conda activate myenv
# 安装依赖
conda install numpy pandas
# 退出conda环境
conda deactivate
二、类与常见数据结构
1. Python库、模块、类
Python库是一个集合,包含多个模块。模块是单个文件,包含函数、类和变量等。类是模块中的一个组件,用于定义对象的结构和行为。简而言之,库由模块组成,模块由类和其他代码组成。
1) Python库
- Python库是一组模块的集合,通常是为了实现特定的功能或解决特定的问题而组织在一起的。库可以是一个包(Package),包是一种特殊的模块,可以包含多个子模块和子包。
- 库用于提供一组相关的功能,这些功能通常比单个模块更复杂、更全面。库可以是第三方库,也可以是Python标准库的一部分。
2) Python模块
在了解Python类与基本数据结构之前,需要了解Python类到底在该语言中处于怎样的位置,即Python类与具体的Python文件之间是什么关系。
Python文件和类的关系:Python文件和类的关系可以类比为容器和内容物的关系。一个Python文件可以包含一个或多个类的定义,也可以包含其他代码,如函数、变量等。
- 一个Python文件称为一个模块。模块是Python代码的基本组织单位。(模块的名称通常与文件名相同。例如,文件
my_module.py
定义了一个模块my_module
) - 在模块中可以定义类:这些类可以相互独立,也可以相互关联。
- 导入模块和类:可以使用import导入整个模块,然后通过模块名访问其中的类、函数和变量。同样,也可以使用 from ... import ... 语句直接导入模块中的指定类。
3) Python类
使用class关键词来定义一个类:
class MyClass:
# 类的属性
attribute1 = "value1"
attribute2 = "value2"
# 类的方法
def my_method(