跳到主要内容

基础语法

简介

什么是 Python

Python 是一种高级编程语言,由 Guido van Rossum 于 1991 年创建。它以简洁、易读的语法而闻名,非常适合初学者学习编程,同时也被广泛应用于各种专业领域。

Python 的特点

  • 简洁优雅: 语法清晰,代码可读性强
  • 易于学习: 上手快,适合编程入门
  • 跨平台: 可在 Windows, macOS, Linux 上运行
  • 丰富的库: 拥有庞大的标准库和第三方库生态系统
  • 解释型语言: 无需编译,代码可以直接运行
  • 动态类型: 变量无需声明类型
  • 面向对象: 支持面向对象编程
  • 多种编程范式: 支持面向对象, 函数式, 过程式编程

Python 的应用领域

  • Web 开发: Django, Flask, FastAPI 等框架
  • 数据分析与科学计算: NumPy, Pandas, Matplotlib
  • 人工智能与机器学习: TensorFlow, PyTorch, Scikit-learn
  • 自动化脚本: 系统管理, 文件处理, 自动化测试
  • 爬虫开发: Scrapy, BeautifulSoup, Requests
  • 游戏开发: Pygame
  • 网络编程: Socket, HTTP 协议开发

Python 版本

目前主要有两个版本:

  • Python 2.x: 已停止维护(2020年1月1日停止)
  • Python 3.x: 当前版本,推荐使用

本文档基于 Python 3.8+ 编写,建议使用 Python 3.10+ 以获得最新特性。

环境搭建

安装 Python

Windows 系统

  1. 访问 Python 官网
  2. 下载最新版本的 Python 安装包
  3. 运行安装程序,重要:勾选 "Add Python to PATH"
  4. 点击 "Install Now" 完成安装
  5. 验证安装:打开命令提示符,输入 python --version
# 检查 Python 版本
python --version

# 或者使用
python3 --version

macOS 系统

macOS 通常预装了 Python,但建议安装最新版本:

方式一:使用官方安装包

  1. 访问 Python 官网
  2. 下载 macOS 安装包
  3. 运行安装程序

方式二:使用 Homebrew

# 安装 Homebrew(如果未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 安装 Python
brew install python

Linux 系统

大多数 Linux 发行版预装了 Python,可以使用包管理器安装:

# Ubuntu/Debian
sudo apt update
sudo apt install python3 python3-pip

# CentOS/RHEL
sudo yum install python3 python3-pip

# Fedora
sudo dnf install python3 python3-pip

包管理器 pip

pip 是 Python 的包管理工具,用于安装和管理第三方库。

# 检查 pip 版本
pip --version

# 升级 pip
pip install --upgrade pip

# 安装包
pip install package_name

# 安装指定版本
pip install package_name==1.0.0

# 卸载包
pip uninstall package_name

# 查看已安装的包
pip list

# 导出依赖列表
pip freeze > requirements.txt

# 从依赖列表安装
pip install -r requirements.txt

虚拟环境

虚拟环境可以为不同项目创建独立的 Python 环境,避免包版本冲突。

# 创建虚拟环境
python -m venv myenv

# 激活虚拟环境

# Windows
myenv\Scripts\activate

# macOS/Linux
source myenv/bin/activate

# 退出虚拟环境
deactivate

开发工具选择

1. Visual Studio Code (推荐)

免费、轻量级、功能强大的编辑器。

安装步骤:

  1. 下载 VS Code
  2. 安装 Python 扩展
  3. 配置 Python 解释器

优点:

  • 轻量快速
  • 丰富的插件生态
  • 内置终端
  • 智能提示和调试功能

2. PyCharm

专业的 Python IDE,提供强大的开发功能。

Community 版本(免费):

  • 适合纯 Python 开发
  • 基本的调试和测试功能

Professional 版本(付费):

  • Web 开发支持
  • 数据库工具
  • 科学计算工具

3. Jupyter Notebook

适合数据分析和科学研究的交互式环境。

# 安装 Jupyter
pip install jupyter

# 启动 Jupyter
jupyter notebook

4. 其他工具

  • Sublime Text: 轻量级文本编辑器
  • Atom: GitHub 开发的编辑器
  • IDLE: Python 自带的简单 IDE

第一个 Python 程序

创建一个名为 hello.py 的文件:

# 这是你的第一个 Python 程序
print("Hello, World!")

# 输出多行文本
print("=" * 20)
print("欢迎学习 Python!")
print("=" * 20)

运行程序:

# 方式一:使用 python 命令
python hello.py

# 方式二:交互式解释器
python
>>> print("Hello, World!")
Hello, World!
>>> exit()

交互式解释器

Python 提供了交互式解释器(REPL),适合快速测试代码:

# 启动交互式解释器
python

# 在交互式环境中
>>> print("Hello, World!")
Hello, World!
>>> 2 + 3
5
>>> x = 10
>>> x * 2
20
>>> exit() # 或按 Ctrl+D 退出

基本语法

注释

注释用于解释代码,提高代码可读性。Python 不会执行注释内容。

单行注释

使用 # 符号表示单行注释:

# 这是一个单行注释
print("Hello, World!") # 这也是注释

# 块注释(多行单行注释)
# 这是第一行注释
# 这是第二行注释
# 这是第三行注释

多行注释

Python 没有专门的多行注释语法,通常使用多行字符串:

"""
这是一个多行注释
可以跨越多行
通常用于文档字符串
"""

'''
也可以使用三个单引号
实现多行注释
'''

print("Hello, World!")

注意: 多行字符串实际上会创建字符串对象,如果只是注释,建议使用单行注释。

缩进

Python 使用缩进来表示代码块,这是 Python 最重要的语法特点之一。

# 正确的缩进(使用 4 个空格)
if True:
print("这是缩进的代码块")
print("同样缩进,属于同一个块")
print("没有缩进,不属于 if 语句")

# 错误的缩进(混合使用空格和制表符)
if True:
print("使用 Tab 缩进") # 不推荐
print("使用空格缩进") # 会导致 IndentationError

缩进规则:

  • 使用 4 个空格 作为一级缩进(推荐)
  • 不要混用空格和 Tab 键
  • 同一级别的代码块必须使用相同的缩进
  • 冒号 : 后的代码必须缩进

代码行与续行

一行多语句

可以使用分号 ; 在一行中写多个语句(不推荐):

x = 10; y = 20; print(x + y)  # 不推荐,降低可读性

一行多行

当语句太长时,可以使用反斜杠 \ 或括号来续行:

# 使用反斜杠续行
total = 1 + 2 + 3 + \
4 + 5 + 6

# 使用括号续行(推荐)
total = (1 + 2 + 3 +
4 + 5 + 6)

# 列表、字典等自动续行
numbers = [1, 2, 3,
4, 5, 6]

# 函数参数续行
result = function_name(
arg1=value1,
arg2=value2,
arg3=value3
)

空行

空行用于分隔代码段,提高可读性:

def greet(name):
"""问候函数"""
return f"Hello, {name}!"

# 空行分隔函数定义和调用
message = greet("Alice")
print(message)

建议:

  • 函数之间空 2 行
  • 类的方法之间空 1 行
  • 逻辑相关的代码段之间可以空 1 行

标识符与关键字

标识符命名规则

标识符是变量、函数、类等的名称。

命名规则:

  • 只能包含字母、数字和下划线
  • 不能以数字开头
  • 区分大小写
  • 不能使用 Python 关键字
# 有效的标识符
name = "Alice"
user_name = "Bob"
_age = 25
user1 = "Charlie"

# 无效的标识符
2name = "Alice" # 不能以数字开头
user-name = "Bob" # 不能使用连字符
class = "Python" # 不能使用关键字

Python 关键字

Python 关键字是保留字,不能用作标识符:

# Python 3.10+ 的关键字(35个)
False, True, None
and, or, not
if, elif, else
for, while, break, continue, pass
def, return, yield, lambda
class, raise, try, except, finally, with, assert
import, from, as, del, in, is, global, nonlocal, async, await

查看所有关键字:

import keyword
print(keyword.kwlist)
print(keyword.iskeyword("if")) # 检查是否是关键字

变量与命名

变量

变量是存储数据的容器。在 Python 中,变量不需要声明类型。

# 创建变量
name = "Alice"
age = 25
height = 1.68
is_student = True

# 使用变量
print(f"姓名: {name}")
print(f"年龄: {age}")
print(f"身高: {height}米")
print(f"是否是学生: {is_student}")

变量赋值

简单赋值

x = 10          # 整数
y = 3.14 # 浮点数
name = "Python" # 字符串
is_valid = True # 布尔值

多重赋值

同时给多个变量赋值:

a = b = c = 10
print(a, b, c) # 输出: 10 10 10

多元赋值(解包赋值)

同时给多个变量赋不同的值:

x, y, z = 1, 2, 3
print(x, y, z) # 输出: 1 2 3

# 交换变量的值(不需要临时变量)
a, b = 10, 20
a, b = b, a
print(a, b) # 输出: 20 10

# 使用 * 解包剩余元素
first, *rest = [1, 2, 3, 4, 5]
print(first) # 输出: 1
print(rest) # 输出: [2, 3, 4, 5]

# 只需要部分元素
x, y, *_ = 1, 2, 3, 4, 5
print(x, y) # 输出: 1 2

变量命名规范

命名风格

Python 有多种命名风格,不同的场景使用不同的风格:

1. Snake Case(蛇形命名法)

用于变量、函数、模块:

user_name = "Alice"
user_age = 25

def calculate_sum():
pass

my_module.py

2. Pascal Case(帕斯卡命名法)

用于类名:

class UserProfile:
pass

class DataProcessor:
pass

3. UPPER_CASE(全大写下划线)

用于常量:

MAX_CONNECTIONS = 100
DEFAULT_TIMEOUT = 30
PI = 3.14159

4. _leading_underscore(前导下划线)

表示内部使用或受保护的成员:

_internal_var = "内部变量"

5. __double_underscore(双前导下划线)

用于私有变量(名称修饰):

class MyClass:
def __init__(self):
self.__private_var = "私有变量"

命名建议

良好的命名:

# 清晰、描述性的名称
user_name = "Alice"
total_price = 99.99
is_authenticated = True

# 布尔值使用 is/has/can 前缀
is_valid = True
has_permission = False
can_edit = True

避免的命名:

# 避免使用单个字符(除循环变量外)
x = 10 # 不清晰
user_count = 10 # 更清晰

# 避免使用缩写
usr_nm = "Alice" # 不推荐
user_name = "Alice" # 推荐

# 避免使用中文拼音
yhm = "Alice" # 不推荐
username = "Alice" # 推荐

变量的使用

变量重新赋值

变量可以被重新赋值,类型也可以改变:

# 重新赋值
x = 10
print(x) # 输出: 10

x = 20
print(x) # 输出: 20

# 改变类型(动态类型)
x = "Hello"
print(x) # 输出: Hello

x = [1, 2, 3]
print(x) # 输出: [1, 2, 3]

删除变量

使用 del 语句删除变量:

x = 10
print(x) # 输出: 10

del x
# print(x) # 报错: NameError: name 'x' is not defined

变量作用域

变量的作用域决定了变量在哪些地方可以被访问。

局部变量

在函数内部定义的变量:

def my_function():
local_var = "局部变量"
print(local_var) # 可以访问

my_function()
# print(local_var) # 报错: NameError

全局变量

在模块级别定义的变量:

global_var = "全局变量"

def my_function():
print(global_var) # 可以访问

my_function()
print(global_var) # 可以访问

在函数内部修改全局变量:

count = 0

def increment():
global count # 声明使用全局变量
count += 1

increment()
print(count) # 输出: 1

类型提示(Type Hints)

Python 3.5+ 支持类型提示,帮助代码维护和 IDE 智能提示:

# 基本类型提示
name: str = "Alice"
age: int = 25
height: float = 1.68
is_student: bool = True

# 函数类型提示
def greet(name: str) -> str:
return f"Hello, {name}!"

def add(x: int, y: int) -> int:
return x + y

# 可选类型
from typing import Optional
def find_user(user_id: int) -> Optional[str]:
if user_id == 1:
return "Alice"
return None

# 列表、字典类型
from typing import List, Dict
numbers: List[int] = [1, 2, 3]
user_info: Dict[str, str] = {"name": "Alice", "email": "alice@example.com"}

最佳实践

  1. 使用有意义的变量名

    # 好
    user_name = "Alice"
    # 差
    x = "Alice"
  2. 遵循 PEP 8 风格指南

    # 推荐
    my_variable = 10

    # 不推荐
    MyVariable = 10
    myVariable = 10
  3. 使用常量代替魔法数字

    # 好
    MAX_RETRY_COUNT = 3
    for i in range(MAX_RETRY_COUNT):
    pass

    # 差
    for i in range(3): # 3 的含义不明确
    pass
  4. 添加注释和文档字符串

    def calculate_discount(price, discount_rate):
    """
    计算折扣后的价格

    Args:
    price: 原价
    discount_rate: 折扣率(0-1之间)

    Returns:
    折扣后的价格
    """
    return price * (1 - discount_rate)
  5. 使用虚拟环境隔离项目依赖

  6. 定期备份代码

  7. 使用版本控制(Git)

小结

本章节介绍了 Python 的基础知识:

  • Python 特点: 简洁, 易学, 功能强大, 应用广泛
  • 环境搭建: 安装 Python, pip, 虚拟环境, 开发工具
  • 基本语法: 注释, 缩进, 代码行, 标识符, 关键字
  • 变量与命名: 变量赋值, 命名规范, 作用域, 类型提示

掌握了这些基础知识,你就可以开始编写 Python 程序了。下一章我们将学习 Python 的数据类型。