尽管有休息,我的节目似乎在这里循环了几次:
for sequence in qwerty:
for char in range(0,passlen):
if password [char : char + 2] in sequence:
score -= 5
print(score,"subtracting 5")
通常输出:
38 subtracting 5
33 subtracting 5
28 subtracting 5
23 subtracting 5
18 subtracting 5
13 subtracting 5
8 subtracting 5
3 subtracting 5
-2 subtracting 5
-7 subtracting 5
或者根本没有。
它应该只循环等于密码中3个字母QWERTY序列的数量。
我该怎么做才能调解这个?
答案 0 :(得分:0)
break
只会打破最里面的循环(即for char in range(0,passlen):
),因此您将返回外循环并继续前进。
您可以改为使用标志:
flag = False
for sequence in qwerty:
if flag: # False until the inner loop breaks
break
for char in range(0,passlen):
if password [char : char + 2] in sequence:
score -= 5
print(score,"subtracting 5")
flag = True
break
答案 1 :(得分:0)
外部for循环在这个程序中似乎是多余的。您引用的持续循环是“for qwerty中的序列:”,您应该1)删除外部for循环或2)为外部循环添加break语句