兄弟萌,帮我看看哪里有问题啊
这个是20讲课后作业那题这代码我自己 写的 但就是找不到问题啊{:10_266:}index() 函数用于从列表中找出某个值第一个匹配项的索引位置。
你的密码里好像就第一个 l 符合规则
其他小写字母不符合就没加进去
而后面所有的 l ,都str1.index('l'),得到的都是3,都被当成第一个 l 处理了
以至于,后面凡是 l ,都认为符合规则,被加进列表里了
整个密码后面没细看
不过可能会出现,后面有某个小写字母符合,可这个小写字母在之前出现过,却不符合从而导致,这个符合的字母没被加进去 灰晨 发表于 2021-7-7 10:15
index() 函数用于从列表中找出某个值第一个匹配项的索引位置。
你的密码里好像就第一个 l 符合规则
其他 ...
哦哦,突然有点明白了 感谢感谢{:10_254:} 灰晨 发表于 2021-7-7 10:15
index() 函数用于从列表中找出某个值第一个匹配项的索引位置。
你的密码里好像就第一个 l 符合规则
其他 ...
大佬,我又把这个代码试了下,貌似没什么问题啊,望指正,谢谢str1='ABClGFHaGHjHHGcAKV'
str2='zxcvbnmasdfghjklqwertyuiop'
str3='ZXCVBNMASDFGHJKLQWERTYUIOP'
list1=[]
for i in str1:
if i in str2:
a=str1.index(i)
if a>=3:
if str1in str3 and str1in str3 and str1in str3 and str1in str3 and str1in str3 and str1in str3:
list1.append(i)
print(list1)
{:10_269:}都说了a=str1.index(i),用index()会出问题的,你在密码后面再加上aAKV试试就会发现明明这个a是符合的,但因为前面出现过a了,而且不符合
这第2个a,在index()的时候,返回的下标指向的是第一个a,即a=str1.index(i)得出来的a是等于第一个a的位置
再比如,你密码末尾加一个l,会发现明明它后面一个大写也没有,仍然被判断符合要求加进列表了
同样是因为a=str1.index(i),这里得出来的结果都是第一次出现该字母的位置,
也就是说,不过你后面再出现几个l,a,a=str1.index(i)的结果返回的都是一个出现他们的位置,
继而影响
if str1in str3 and str1in str3 and str1in str3 and str1in str3 and str1in str3 and str1in str3:
这个判断的都是一个l,a是否符合
页:
[1]