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() 转换。细节决定成败。

知识体系总览

下面这张图把本章的核心知识点串起来了。你可以把它当成一张「地图」,学完后再回来看,会更有感觉。

Python 基础知识体系 Python 基础 注释 变量与数据类型 标识符与关键字 输入与输出 运算符 类型转换 核心要点 • 注释是写给人的,不是写给机器的 • 变量类型由值决定,但建议保持一致性 • 输入永远是字符串,需要手动转换 • 类型转换要小心:int() 截断,float() 保留小数

好了,这一章的内容就这些。看起来知识点不少,但说白了就是「怎么给数据起名字、怎么算、怎么转」。把这些基础打牢,后面写硬件控制代码时,你会发现自己越来越顺手。