【问题标题】:Python String cannot be converted to an integerPython字符串不能转换为整数
【发布时间】:2020-01-09 17:04:55
【问题描述】:

我正在尝试使用以下 Python 脚本从 Arduino 串行端口读取传感器值:

import serial
ser = serial.Serial("COM5", baudrate=9600, timeout=1)
def get_val():
    ser.write(b'g')
    return ser.readline().decode().rstrip()

while 1:
    data = get_val()
    print(data)

到目前为止,一切都运行良好,python 将控制台上的传感器值打印为字符串。但是当我尝试将字符串“数据”转换为整数时,我收到以下错误消息:

Traceback (most recent call last):
  File "[...] requestDataPoint.py", line 18, in <module>
    print(int(data))
ValueError: invalid literal for int() with base 10: ''

这里有什么问题?

【问题讨论】:

  • 如果你只打印没有 int 会得到什么
  • 我得到一组传感器值,如:899 895 847 847 899 871 843 871 867 843 895 871 899 843 847 867 895 843 895 851 851 867 867 871 843 895 847 867 843 867 871 871
  • 喜欢整件事吗?还是一次一个?
  • while 循环的每次迭代都有一个。
  • 让我困惑的是“无效文字”后面的字符串是空的:''

标签: python string arduino integer


【解决方案1】:

我可以在这里提出一些故障排除建议,

首先,检查第一个输出字符串的长度,如果它与整数值匹配,则停止迭代并仅检查 1 个值并通过num.isdigit() 进行检查,如果与长度不匹配,则存在数字之间的空格,然后您必须删除数字之间的空格。

【讨论】:

    猜你喜欢
    • 2018-01-18
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    相关资源
    最近更新 更多