You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Arduino与Python串口通信:如何拆分存储接收的多组数值

解决方案

很简单,在你现有的代码基础上,只需要几步就能把分割后的数值分配到目标变量里:

  1. 分割处理后的字符串:用split()方法把空格分隔的字符串拆成列表,它会自动处理任意数量的空格分隔符。
  2. 直接赋值给变量:从分割后的列表里取出对应位置的元素,分别赋值给a、b、c。
  3. 格式化打印:用f-string输出你想要的清晰格式。

完整的代码片段如下:

# 你原有的串口读取代码
data = arduino.readline()
str_data = data[:-2].decode()  # 把变量名从`str`改成`str_data`,避免覆盖Python内置函数

# 新增的分割与赋值逻辑
parts = str_data.split()
# 加入长度检查,防止数据格式异常导致报错
if len(parts) >= 3:
    a, b, c = parts[0], parts[1], parts[2]
    # 按要求格式打印结果
    print(f"a={a}, b={b}, c={c}")
else:
    print("串口数据格式不正确,缺少足够的数值组")

补充说明:

  • 我把变量名str改成了str_data,因为str是Python的内置类型,用它当变量名会覆盖内置函数,容易引发潜在问题。
  • 加入的长度检查能避免串口传输时出现数据截断、格式错误导致的索引越界异常,让代码更健壮。
  • 如果你的Arduino发送的六组数值是成对重复的(比如前三个和后三个完全一致),也可以选择取后三个元素赋值:a, b, c = parts[3], parts[4], parts[5],根据你的实际需求调整即可。

内容的提问来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:04:38