2

我有一个python脚本在设置一个名为“confidence”和“id”的变量时解析传入的有效负载,然后它将评估id是否等于sam@sam并且置信度大于或等于70。现在id等于sam@sam 但没有信心,它仍然会触发!我的代码有什么问题!!?

p = eg.event.payload[2]
p = p.split(',')
id = p[0].strip()
confidence = p[1].strip()
print confidence
url = p[2].strip()
if confidence >= 70 and id == "sam@sam":
  eg.TriggerEvent("FaceRec", "Unlock Door" )
else:
  eg.plugins.GoogleVoice.SendSMS(u'407#####', url)
4

2 回答 2

12

问题是“信心”是一个字符串,而您正在将它与一个数字进行比较。将字符串与数字进行比较的结果是一致的,但不一定是您想要的结果。

使固定:

confidence = int(p[1].strip())
于 2013-06-29T14:54:25.713 回答
4

好的,让我们仔细看看你的代码。现在,p 是一个字符串。因此,当您拆分它时,结果(id 和置信度)是字符串。那是你的问题。由于比较值时置信度仍然是一个字符串,因此您正在比较一个字符串和一个 int。做这个:

confidence = int(p[1].strip())

这首先将字符串转换为 int,因此,confidence 将是 int。然后比较将正常工作。

于 2013-06-29T14:59:58.330 回答