Skip to content

Python 语法基础

概要

Python 是一门强调可读性与开发效率的通用编程语言,常用于脚本自动化、Web 开发、数据分析与 AI 等场景。它是动态类型语言,写起来更灵活,但也更需要良好的命名、结构与测试来保证可维护性。

一、数据类型

Python 的常用内置类型可以按“数值 / 序列 / 映射 / 集合 / 布尔 / 二进制 / 特殊值”来理解。你不需要背完所有细节,先掌握每类的典型用途即可。

类型分类常见类型说明
数值intfloatcomplex整数 / 浮点 / 复数
序列listtuplerange有序集合;list 可变、tuple 不可变
文本str字符串(Unicode 文本)
映射dict键值对结构;键通常需要可哈希(不可变)
集合setfrozenset不重复元素集合;frozenset 不可变
布尔boolTrue / False
二进制bytesbytearraymemoryview二进制数据及其视图
特殊NoneNoneType表示“没有值/空值”
python
x = 10
y = -42
pi = 3.14159
temp = -12.5
z = 3 + 4j
python
fruits = ["apple", "banana", "cherry"]  # list
coordinates = (1, 2, 3)  # tuple
r = range(5)  # range
python
greeting = "Hello, World!"  # str
person = {"name": "Alice", "age": 30, "city": "New York"}  # dict
unique_numbers = {1, 2, 3, 4, 5}  # set
frozen = frozenset([1, 2, 3])  # frozenset
python
is_active = True
is_valid = False

b = b"hello"  # bytes
ba = bytearray([65, 66, 67])  # bytearray
mv = memoryview(b"hello")  # memoryview

x = None  # NoneType

二、声明变量与常量

Python 通过赋值来绑定变量名,不需要显式声明类型;“常量”通常用全大写命名来表达约定(语言层面不会强制禁止修改)。

python
x = 10         # int
y = 3.14       # float
name = "Alice" # str
is_active = True  # bool
python
PI = 3.14159     # 常量:圆周率
MAX_USERS = 100  # 常量:最大用户数

三、流程控制

流程控制用于决定代码执行顺序,常见结构包括条件分支、循环、循环控制语句,以及异常处理。

1. 条件语句(if / elif / else)

python
if condition:
    # 如果 condition 为 True,执行这里的代码
elif another_condition:
    # 如果另一条件为 True,执行这里的代码
else:
    # 如果以上条件都不满足,执行这里的代码
python
age = 18

if age < 18:
    print("未成年")
elif age == 18:
    print("刚成年")
else:
    print("成年人")

2. 循环语句(for / while)

python
for i in range(5):  # 0, 1, 2, 3, 4
    print(i)
python
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)
python
count = 0
while count < 5:
    print(count)
    count += 1

3. 循环控制语句(break / continue / pass)

python
for i in range(5):
    if i == 3:
        break
    print(i)
python
for i in range(5):
    if i == 3:
        continue
    print(i)
python
if 3 > 2:
    pass  # 占位符

4. 嵌套控制结构

python
age = 25
if age > 18:
    if age < 30:
        print("成年人且年龄在 18 到 30 之间")
    else:
        print("成年人但超过 30 岁")
else:
    print("未成年")
python
for i in range(3):
    for j in range(2):
        print(f"i = {i}, j = {j}")

5. 条件表达式(三元表达式)

python
x if condition else y
python
age = 18
status = "成年人" if age >= 18 else "未成年"
print(status)

6. 异常处理(try / except / else / finally)

python
try:
    # 可能引发异常的代码
except ExceptionType as e:
    # 异常处理代码
else:
    # 如果没有异常发生,执行此块代码
finally:
    # 无论是否发生异常,最终都会执行这块代码
python
try:
    x = 10 / 0
except ZeroDivisionError:
    print("不能除以零")
else:
    print("没有错误发生")
finally:
    print("此代码总会执行")

四、函数

函数用于复用逻辑与组织代码。Python 用 def 定义函数,参数支持位置参数、默认参数、可变参数(*args / **kwargs)与关键字参数;也支持 lambda 匿名函数。

1. 定义函数与返回值

python
def function_name(parameters):
    # 函数体
    return value  # 可选返回值
python
def greet(name):
    print(f"Hello, {name}!")

greet("Alice")
greet("Bob")
python
def add(a, b):
    return a + b

result = add(3, 5)
print(result)  # 8

2. 参数

2.1 位置参数

python
def subtract(a, b):
    return a - b

print(subtract(10, 3))  # 7

2.2 默认参数

python
def greet2(name, greeting="Hello"):
    print(f"{greeting}, {name}!")

greet2("Alice")
greet2("Bob", "Hi")

2.3 可变数量的参数(*args / **kwargs)

python
def sum_numbers(*args):
    return sum(args)

print(sum_numbers(1, 2, 3))         # 6
print(sum_numbers(1, 2, 3, 4, 5))   # 15
python
def greet_person(**kwargs):
    print(f"Hello {kwargs['name']}! Your age is {kwargs['age']}.")

greet_person(name="Alice", age=30)

2.4 关键字参数

python
def person_info(name, age):
    print(f"Name: {name}, Age: {age}")

person_info(name="Alice", age=25)

3. 匿名函数(lambda)

python
add2 = lambda x, y: x + y
print(add2(3, 5))  # 8

points = [(2, 3), (1, 1), (4, 5)]
points.sort(key=lambda x: x[1])
print(points)  # [(1, 1), (2, 3), (4, 5)]

4. 函数作用域(局部 / 全局)

python
x = 10  # 全局变量

def foo():
    x = 5  # 局部变量
    print(x)

foo()     # 5
print(x)  # 10
python
x = 10

def modify_global():
    global x
    x = 20

modify_global()
print(x)  # 20

5. 函数文档字符串(docstring)

python
def greet3(name):
    """
    该函数接受一个名字作为参数,并打印问候语。
    参数:
        name: 字符串,表示被问候的人的名字
    """
    print(f"Hello, {name}!")

help(greet3)

6. 递归函数

python
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)

print(factorial(5))  # 120

小结

📖 相关资源

CC BY-NC-SA 4.0 协议