Python 零基础教程

Python 基础语法:掌握代码的书写规则与结构

理解 Python 的基础语法和代码结构有助于编写高效且无错误的程序。这就好比学习一门人类语言的语法和标点符号——如果没有这些规则,Python 解释器就无法理解你的代码。

本章将涵盖规范 Python 代码编写和组织的基本规则,为你后续学习更复杂的编程概念搭建好舞台。

1. Python 语法基础

Python 的语法设计初衷是为了实现高可读性直截了当

与其他许多严重依赖分号 (;) 和花括号 ({}) 的编程语言(如 Java 或 C++)不同,Python 使用缩进 (Indentation)关键字 (Keywords) 来定义代码的结构。

1.1 缩进 (Indentation)

在 Python 中,缩进极其关键。它不仅仅是为了让代码看起来美观,而是被强制用来定义代码块(例如循环、条件语句和函数内部的代码)。一致的缩进是保证代码能正确运行的硬性要求。

正确的缩进:

if 5 > 2:
    print("5 大于 2!") # 这一行被正确缩进了

错误的缩进:

if 5 > 2:
print("5 大于 2!") # 这会引发一个 IndentationError (缩进错误)

在这个错误的例子中,print 语句没有在 if 代码块内正确缩进,导致程序抛出 IndentationError 而崩溃。

1.2 注释 (Comments)

注释是代码中的解释性说明,Python 解释器会完全忽略它们。添加注释是为了让人类(你或你的同事)更容易理解代码。

  • 单行注释:以井号 # 开头。
# 这是一个单行注释
print("Hello, world!")  # 这句注释解释了前面代码的作用
  • 多行注释 (也称文档字符串 Docstrings):使用三个连续的单引号 ''' 或双引号 """ 包裹。它们通常用于为函数和类编写详细的文档说明。
"""
这是一个多行注释。
它可以跨越多行,通常作为文档字符串 (docstring)
用来描述一个函数或模块的功能。
"""
print("Hello, world!")

为什么注释很重要?
注释对于代码的可维护性和团队协作至关重要。它们有助于解释代码的目的、背后的逻辑以及任何预设条件或局限性。

1.3 关键字 (Keywords)

关键字是 Python 中的保留字。它们在语言中有着特殊的含义,绝对不能被用作变量名、函数名或任何其他标识符。

常见的关键字包括:if, else, for, while, def, class, import, return, try, except, and, or, not, True, False 等。

示例:

# 错误示范:试图将关键字 'if' 作为变量名
# if = 10  # 这会引发一个 SyntaxError (语法错误)

# 正确示范:使用合法的变量名
my_variable = 10
print(my_variable)

1.4 语句 (Statements) 与 表达式 (Expressions)

  • 语句 (Statement):是 Python 解释器可以执行的单条指令。它可以是赋值、函数调用、条件判断或循环。
x = 5           # 赋值语句
print("Hello")  # 函数调用语句
if x > 0:       # 条件语句
    print("x 是正数")
  • 表达式 (Expression):是值、变量、运算符和函数调用的组合,Python 评估它后会产生一个结果值。表达式通常嵌套在语句中使用。
2 + 3                     # 算术表达式,结果为 5
x > 5                     # 比较表达式,结果为 True 或 False
"Hello" + " " + "World"   # 字符串拼接表达式,结果为 "Hello World"

2. Python 代码结构:模块、函数与类

为了编写结构良好且易于维护的代码,Python 代码通常被组织成模块 (Modules)函数 (Functions)类 (Classes)

2.1 模块 (Modules)

一个模块就是一个包含 Python 代码的 .py 文件。模块用于将代码组织成可重复使用的单元。你可以将一个模块导入 (import) 到其他的 Python 脚本中,从而使用里面定义的函数和类。

操作示例:
首先,创建一个名为 my_module.py 的文件,内容如下:

# 文件名: my_module.py

def greet(name):
    """向传入的名字打招呼。"""
    print(f"你好,{name}!")

def add(a, b):
    """返回两个数字的和。"""
    return a + b

现在,在同一个文件夹下的另一个 Python 脚本中,你可以导入并使用这个模块:

# 文件名: main.py

import my_module

my_module.greet("Alice")  # 输出: 你好,Alice!

result = my_module.add(5, 3)
print(result)             # 输出: 8

使用模块的好处:

  • 代码复用:可以在多个项目中重复使用同一段代码。
  • 逻辑清晰:将庞大的代码库分割成便于管理的逻辑块。
  • 命名空间隔离:防止不同文件中的同名变量或函数发生冲突。

2.2 函数 (Functions)

函数是执行特定任务的代码块。使用 def 关键字定义,后跟函数名、圆括号 () 和冒号 :函数内部的代码必须缩进。

def greet(name):
    """这个函数向传入的名字打招呼。"""
    print(f"你好,{name}!")

greet("Bob")  # 调用函数,输出: 你好,Bob!
  • 参数 (Parameters):函数可以接收输入值(如上例中的 name)。
  • 返回值 (Return Values):函数可以使用 return 语句将计算结果返回给调用者。

2.3 类 (Classes) (面向对象编程基础)

类是创建对象 (Objects) 的蓝图。它定义了该类的对象将拥有的属性(数据)和方法(功能函数)。使用 class 关键字定义。

class Dog:
    """一个代表狗的简单类。"""
    
    def __init__(self, name, breed):
        """初始化狗的名字和品种 (这是构造方法)。"""
        self.name = name
        self.breed = breed
        
    def bark(self):
        """模拟狗叫。"""
        print("汪汪!")

# 根据 Dog 类创建一个对象 (实例化)
my_dog = Dog("巴迪", "金毛猎犬")

print(my_dog.name)  # 访问属性,输出: 巴迪
my_dog.bark()       # 调用方法,输出: 汪汪!

3. 实战综合演示

让我们把这些概念结合起来,创建一个计算矩形面积的 Python 模块。

# 文件名: rectangle_calculator.py

"""
本模块提供用于计算矩形面积的函数。
"""

def calculate_area(length, width):
    """
    计算矩形的面积。
    
    参数:
        length (float): 矩形的长度。
        width (float): 矩形的宽度。
        
    返回:
        float: 矩形的面积。
    """
    area = length * width
    return area

# 这是一个极其常见的 Python 结构:
if __name__ == "__main__":
    # 这个代码块只有当这个脚本被“直接运行”时才会执行。
    # 如果这个脚本被其他文件当作模块 import 导入,这段代码会被跳过。
    
    l = 5.0
    w = 10.0
    result = calculate_area(l, w)
    print(f"该矩形的面积是:{result}")