在Python中查找逻辑

时间:2012-01-19 15:07:11

标签: python if-statement

我是python的新手..

在我的测试功能中,我传递了一些考虑"invalid password"的文本数据。 在这种情况下,我将Data_Check作为"invalid password"返回,但现在客户被问及"invalid password"data变量中是否多次出现,那么只返回"INVALID PASSWORD"否则它应该返回"VALID"本身。

请在下面的功能中告诉我可以进行哪些更改。

def test(data):
    Data_Check = 'VALID'
    if (data.lower()).find('invalid password') >= 1:
        Data_Check = 'INVALID PASSWORD'
    return Data_Check

2 个答案:

答案 0 :(得分:2)

s.find(t)将告诉您ts位置,而不是t中出现s的频率。< / p>

您想要http://docs.python.org/library/stdtypes.html#str.count

if data.lower().count('invalid password') > 1:
    # do something

答案 1 :(得分:1)

改善您的解决方案:

if data.lower().count('invalid password') > 1:
    return 'INVALID PASSWORD'
return 'VALID'

单线解决方案:

return 'VALID' if data.lower().count('invalid password') <= 1 else 'INVALID PASSWORD'

在旁注中,您应该将if的“做某事”块分隔到新的一行。