蛮力python“超出范围错误”

时间:2017-06-11 01:53:42

标签: python

我是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)

1 个答案:

答案 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