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}")