Python 教程 02:基础语法

“纸上得来终觉浅,绝知此事要躬行。”

学编程和学游泳一样,看再多教程也不如下水扑腾几下。今天我们来学习 Python 的基础语法,这些是写代码的"规矩"。

1. 注释:给代码写"旁白"

注释就像电影里的旁白,是写给人看的,不会被 Python 执行。写注释有两个好处:

  1. 提醒自己:三个月后回头看代码,如果没有注释,你可能会问"这是谁写的垃圾代码?"(然后发现是自己写的)
  2. 方便别人:团队协作时,注释能让其他人快速理解你的思路

单行注释

#开头,从#开始到行尾的所有内容都是注释:

# 这是一个单行注释
print("Hello")  # 这也是注释,可以放在代码后面

# 计算圆的面积
radius = 5
area = 3.14 * radius ** 2

多行注释

Python 没有专门的多行注释语法,但可以用三引号('''""")来实现:

"""
这是一个多行注释
可以写很多行
通常用于写文档字符串(docstring)
"""

'''
单引号也可以
但更推荐用双引号
'''

def calculate_area(radius):
    """
    计算圆的面积

    参数:
        radius: 圆的半径

    返回:
        圆的面积
    """
    return 3.14 * radius ** 2

最佳实践:注释要写"为什么",而不是"是什么"。比如# 计算圆的面积这种注释意义不大,因为代码本身已经很清楚了。更好的注释是:# 使用简化的π值,精确度够用且计算更快

2. 缩进:Python 的"规矩"

如果说 C/Java 用大括号{}来组织代码结构,那 Python 用的就是缩进。这是 Python 最独特的地方,也是新手最容易犯错的地方。

为什么要缩进?

# 正确的缩进
if True:
    print("这行有缩进")
    print("这行也有缩进")
print("这行没有缩进,不属于if块")

# 错误的缩进会报错
if True:
print("没缩进")  # IndentationError!

Python 强制使用缩进来表示代码块,这让代码看起来更整洁。就像古诗词讲究对仗工整,Python 讲究缩进整齐。

缩进规则

  1. 使用空格,不要用 Tab(或者统一用 Tab,但千万别混用)
  2. 标准缩进是 4 个空格
  3. 同一代码块的缩进必须相同
# 标准缩进(4个空格)
if True:
    print("第一行")
    if True:
        print("嵌套的第二层,8个空格")
    print("回到第一层,4个空格")

编辑器提示:现代 IDE(如 VS Code、PyCharm)都会自动帮你处理缩进,按 Tab 键会自动转换成 4 个空格。

3. 变量:存储数据的"容器"

变量就像贴了标签的盒子,用来存储数据。

变量赋值

Python 的变量不需要提前声明类型,赋值即定义:

# 简单赋值
a = 10
b = "10"
c = 10.2

# 多个变量赋相同值
x = y = z = 0

# 同时给多个变量赋值
name, age = "张三", 25

print(a, b, c)  # 10 10 10.2
print(x, y, z)  # 0 0 0
print(name, age)  # 张三 25

变量命名规则

Python 的变量命名有几个硬性规定和一些"潜规则":

硬性规定(违反会报错):

  1. 只能包含字母、数字、下划线
  2. 不能以数字开头
  3. 不能使用 Python 关键字(如ifforclass等)
  4. 区分大小写(nameName是两个不同的变量)
# 合法的变量名
user_name = "Tom"
age2 = 20
_private = "私有变量"
中文变量 = "可以,但不推荐"

# 非法的变量名
2name = "Tom"  # SyntaxError: 不能以数字开头
user-name = "Tom"  # SyntaxError: 不能用连字符
class = "Python"  # SyntaxError: 不能用关键字

“潜规则”(遵循 PEP 8 规范):

  1. 变量名用小写字母,单词间用下划线分隔(snake_case)
  2. 常量用全大写字母
  3. 类名用大写字母开头的驼峰命名(CamelCase)
  4. 私有变量以下划线开头
# 推荐的命名风格
user_name = "Tom"  # 普通变量
MAX_SIZE = 100  # 常量
class UserManager:  # 类名
    pass
_internal_var = "内部使用"  # 私有变量

查看变量类型

使用type()函数查看变量类型:

a = 10
b = "10"
c = 10.2
d = True

print(type(a))  # <class 'int'>
print(type(b))  # <class 'str'>
print(type(c))  # <class 'float'>
print(type(d))  # <class 'bool'>

删除变量

使用del可以删除变量:

x = 100
print(x)  # 100
del x
# print(x)  # NameError: name 'x' is not defined

4. 输入与输出

输出:print()

print()是最常用的输出函数,我们在第一课已经见过了:

# 基本用法
print("Hello, World!")

# 打印多个值,用逗号分隔
print("姓名:", "张三", "年龄:", 25)  # 输出: 姓名: 张三 年龄: 25

# 指定分隔符和结束符
print("A", "B", "C", sep="-")  # 输出: A-B-C
print("不换行", end=" ")
print("继续")  # 输出: 不换行 继续

输入:input()

input()函数用于获取用户输入,返回值总是字符串:

# 获取用户输入
name = input("请输入你的名字:")
print("你好," + name)

# 注意:input()返回的是字符串
age = input("请输入你的年龄:")
print(type(age))  # <class 'str'>

# 需要转换类型
age = int(input("请输入你的年龄:"))
print(type(age))  # <class 'int'>
print("十年后你", age + 10, "岁")

小心陷阱:新手常犯的错误是忘记把input()的结果转换成数字类型,导致类型错误。

5. 代码编码声明

在 Python 3 中,默认编码是 UTF-8,支持中文。但在 Python 2 中需要声明编码。为了兼容性,建议在文件开头加上编码声明:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# 后面是你的代码
print("支持中文了")

第一行#!/usr/bin/env python3是 Shebang,告诉系统用 python3 来执行这个文件(Linux/Mac 有用,Windows 忽略)。

第二行# -*- coding: utf-8 -*-声明文件编码为 UTF-8。

6. 一个完整的示例

把今天学的内容综合起来:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
一个简单的问候程序
演示注释、变量、输入输出的使用
"""

# 常量定义
GREETING = "你好"

# 获取用户信息
name = input("请输入你的名字:")
age = int(input("请输入你的年龄:"))

# 计算十年后的年龄
future_age = age + 10

# 输出问候语
print(GREETING + "," + name + "!")
print("你今年", age, "岁")
print("十年后你将", future_age, "岁")

# 判断是否成年(预告下一课的内容)
if age >= 18:
    print("你已经成年了")

7. 小结

今天我们学习了 Python 的基础语法:

  • 注释:单行用#,多行用三引号
  • 缩进:Python 的代码块标志,通常用 4 个空格
  • 变量:存储数据的容器,命名要规范
  • 输入输出:print()输出,input()输入
  • 编码声明:# -*- coding: utf-8 -*-

这些语法看似简单,但却是所有 Python 代码的基础。就像练武要先扎马步,写代码也要先掌握这些基本功。


练习题

  1. 写一个程序,获取用户的姓名和出生年份,计算并输出用户的年龄
  2. 尝试给变量取一些不合法的名字(如1nameuser-name),看看会报什么错
  3. 写一个程序,计算长方形的面积,长和宽由用户输入

思考题

为什么 Python 要用缩进而不是大括号?这样做有什么好处和坏处?


本文代码示例


相关阅读