Найти логику в Python - PullRequest
       2

Найти логику в Python

0 голосов
/ 19 января 2012

Я новичок в 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 ]

2 голосов
/ 19 января 2012

s.find(t) сообщит вам позицию из t в s, а не как часто t происходит в s.

Ваше желание http://docs.python.org/library/stdtypes.html#str.count

if data.lower().count('invalid password') > 1:
    # do something
1 голос
/ 19 января 2012

Улучшение вашего решения:

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 "сделать что-то"блок на новую строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...