求助求助
各位大佬,那道课后习题,要求把一个文本文件里隐藏的密码找出来,然后有以下两个要求:1.每位密码为单个小写字母;2.每位密码的左右两边均有且只有三个大写字母。我自己写了一下,用的是以下代码,然后有一个问题,就是字符串切片的时候,头尾两边each-3和each+4超出line这个字符串的范围了,所以这个问题该怎么解决呢。f1=open(r'C:\Users\Administrator\Desktop\string2.txt')
list=[]
code=''
for line in f1:
for each in line:
if each.islower():
if line.isupper() and line.isupper():
if not line.isupper() and not line.isupper():
list.append(each)
list.reverse()
while list:
code+=str(list.pop())
print(code)
f1.close() 通过设定合适的遍历下标范围来解决此问题。
下面的代码供你参考
f = open(r'C:\Users\Administrator\Desktop\string2.txt')
str1 = f . read()
f . close()
s , p = 'a' + '' . join(str1 . split('\n')) + 'a' , ''
for k in range(4 , len(s) - 4):
if s . islower() and s . isupper() and s . islower() and s . isupper() and s . islower() : p += s
print(p) jackz007 发表于 2020-6-19 19:00
通过设定合适的遍历下标范围来解决此问题。
下面的代码供你参考
请问是s,p是什么意思,s,p后面那串代码怎么理解 sturgeons 发表于 2020-6-19 20:28
请问是s,p是什么意思,s,p后面那串代码怎么理解
相当于
s = 'a' + '' . join(str1 . split('\n')) + 'a'
p = '' 本帖最后由 jackz007 于 2020-6-20 00:58 编辑
sturgeons 发表于 2020-6-19 20:28
请问是s,p是什么意思,s,p后面那串代码怎么理解
s 是经过整理的从文件中读取到藏有密码的长字符串,p 是从 s 中提取到的符合条件的密码字符串,后面的代码就是从 s 的开始到结束,以连续 7 个字符为窗口,以 1 个字符为步长,循环遍历 s 中的每一个字符,判断中心字符及其两侧各 3 个字符的大小写情况是否符合密码字符特征,如果符合,就把中心字符添加到密码 p 中,最后打印出提取到的密码字符串 p
页:
[1]