Python 教程 02:基础语法
“纸上得来终觉浅,绝知此事要躬行。”
学编程和学游泳一样,看再多教程也不如下水扑腾几下。今天我们来学习 Python 的基础语法,这些是写代码的"规矩"。
1. 注释:给代码写"旁白"
注释就像电影里的旁白,是写给人看的,不会被 Python 执行。写注释有两个好处:
- 提醒自己:三个月后回头看代码,如果没有注释,你可能会问"这是谁写的垃圾代码?"(然后发现是自己写的)
- 方便别人:团队协作时,注释能让其他人快速理解你的思路
单行注释
用#开头,从#开始到行尾的所有内容都是注释:
# 这是一个单行注释
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 讲究缩进整齐。
缩进规则
- 使用空格,不要用 Tab(或者统一用 Tab,但千万别混用)
- 标准缩进是 4 个空格
- 同一代码块的缩进必须相同
# 标准缩进(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 的变量命名有几个硬性规定和一些"潜规则":
硬性规定(违反会报错):
- 只能包含字母、数字、下划线
- 不能以数字开头
- 不能使用 Python 关键字(如
if、for、class等) - 区分大小写(
name和Name是两个不同的变量)
# 合法的变量名
user_name = "Tom"
age2 = 20
_private = "私有变量"
中文变量 = "可以,但不推荐"
# 非法的变量名
2name = "Tom" # SyntaxError: 不能以数字开头
user-name = "Tom" # SyntaxError: 不能用连字符
class = "Python" # SyntaxError: 不能用关键字
“潜规则”(遵循 PEP 8 规范):
- 变量名用小写字母,单词间用下划线分隔(snake_case)
- 常量用全大写字母
- 类名用大写字母开头的驼峰命名(CamelCase)
- 私有变量以下划线开头
# 推荐的命名风格
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 代码的基础。就像练武要先扎马步,写代码也要先掌握这些基本功。
练习题:
- 写一个程序,获取用户的姓名和出生年份,计算并输出用户的年龄
- 尝试给变量取一些不合法的名字(如
1name、user-name),看看会报什么错 - 写一个程序,计算长方形的面积,长和宽由用户输入
思考题:
为什么 Python 要用缩进而不是大括号?这样做有什么好处和坏处?
本文代码示例: