我想檢查通過函數中的參數給出的字符串是否在列表中。代碼本身不會產生任何錯誤,但它的工作方式是錯誤的。如果我給我的函數「-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'行詢問是否名單是在另一個列表中,即使列表相同,對於非嵌套列表,這也不會成立。 –
當您分割字符串時,輸出將是一個列表。由於該列表不存在於'commands'中,它正在返回'False'。放下'split()'來解決這個問題。 – thefourtheye
@thefourtheye僅僅丟掉'spilled()'不是一個解決方案。可能不僅僅是命令。 – Psytho