Python 基础:注释、变量与数据类型
说实话,Python 的基础语法并不复杂。但越是基础的东西,越容易在项目里栽跟头。我记得刚带团队时,有个同事因为变量命名不规范,调试了整整一个下午——最后发现是拼写错误。嗯,咱们就从这些最基础但最关键的细节开始。
1. 注释:写给未来的自己看
注释这东西,说白了就是代码里的「便签纸」。我个人的习惯是:写注释时,把看代码的人当成一个完全不了解背景的新人。你想想看,三个月后的自己,其实就是那个新人。
单行注释 vs 多行注释
# 这是单行注释,用井号开头
# 我一般用它解释「为什么」这么做,而不是「做了什么」
"""
这是多行注释
用三个引号包裹
通常放在文件开头或函数定义之后
"""
我的经验:注释不是越多越好。好的代码本身就能说明意图,注释只用来解释「为什么选择这个方案」而不是「这段代码在干什么」。
2. 变量与数据类型:Python 的「盒子」哲学
Python 里的变量,你可以把它想象成一个贴了标签的盒子。你不需要告诉盒子「我要装什么」,Python 会自动判断。
| 数据类型 | 示例 | 说明 |
|---|---|---|
| 整数 (int) | age = 25 |
没有小数点的数字 |
| 浮点数 (float) | pi = 3.14 |
带小数点的数字 |
| 字符串 (str) | name = "Python" |
用引号包裹的文本 |
| 布尔值 (bool) | is_ok = True |
只有 True 或 False |
# 变量赋值
sensor_value = 1024 # 整数
temperature = 36.5 # 浮点数
device_name = "Arduino" # 字符串
is_connected = False # 布尔值
# 动态类型:同一个变量可以换类型(但不建议)
data = 100
data = "现在变成字符串了" # 合法,但容易让人困惑
避坑指南:我曾经在硬件项目中,因为把传感器读数当字符串处理,导致计算全部出错。记住:从硬件读回来的数字,一定要确认它的数据类型。
3. 标识符与关键字:命名有规矩
Python 里的名字(标识符)不是随便起的。我见过有人用 class 做变量名——结果程序直接崩溃。因为 class 是 Python 的保留关键字,你不能用它。
命名规则:
- 只能包含字母、数字、下划线
- 不能以数字开头
- 不能使用 Python 关键字
- 区分大小写(
myVar和myvar是两个变量)
# 合法的命名
my_sensor = 1
sensor1 = 2
_temp_value = 3.0
# 不合法的命名
# 1sensor = 10 # 数字开头,报错
# my-var = 20 # 连字符,报错
# class = "test" # class 是关键字,报错
Python 3 的关键字大概有 35 个左右。你不需要背,但常用的几个要记住:if、else、for、while、def、class、import、True、False、None。
4. 输入与输出:和程序对话
写硬件控制程序时,输入输出是最常用的功能。你要从串口读数据,要把结果打印到控制台。
# 输出函数 print()
print("Hello, 硬件世界!")
print("温度:", 36.5, "°C") # 可以一次输出多个值
# 输入函数 input()
user_input = input("请输入传感器编号:")
print("你输入的是:", user_input)
注意:input() 返回的永远是字符串。如果你要数字,必须手动转换。我刚开始做项目时,经常忘记这步,结果拿字符串去做数学运算——嗯,报错是必然的。
5. 运算符:计算的基石
运算符分几类,我列个表给你看,这样更清楚。
| 类型 | 运算符 | 示例 | 结果 |
|---|---|---|---|
| 算术 | + - * / // % ** |
10 // 3 |
3(整除) |
| 比较 | == != > < >= <= |
5 > 3 |
True |
| 逻辑 | and or not |
True and False |
False |
| 赋值 | = += -= *= /= |
x += 5 |
等价于 x = x + 5 |
# 实际项目中的用法
sensor_raw = 1023
threshold = 500
# 比较 + 逻辑运算
if sensor_raw > threshold and sensor_raw < 1000:
print("传感器读数在正常范围")
# 算术运算:将原始值映射到百分比
percentage = (sensor_raw / 1023) * 100
print(f"当前值: {percentage:.1f}%")
6. 类型转换:让数据「变形」
Python 不会自动帮你做类型转换——至少不会在所有情况下都做。我遇到过最典型的坑是:从串口读到 "123",直接拿去加 1,结果得到 "1231"。因为字符串拼接和数字加法是两回事。
常用类型转换函数:
int(x)— 转整数float(x)— 转浮点数str(x)— 转字符串bool(x)— 转布尔值
# 显式类型转换
raw_data = "1024" # 字符串
value = int(raw_data) # 转成整数 1024
result = value + 1 # 结果是 1025,不是 "10241"
# 浮点数转整数会截断小数
pi = 3.14159
approx = int(pi) # 结果是 3,不是四舍五入
# 布尔转换:0、空字符串、None 都是 False
print(bool(0)) # False
print(bool("Hello")) # True
避坑指南:我曾经在读取温度传感器时,数据格式是 "36.5\n"。直接 int() 会报错。正确的做法是先 strip() 去掉换行,再 float() 转换。细节决定成败。
知识体系总览
下面这张图把本章的核心知识点串起来了。你可以把它当成一张「地图」,学完后再回来看,会更有感觉。
好了,这一章的内容就这些。看起来知识点不少,但说白了就是「怎么给数据起名字、怎么算、怎么转」。把这些基础打牢,后面写硬件控制代码时,你会发现自己越来越顺手。