一、今日学习总览

今天学习了 Python 基础语法 + 字符串 + 列表 + 字典 + 循环 + 判断 + 函数 + 异常处理,并完成了一套串口数据解析实战项目

二、字符串 String

1. 什么是字符串

单引号/双引号 括起来的内容就是字符串。

例:

Plain Text
"Voltage=3.3V"

2. split() 切割字符串

作用:把一串文字按指定符号切成列表

今天用法:

Python
line.split(",")   # 按逗号切
line.split("=")   # 按等号切

3. replace() 替换文字

作用:删除文字、替换文字、去掉单位。

今天用法:

Python
value.replace("V", "")  # 删掉 V
value.replace("A", "")  # 删掉 A

4. decode() 字节转字符串

串口发过来的数据是 bytes 字节,必须解码才能用。

Python
str_data = raw_data.decode("utf-8")

三、列表 List(存储一组数据)

1. 列表是什么

[] 括起来的一组数据,可以存放多个内容。

2. 下标访问(从 0 开始)

Python
lst = ["aaa", "bbb"]
lst[0]   #
第一个
lst[1]   # 第二个

3. len() 获取长度

判断数据是否合法:

Python
if len(linea) < 2:

4. 列表常见错误:IndexError

下标越界:访问不存在的位置。

例:列表只有 2 个元素,却访问 lst[2]。

四、字典 Dict(返回结果专用)

1. 字典是什么

: 形式存储数据,清晰易读。

2. 今天用法

Python
return {
    "
平均电压值": Usump,
    "平均电流值": Isump
}

3. 作用

适合返回 多个结果,如传感器数据、解析结果、配置参数。

五、循环结构 for

1. 作用

遍历列表、逐行处理数据。

2. 今天用法

Python
for line in lines:

3. continue 跳过本次循环

出错时跳过当前行,继续处理下一行:

Python
continue

六、判断语句 if

1. 作用

根据条件决定是否执行某段代码。

2. 今天用法

Python
if len(linea) < 2:
if count == 0:

七、函数 def(封装代码)

1. 函数定义

Python
def 函数名(参数):
    代码
    return 返回值

2. 今天写的函数

Python
def sensor(raw_serial_data):

3. return 返回结果

把计算好的平均值返回给调用者。

八、类型转换 float()

1. 作用

把字符串数字变成真正的数字。

Python
float("3.3")

2. 转换失败触发:ValueError

Python
float("xxx")  # 报错:值错误

九、f-string 格式化输出

1. 作用

把变量放进字符串里打印。

2. 写法

Python
print(f"错误信息:{e}")

十、异常处理(今天核心重点)

1. try / except 作用

让程序出错不崩溃,并能处理错误。

结构:

Python
try:
   
可能出错的代码
except:
    出错后执行

2. 今天学习的 3 种错误

  1. ValueError

 值错误,如 float(“xxx”) 失败

  1. IndexError

 列表下标越界

  1. UnicodeDecodeError

 串口数据解码失败

3. 一次捕获多个错误

Python
except (ValueError, IndexError) as e:

4. as e 的作用

错误信息存到变量 e 里,方便查看原因。

5. raise 主动抛错

数据不合法时,手动触发错误,让 except 统一处理。

Python
raise ValueError("数据格式错误")

十一、今天完成的实战项目:串口数据解析

输入:串口原始字节数据

输出:平均电压、平均电流(字典)

完整流程

  1. 字节数据解码按行分割
  2. 逐行循环处理
  3. 按逗号分割电压、电流
  4. 按等号分割名称与数值
  5. 去掉 V/A 单位
  6. 转成浮点数
  7. 累加有效数据
  8. 异常捕获(出错不崩溃)
  9. 计算平均值并返回字典

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐