我正在通过COM端口与调制解调器通信以接收CSQ值。
pseudo elements
返回以下内容:
response = ser.readline()
csq = response[6:8]
print type(csq)
为了进一步计算,我尝试将“csq”转换为整数,但是
<type 'str'> and csq is a string with a value from 10-20
返回以下错误:
i=int(csq)
答案 0 :(得分:5)
稍微有点pythonic的方式:
i = int(csq) if csq else None
答案 1 :(得分:3)
您的错误消息显示您正在尝试将空字符串转换为导致问题的int
。
将代码包装在if语句中以检查空字符串:
if csq:
i = int(csq)
else:
i = None
请注意,空对象(空列表,元组,集合,字符串等)在Python中评估为False
。
答案 2 :(得分:1)
作为替代方案,您可以将代码放在try-except-block中:
try:
i = int(csq)
except:
# some magic e.g.
i = False