Я хочу проверить, находится ли строка, заданная с помощью параметров в функции, в списке. Сам код не вызывает ошибок, но работает неправильно. Если я передам свою функцию «-a» в качестве параметра, она все еще говорит, что ее нет в списке, но это определенно.Проверьте, есть ли элемент в списке
Это код:
def generatePassword(pLength, mode):
password = str()
commands = ["-a", "-n", "-s", "-allupper", "-mixupper"]
alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p",
"q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
specialCharacters = ["!", "?", "&", "@",
"-", "=", "#", "+", "*", "/", "%", "§"]
if mode.lower().split() not in commands:
print("Couldn't recognize commands...")
else:
for n in range(pLength):
i = random.randint(1, 2)
if "-a" in mode.lower().split():
password += alphabet[random.randint(0, 25)]
print("[+]", password)
generatePassword(30, "-a")
Ваш первый 'if' линия спрашивает, если список находится в другой list, это никогда не будет верно для не-вложенных списков, даже если списки идентичны. –
Когда вы «разделяете» строку, результатом будет список. Поскольку списка нет в 'command', он возвращает' False'. Поставьте 'split()', чтобы исправить это. – thefourtheye
@thefourtheye Простое удаление «пролитой()' не является решением. Там может быть больше, чем команда. – Psytho