1.python基础语法与现代交互 (Basics & Modern REPL)

1.python基础语法与现代交互 (Basics & Modern REPL)

_

1. 现代交互体验:Python REPL 的进化

当你直接在终端输入 python 并回车时,你进入的是 REPL (Read-Eval-Print Loop) 环境。这是你与 Python 对话的最前线。

1.1 Python 3.13+ 新版 REPL 特性

如果你安装的是 Python 3.13 或更新版本,你会发现交互式界面有了质的飞跃。不再是一个枯燥的光标,而是一个智能的终端。

  • 多行编辑支持:在过去,如果你在 REPL 里写错了多行代码,修改起来非常痛苦。现在,你可以像在编辑器里一样,使用 上下方向键 回溯历史多行代码,直接修改错误。

  • 彩色高亮显示:关键字、字符串、数字现在拥有不同的颜色,语法错误会直接标红,极大提升了可读性。

  • 自动补全:输入对象名后按 Tab 键,可以看到可用的属性和方法。

💡 建议:请确保你的终端支持 UTF-8 和彩色显示。如果你还在用 Windows 自带的旧版 cmd,建议切换到 PowerShellWindows Terminal,以获得最佳体验。

1.2 探索对象的神器:help()dir()

在现代开发中,记忆所有函数参数是不现实的。学会“自查”比死记硬背更重要。

  • dir(object):列出对象的所有属性和方法。

    >>> name = "Python"
    >>> dir(name)
    ['__add__', '__class__', ..., 'capitalize', 'lower', 'upper']  # 看到字符串能做什么
    
  • help(object):查看对象的详细文档说明。

    >>> help(str.upper)
    Help on method_descriptor:
    upper(...)
        S.upper() -> str
        Return a copy of S converted to uppercase.
    

    q 键退出帮助文档。


2. 变量与核心数据类型

Python 是动态类型语言,这意味着你不需要声明变量类型,解释器会自动推断。但作为现代开发者,我们需要清楚每个变量背后代表的数据结构。

2.1 整数 (int) 与 浮点数 (float)

处理数值计算的基础。

# 整数 (int)
age = 25
count = 100

# 浮点数 (float)
price = 19.99
pi = 3.14159

# 基本运算
a = 10
b = 3

print(a + b)   # 加:13
print(a - b)   # 减:7
print(a * b)   # 乘:30
print(a / b)   # 除:3.333... (结果永远是 float)
print(a // b)  # 整除:3 (结果向下取整)
print(a % b)   # 取余:1
print(a ** b)  # 幂运算:1000 (10 的 3 次方)

⚠️ 注意:浮点数存在精度问题。0.1 + 0.2 在计算机中可能不等于 0.3。涉及金钱计算时,建议使用 decimal 模块(后续章节会讲)。

2.2 字符串 (str)

文本处理的核心。现代 Python 中,字符串默认是 Unicode 编码,完美支持中文。

name = "Alice"
job = 'Developer'  # 单双引号效果相同
description = """
多行字符串
可以跨行显示
"""

# 字符串运算
first = "Hello"
second = "World"
print(first + " " + second)  # 拼接:Hello World
print(first * 3)             # 重复:HelloHelloHello

2.3 布尔值 (bool)

逻辑判断的基石,只有两个值:TrueFalse

is_active = True
is_deleted = False

# 逻辑运算
print(True and False)  # 与:False
print(True or False)   # 或:True
print(not True)        # 非:False

# 真值测试 (Truthiness)
# 以下值在布尔上下文中被视为 False
bool(0)         # False
bool("")        # False (空字符串)
bool([])        # False (空列表)
bool(None)      # False

2.4 变量命名规范 (PEP 8)

变量名是代码的文档。遵循 PEP 8 规范能让你的代码更易读。

  • 使用小写字母和下划线 (snake_case):user_name, total_count

  • 见名知意:避免 a, b, x 这种无意义命名,除非是循环计数器。

  • 区分大小写Variablevariable 是不同的。

  • 不要使用内置名称:不要定义 list = [1, 2]str = "hello",这会覆盖 Python 内置类型。

# ✅ 推荐
user_age = 25
total_price = 100.5

# ❌ 不推荐
UserAge = 25      # 类名才用大写字母开头
a = 25            # 无法看出含义
list = [1, 2]     # 覆盖了内置 list 类型

3. 输入与输出:现代 I/O 实践

3.1 输出:只用 f-string

Python 历史上出现过 % 占位符、.format() 等方法。在现代 Python (3.6+) 中,请只使用 f-string (Formatted String Literals)。它最简洁、性能最好、功能最强。

name = "Alice"
age = 25
height = 1.75

# 基础用法
print(f"Hello, {name}")  # Hello, Alice

# 表达式计算
print(f"Next year, I will be {age + 1}")  # Next year, I will be 26

# 格式化数字 (保留 2 位小数)
print(f"Height: {height:.2f} meters")  # Height: 1.75 meters

# ✨ 调试神器 (Python 3.8+)
# 直接打印变量名和值,无需手动写 key
print(f"{name=}")  # name='Alice'
print(f"{age=}")   # age=25

3.2 输入:input()

获取用户控制台输入。注意input() 获取到的所有内容默认都是 字符串 (str) 类型。

user_input = input("请输入你的年龄:")
# 用户输入 25,user_input 实际上是 "25" (字符串)

# 必须进行类型转换才能进行数学运算
age = int(user_input) 
print(f"明年你 {age + 1} 岁")

⚠️ 异常风险:如果用户输入了 "twenty" 而不是 "20",int() 会报错。后续章节我们会学习如何用 try-except 处理这种情况。


4. 注释与代码规范

代码是写给人看的,顺便给机器运行。良好的注释和规范是团队协作的基础。

4.1 注释的使用

  • 单行注释:使用 #,后面加一个空格。

  • 多行注释/文档字符串:使用三个引号 """'''。通常放在函数或模块开头作为文档说明。

# 这是一个单行注释
price = 100  # 行尾注释:说明这是价格

"""
这是一个多行文档字符串。
通常用于模块或函数的开头,
解释其用途。
"""

4.2 空白规范 (PEP 8 核心)

  • 运算符两侧加空格x = 1 + 2 而不是 x=1+2

  • 逗号后加空格[1, 2, 3] 而不是 [1,2,3]

  • 空行:函数之间通常空两行,逻辑块之间空一行。


5. 本章实战练习

为了巩固本章内容,请完成以下小任务(建议在脚本文件 .py 中完成,而不是 REPL):

  1. 个人信息卡片

    • 定义变量存储你的姓名、出生年份、身高。

    • 使用 input() 获取用户输入。

    • 计算你的年龄(当前年份 - 出生年份)。

    • 使用 f-string 打印一张格式整齐的个人信息卡片,身高保留两位小数。

  2. 探索练习

    • 在 REPL 中输入 import math

    • 使用 dir(math) 查看数学模块有哪些功能。

    • 使用 help(math.sqrt) 查看开平方函数的用法。

    • 尝试计算 16 的平方根并打印。

  3. 规范检查

    • 检查你的代码变量名是否符合 snake_case

    • 检查运算符两侧是否有空格。

2.python流程控制与模式匹配 2026-03-10

评论区