Python 以10为基数的int()的文本无效:'';
我尝试自学python,并尝试为我的Raspberry Pi创建一个远程可访问的服务器,用于GPIO连接。当我建立连接时,我发送的第一个输入是我在Putty中实际键入的内容,然后输入是“”。所以我检查了一下,但是我仍然在if int(data[0])==0:line上得到了这个消息。有什么建议吗?抱歉,如果这是一个新手问题Python 以10为基数的int()的文本无效:'';,python,casting,slice,Python,Casting,Slice,我尝试自学python,并尝试为我的Raspberry Pi创建一个远程可访问的服务器,用于GPIO连接。当我建立连接时,我发送的第一个输入是我在Putty中实际键入的内容,然后输入是“”。所以我检查了一下,但是我仍然在if int(data[0])==0:line上得到了这个消息。有什么建议吗?抱歉,如果这是一个新手问题 def run(self): try: while True: ret = -1 data = sel
def run(self):
try:
while True:
ret = -1
data = self.cs.recv(self.BUFFERSIZE)
if data=='':
continue
elif int(data[0])==0:
self.cs.send(str(GPIO_setup(data)))
elif int(data[0])==1:
self.cs.send(str(GPIO_output(data)))
elif int(data[0])==2:
self.cs.close()
except RuntimeError:
if self.cs:
self.cs.close()
数据[0]可能是“”或无数不是数字的其他内容。但要进行调试,请尝试以下操作:
def run(self):
data = None
try:
while True:
ret = -1
data = self.cs.recv(self.BUFFERSIZE)
if data=='':
continue
elif int(data[0])==0:
self.cs.send(str(GPIO_setup(data)))
elif int(data[0])==1:
self.cs.send(str(GPIO_output(data)))
elif int(data[0])==2:
self.cs.close()
except RuntimeError:
print "error on input of: '%s'" % data
if self.cs:
self.cs.close()
由于您的代码和错误,我怀疑
data
是一个列表。这将完全按照您观察到的方式失败:
In [2]: data = ['', 'test']
In [3]: data == ''
Out[3]: False
In [4]: data[0]
Out[4]: ''
In [5]: int(data[0])
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-5-4196b6567736> in <module>()
----> 1 int(data[0])
ValueError: invalid literal for int() with base 10: ''
尝试此操作后,在输入:时出现
错误,失败了,并且出现了一行新行…因此我猜数据是一个字符…知道为什么吗?该测试也失败了…似乎len(数据[0])不是0,len(数据)不是0,但数据[0]仍然是“请在函数中添加一行打印数据
,运行它,告诉我们数据到底是什么…试试打印类型(数据)
,至少可以告诉你它是什么。
data = self.cs.recv(self.BUFFERSIZE)
if len(data[0]) == 0:
continue