第一篇:Python基础入门

devtools/2025/3/6 18:37:01/

一、Python解释器安装全平台指南

1. Windows系统安装(以Python 3.13.2为例)

步骤详解

  1. 下载安装包
    访问Python官网 → 选择"Windows" → 下载64位安装包(如python-3.13.2-amd64.exe

  2. 关键安装选项

    • 勾选"Add Python to PATH"(自动配置环境变量)
    • 点击"Customize installation" → 修改安装路径至非系统盘(如D:\Python313
    • 勾选"Install for all users"和"Precompile standard library"
  3. 验证安装

    Win+R → 输入cmd → 执行:
    python --version
    # 应输出:Python 3.13.2

常见问题

  • 环境变量失效:手动添加路径D:\Python313D:\Python313\Scripts到系统PATH

  • 路径长度限制:安装完成后点击"Disable path length limit"

2. MacOS系统安装

推荐两种方式

  • 官方安装包:下载.pkg文件双击安装,默认路径为/Library/Frameworks/Python.framework/Versions/3.13
  • Homebrew安装
    brew install python@3.13
    # 配置环境变量
    echo 'export PATH="/opt/homebrew/opt/python@3.13/bin:$PATH"' >> ~/.zshrc

验证命令

python3 --version  # 应显示3.13.x
pip3 list  # 查看已安装包
3. Linux系统安装(Ubuntu为例)

推荐方式

sudo apt update && sudo apt upgrade
sudo apt install python3.13 python3-pip  # 通过PPA安装最新版
python3 --version  # 验证版本

源码编译安装(高级)​

wget https://www.python.org/ftp/python/3.13.2/Python-3.13.2.tar.xz
tar xvf Python-3.13.2.tar.xz
cd Python-3.13.2
./configure --enable-optimizations
make -j8 && sudo make install

二、IDE配置与优化指南

1. PyCharm专业版配置

安装流程

  1. 从JetBrains官网下载2025.1版本
  2. 安装时勾选"Add launchers dir to PATH"和".py关联"
  3. 破解方案​(社区版无需):将ja-netfilter-all插件放入安装目录的plugins文件夹

项目配置案例

# 创建Django项目
File → New Project → 选择Django模板
Location: /projects/myblog  
Python解释器: 选择venv路径

实用功能

  • 数据库工具:直接连接MySQL/PostgreSQL
  • HTTP Client:内置API测试工具
  • Jupyter支持:在.py文件中直接运行单元格
2. VS Code高效配置

核心插件安装

# 通过命令面板(Ctrl+Shift+P)
> Extensions: Install Extensions
- Python (Microsoft)
- Jupyter
- Docker
- GitLens

配置示例​(.vscode/settings.json):

{"python.pythonPath": "venv/bin/python","python.linting.pylintEnabled": false,"python.formatting.provider": "black","editor.formatOnSave": true
}

远程开发配置

  1. 安装"Remote - SSH"扩展
  2. 连接服务器后自动同步本地环境
3. Jupyter Notebook/Lab进阶

环境搭建

# 独立环境安装
python -m venv jupyter_env
source jupyter_env/bin/activate
pip install notebook jupyterlab ipywidgets

代码补全增强

pip install jupyter-lsp python-lsp-server[all]
jupyter labextension install @krassowski/jupyterlab-lsp

案例:数据分析环境

# 单元格1:加载数据
import pandas as pd
df = pd.read_csv('sales.csv')# 单元格2:可视化
%matplotlib inline
df.plot(kind='bar', x='Month', y='Revenue')

三、虚拟环境与依赖管理

1. venv基础用法

创建与激活

# 创建
python -m venv myproject_env# Windows激活
myproject_env\Scripts\activate.bat# Unix激活
source myproject_env/bin/activate

依赖管理流程

# 安装包
pip install requests numpy==1.24.3# 导出依赖
pip freeze > requirements.txt# 重建环境
pip install -r requirements.txt
2. Poetry进阶管理

项目初始化

curl -sSL https://install.python-poetry.org | python3 -
poetry new ml_project
cd ml_project# 添加依赖
poetry add torch==2.1.0 transformers

依赖解析机制

# pyproject.toml 示例
[tool.poetry.dependencies]
python = "^3.8"
numpy = { version = ">=1.21.0", optional = true }[tool.poetry.extras]
gpu = ["cupy"]
3. 多环境管理策略

方案对比

工具优势适用场景
venv内置无需安装简单项目/快速验证
Poetry依赖解析精确+打包发布正式项目/团队协作
conda非Python依赖管理数据科学/跨平台

企业级案例

# 金融数据分析项目结构
fintech/
├── Dockerfile
├── pyproject.toml
├── src/
│   └── risk_analysis.py
└── tests/└── test_models.py# 安装生产环境依赖
poetry install --no-dev

四、综合配置案例:电商数据分析平台

1. 环境搭建
# 创建项目
mkdir ecommerce-analytics && cd $_
python -m venv .venv
source .venv/bin/activate# 安装核心依赖
pip install pandas>=2.0 scikit-learn matplotlib plotly
pip freeze > requirements.txt
2. PyCharm配置
  1. 导入项目后设置Python解释器路径为.venv/bin/python
  2. 配置Django支持:设置WSGI路径和静态文件目录
  3. 启用Database工具连接PostgreSQL
3. 依赖更新流程
# 发现新版本
pip list --outdated# 安全升级
pip install --upgrade pandas scikit-learn# 更新依赖文件
pip freeze > requirements.txt# 生产环境同步
ssh prod-server "cd /app && pip install -r requirements.txt"

五、常见问题解决方案

  1. 虚拟环境激活失败

    • Windows:检查ExecutionPolicy设置Set-ExecutionPolicy RemoteSigned
    • Mac/Linux:检查文件权限chmod +x bin/activate
  2. 依赖冲突处理
    使用pipdeptree分析依赖树:

    pip install pipdeptree
    pipdeptree --warn silence | grep -E '^(Warning|)'
  3. 跨平台路径问题
    在requirements.txt中使用路径映射:

/mnt/data/package  # Linux
D:\data\package     # Windows

Python基础语法与数据类型

一、变量与命名规则

1.1 变量概念

变量是存储数据的容器,Python采用动态类型机制,无需显式声明类型。例如:

name = "Alice"     # 字符串类型
age = 25           # 整数类型
height = 1.68      # 浮点数类型
is_student = True  # 布尔类型

变量可在运行时动态改变数据类型:

x = 5       # int
x = "Hello" # 自动转为str类型

1.2 命名规范

  • 合法字符:字母/数字/下划线组合,如user_name2
  • 禁止开头数字2var非法,var2合法
  • 关键字冲突:避免使用iffor等35个保留字
  • 命名风格
    • 蛇形命名法:user_age(推荐)
    • 驼峰命名法:userAge(特定场景使用)

二、基础数据类型详解

2.1 整数(int)

  • 特性:支持无限精度(仅受内存限制)
  • 进制表示
    binary = 0b1010   # 二进制(10)
    octal = 0o755     # 八进制(493)
    hex_num = 0xFF    # 十六进制(255)
  • 科学计数法1e6 = 1000000
  • 位运算
    a = 60        # 0011 1100
    b = 13        # 0000 1101
    print(a & b)  # 12 (0000 1100)

2.2 浮点数(float)

  • 精度问题:浮点运算存在舍入误差
    0.1 + 0.2 == 0.3  # 返回False
  • 特殊值
    inf = float('inf')  # 无穷大
    nan = float('nan')  # 非数字

2.3 字符串(str)

  • 定义方式
    s1 = '单引号'
    s2 = "双引号"
    s3 = '''三引号
    支持换行'''
  • 转义字符
    path = "C:\\Windows\\System32"  # 转义反斜杠
    raw_str = r"原始\n字符串"        # 原始字符串
  • 格式化方法
    name = "Bob"
    print(f"Hello, {name.upper()}!")  # f-string(Python 3.6+)
    print("年龄:%d,身高:%.2f" % (25, 1.75)) # 传统格式化

2.4 布尔值(bool)

  • 逻辑运算
    a = True
    b = False
    print(a and b)  # False
    print(5 > 3)    # 返回True
  • 隐式转换规则
    数据类型False条件True条件
    int0非零值
    float0.0非零值
    str空字符串("")非空字符串
    list空列表([])非空列表

三、输入输出系统

3.1 输出函数print()

  • 参数详解
    print("内容", end="")     # 取消自动换行
    print("a", "b", sep="|") # 输出a|b
  • 格式化控制
    print(f"{3.1415926:.2f}")  # 保留两位小数 → 3.14
    print("{:<10}".format("左对齐")) # 左对齐占10字符

3.2 输入函数input()

  • 基本用法
    name = input("请输入姓名:")
    age = int(input("请输入年龄:"))  # 需要类型转换
  • 输入验证
    while True:try:num = float(input("输入数字:"))breakexcept ValueError:print("输入无效,请重试!")

四、运算符与表达式

4.1 算术运算符

运算符描述示例结果
**幂运算2 ​**​ 38
//整除7 // 23
%取模7 % 31
复合运算符+=*=x *= 2等效于x = x * 2

4.2 比较运算符

a = 5
b = 3
print(a == b)   # False
print(a != b)   # True
print(a is None) # 对象身份比较

4.3 逻辑运算符

  • 短路特性
    def check():print("执行检查")return TrueFalse and check()  # check()不会执行

4.4 运算符优先级

优先级运算符
1()括号
2**幂运算
3* / % //
4+ -
5<< >>位运算
6&位与
7^ `
8比较运算符
9逻辑not
10逻辑and
11逻辑or

五、综合应用案例

用户注册验证系统

# 输入用户信息
username = input("请输入用户名:").strip()
password = input("请输入密码:")
confirm = input("确认密码:")# 数据验证
if len(username) < 6:print("用户名至少6个字符")
elif not username.isalnum():print("用户名只能包含字母数字")
elif password != confirm:print("两次密码不一致")
elif len(password) < 8:print("密码长度不足8位")
else:# 密码强度检测has_upper = any(c.isupper() for c in password)has_digit = any(c.isdigit() for c in password)if not (has_upper and has_digit):print("密码需包含大写字母和数字")else:print("注册成功!")# 数据存储(示例)user_data = {'username': username,'password': password,  # 实际需加密存储'reg_time': datetime.now()}

六、调试与优化建议

  1. 类型检查工具

    def add(a: int, b: int) -> int:return a + b
  2. 浮点数精确计算

    from decimal import Decimal
    print(Decimal('0.1') + Decimal('0.2'))  # 精确计算0.3
  3. 字符串性能优化

    # 避免频繁拼接字符串
    parts = []
    for i in range(1000):parts.append(str(i))
    result = "".join(parts)

http://www.ppmy.cn/devtools/165056.html

相关文章

直接法估计相机位姿

引入 在前面的文章&#xff1a;运动跟踪——Lucas-Kanade光流中&#xff0c;我们了解到特征点法存在一些缺陷&#xff0c;并且用光流法追踪像素点的运动来替代特征点法进行特征点匹配的过程来解决这些缺陷。而这篇文章要介绍的直接法则是通过计算特征点在下一时刻图像中的位置…

P10904 [蓝桥杯 2024 省 C] 挖矿

P10904 [蓝桥杯 2024 省 C] 挖矿 题目描述 小蓝正在数轴上挖矿&#xff0c;数轴上一共有 n n n 个矿洞&#xff0c;第 i i i 个矿洞的坐标为 a i a_i ai​。小蓝从 0 0 0 出发&#xff0c;每次可以向左或向右移动 1 1 1 的距离&#xff0c;当路过一个矿洞时&#xff0c;…

前端八股——JS+ES6

前端八股&#xff1a;JSES6 说明&#xff1a;个人总结&#xff0c;用于个人复习回顾&#xff0c;将持续改正创作&#xff0c;已在语雀公开&#xff0c;欢迎评论改正。

13、JavaEE核心技术 - Servlet与JSP

二、JavaEE核心技术 - Servlet与JSP 一、Servlet Servlet&#xff08;服务器端小程序&#xff09;是JavaEE中用于处理HTTP请求的核心组件。它是一个Java类&#xff0c;运行在Web服务器上&#xff0c;负责接收和响应HTTP请求。 1. Servlet的生命周期 Servlet的生命周期由以下…

Vue 学习随笔系列二十 -- 文件下载

文件下载 文章目录 文件下载一、前端插件下载二、后端下载1、拿到文件地址进行下载2、后端返回二进制流下载3、使用 FileSaver 下载 一、前端插件下载 import XLSX from xlsx; import XLSXS from "xlsx-style" import FileSaver from file-saverexport const export…

数据库原理与使用基础教程

数据库原理与使用基础教程 大纲 数据库基础概述 什么是数据库&#xff1f;数据库管理系统&#xff08;DBMS&#xff09;概述数据库的类型数据库模型与结构 关系型数据库 关系型数据库简介表&#xff08;Table&#xff09;、字段&#xff08;Field&#xff09;、记录&#xff…

【杂谈】信创电脑华为w515(统信系统)登录锁定及忘记密码处理

华为w515麒麟芯片版&#xff0c;还有非麒麟芯片版本&#xff0c;是一款信创电脑&#xff0c;一般安装的UOS系统。 准备一个空U盘&#xff0c;先下载镜像文件及启动盘制作工具&#xff0c;连接如下&#xff1a; 百度网盘 请输入提取码 http://livecd.uostools.com/img/apps/l…

Vue 与 Nuxt 的区别

Nuxt 实现服务端渲染SSR Nuxt.js 是基于 Vue.js 的一个框架&#xff0c;它为构建 Vue.js 应用提供了更高级的功能和更便捷的开发体验。 一、定位与功能 Vue.js 是一个前端 JavaScript 框架&#xff0c;专注于构建用户界面和单页应用&#xff08;SPA&#xff09;。 核心功能…