如果声明错误触发

时间:2013-06-29 14:50:38

标签: python if-statement

我有一个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)

2 个答案:

答案 0 :(得分:12)

问题在于“置信度”是一个字符串,您将其与数字进行比较。将字符串与数字进行比较的结果是一致的,但不一定是您想要的结果。

修正:

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

答案 1 :(得分:4)

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

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

首先将字符串转换为int,因此,置信度将为int。然后比较将正常工作。