我是Python新手。我有一个简单的暴力程序,但无法让它工作。代码生成string index out of range
错误,但我发现字符串与范围一致。
我输入了aa作为密码
import string
alphabet = string.ascii_lowercase[:]
#Get the password
passd = str.lower(input("Please enter you password: "))
rpass = []
counter = 0
i = 0
j = 0
while counter <= len(passd):
#Check if the letters match
if alphabet[i] == passd[j]:
rpass.append(passd[j])
i += 1
j += 1
counter += 1
else:
i += 1
print(rpass)
答案 0 :(得分:0)
i
需要设置为0才能在找到匹配项时在字母表的开头重新开始,而while
只应检查counter
是否为{{} 1}}:
< len(passd)
(请注意,如果您的字母不是字母表的一部分,例如空格键,这似乎仍会失败。)
作为旁注,您的输入可以简化为:
while counter < len(passd):
#Check if the letters match
if alphabet[i] == passd[j]:
rpass.append(passd[j])
i = 0
j += 1
counter += 1
else:
i += 1