Skip to content

基础语法

本章将介绍 Python 的基础语法,包括变量定义、注释、输入输出和代码规范。

变量

变量定义

Python 是动态类型语言,变量不需要声明类型。

python
# 变量定义:直接赋值即可
name = "张三"        # 字符串
age = 25            # 整数
height = 1.75       # 浮点数
is_student = True   # 布尔值

# 打印变量
print(name)
print(age)
print(height)
print(is_student)

# 变量可以重新赋值为不同类型
x = 10          # x 是整数
x = "Hello"     # x 现在是字符串
print(x)

变量命名规则

python
# 合法的变量名
user_name = "张三"
userName = "李四"    # 也可以,但不推荐
_count = 100
MAX_VALUE = 1000

# 非法的变量名(会报错)
# 2name = "错误"      # 不能以数字开头
# my-name = "错误"    # 不能包含减号
# class = "错误"      # 不能使用关键字

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

多重赋值

python
# 同时赋多个值
a, b, c = 1, 2, 3
print(a, b, c)  # 1 2 3

# 交换变量值
x, y = 10, 20
print(f"交换前:x={x}, y={y}")
x, y = y, x
print(f"交换后:x={x}, y={y}")

# 解包赋值
numbers = [1, 2, 3]
a, b, c = numbers
print(a, b, c)  # 1 2 3

# 使用 * 收集剩余元素
first, *rest = [1, 2, 3, 4, 5]
print(first)  # 1
print(rest)   # [2, 3, 4, 5]

*middle, last = [1, 2, 3, 4, 5]
print(middle)  # [1, 2, 3, 4]
print(last)    # 5

head, *middle, tail = [1, 2, 3, 4, 5]
print(head)    # 1
print(middle)  # [2, 3, 4]
print(tail)    # 5

注释

单行注释

python
# 这是单行注释
print("Hello")  # 这也是单行注释

# 注释可以解释代码
result = 10 + 20  # 计算两数之和

多行注释

python
"""
这是多行注释
可以写很多行
用于详细说明
"""

'''
这也是多行注释
使用单引号也可以
'''

# 实际上多行注释是多行字符串
# 通常用于模块或函数的文档字符串

文档字符串

python
def calculate_area(width, height):
    """
    计算矩形面积
    
    参数:
        width: 宽度
        height: 高度
    
    返回:
        面积值
    """
    return width * height

class Person:
    """人员类,用于存储人员信息"""
    
    def __init__(self, name, age):
        """
        初始化人员信息
        
        参数:
            name: 姓名
            age: 年龄
        """
        self.name = name
        self.age = age

# 访问文档字符串
print(calculate_area.__doc__)
print(Person.__doc__)

输入输出

输出 print()

python
# 基本输出
print("Hello, Python!")

# 输出多个值
print("姓名:", "张三", "年龄:", 25)

# 自定义分隔符
print("2024", "01", "15", sep="-")  # 2024-01-15

# 自定义结尾符
print("Hello", end=" ")
print("World")  # Hello World

# 输出到文件
with open("output.txt", "w") as f:
    print("写入文件的内容", file=f)

格式化输出

python
name = "张三"
age = 25
score = 95.5

# 方式一:f-string(推荐,Python 3.6+)
print(f"姓名:{name},年龄:{age}")
print(f"成绩:{score:.1f}")  # 保留1位小数
print(f"年龄:{age:04d}")    # 补零到4位

# 方式二:format() 方法
print("姓名:{},年龄:{}".format(name, age))
print("姓名:{0},年龄:{1}{0}很优秀".format(name, age))
print("姓名:{name},年龄:{age}".format(name="李四", age=30))

# 方式三:% 格式化(旧方式)
print("姓名:%s,年龄:%d" % (name, age))
print("成绩:%.1f" % score)

# 格式化符号说明
# %s - 字符串
# %d - 整数
# %f - 浮点数
# %.nf - 保留n位小数
# %x - 十六进制
# %o - 八进制

输入 input()

python
# 基本输入
name = input("请输入姓名:")
print(f"你好,{name}!")

# 输入数字(input 返回字符串)
age_str = input("请输入年龄:")
age = int(age_str)  # 转换为整数
print(f"年龄:{age}")

# 一行完成输入和转换
height = float(input("请输入身高(米):"))
print(f"身高:{height}米")

# 输入多个值
values = input("请输入多个数字,用空格分隔:")
numbers = [int(x) for x in values.split()]
print(f"输入的数字:{numbers}")

代码规范

PEP 8 规范

python
# 缩进:使用 4 个空格
def example():
    if True:
        print("正确缩进")

# 行长度:不超过 79 个字符
long_string = ("这是一个很长的字符串,"
               "可以分成多行书写")

# 空行:类和函数之间空两行
class MyClass:
    """示例类"""
    
    def method_one(self):
        """方法一"""
        pass
    
    def method_two(self):
        """方法二"""
        pass


def top_level_function():
    """顶层函数"""
    pass


# 导入规范
import os
import sys
from collections import OrderedDict, defaultdict

空格使用

python
# 运算符两侧加空格
x = 1 + 2
y = x * 3

# 逗号后加空格
numbers = [1, 2, 3, 4, 5]
person = {"name": "张三", "age": 25}

# 函数参数等号两侧不加空格(默认参数)
def greet(name="张三", age=25):
    pass

# 函数调用时等号两侧加空格
greet(name="李四", age=30)

# 冒号前不加空格,后加空格
if x > 0:
    print("正数")

# 列表、字典索引不加空格
items = [1, 2, 3]
print(items[0])

命名约定

python
# 模块名:小写,可用下划线
# my_module.py

# 包名:小写,避免下划线
# mypackage

# 类名:大驼峰(CapWords)
class MyClass:
    pass

class HttpRequestHandler:
    pass

# 异常名:大驼峰,以 Error 结尾
class ValidationError(Exception):
    pass

# 函数名:小写,下划线分隔
def calculate_total():
    pass

def get_user_info():
    pass

# 变量名:小写,下划线分隔
user_name = "张三"
total_count = 100

# 常量名:全大写,下划线分隔
MAX_CONNECTIONS = 100
DEFAULT_TIMEOUT = 30

# 私有变量:单下划线前缀
_internal_var = 10

# 名称修饰:双下划线前缀
__private_var = 20

语句和表达式

语句

python
# 赋值语句
x = 10

# 多重赋值语句
a, b = 1, 2

# 增量赋值
x += 5  # 等同于 x = x + 5

# 删除语句
del x

# 导入语句
import os
from sys import path

# 控制流语句
if x > 0:
    print("正数")

# 循环语句
for i in range(5):
    print(i)

# 函数定义语句
def my_function():
    pass

# 类定义语句
class MyClass:
    pass

表达式

python
# 算术表达式
result = 10 + 20 * 3

# 比较表达式
is_greater = 10 > 5

# 逻辑表达式
is_valid = True and False

# 成员表达式
is_in = 1 in [1, 2, 3]

# 身份表达式
is_same = x is y

# 条件表达式(三元运算符)
result = "正数" if x > 0 else "非正数"

# 列表推导式
squares = [x**2 for x in range(10)]

# 字典推导式
word_length = {word: len(word) for word in ["hello", "world"]}

# 生成器表达式
sum_result = sum(x for x in range(100))

小结

本章我们学习了:

  • 变量:动态类型、命名规则、多重赋值
  • 注释:单行注释、多行注释、文档字符串
  • 输入输出:print()、input()、格式化输出
  • 代码规范:PEP 8 规范、命名约定

下一章,我们将学习 数据类型,了解 Python 的基本数据类型。