我正在编写一个脚本,该脚本应在文件中包含一组单词,以25种不同的方式对其进行加密,然后将结果输出到另一个文件中。
因此,到目前为止,我所拥有的是一个脚本,其中包含所有单词,仅对它们加密一次并输出列表。我无法弄清楚如何对每个单词进行25次加密(也就是说,每个单词中要制作25个新单词)
到目前为止,这是我的代码:
for c in range(len(text)):
lister = text[c]
s += 1
print("Cipher number %s: " % c + encrypt(lister, s))
output_file.write("\n")
output_file.write(encrypt(lister, s))
text是包含单词的文件,加密功能将接收该列表,s是加密的移位数,这意味着s = 1是一种加密方式,而s = 2是另一种加密方式。同一个字。现在,代码会以不同的加密方式对所有单词进行加密,因为每次for循环经过一个新单词时s都会改变其值
仅在s = 1到s = 25加密前一个单词25次之后,我才能使for循环更改s的值?
答案 0 :(得分:1)
您正在寻找的是一个嵌套循环。简而言之,您需要为每个单词做25次任务。
for c in range(len(text)):
lister = text[c]
for s in range(1, 26): #goes from 1 to 25.
print("Cipher number %s: " % c + encrypt(lister, s))
output_file.write("\n")
output_file.write(encrypt(lister, s))
我还应该提到python为我们提供了一种使用“ in”运算符遍历列表的更好方法。
for lister in text:
for s in range(1, 26): #goes from 1 to 25.
print("Cipher set for word ",lister)
output_file.write("\n")
output_file.write(encrypt(lister, s))
如果在遍历列表时需要两个索引号,请改为使用枚举。
答案 1 :(得分:0)
我会在当前循环内部使用嵌套循环。使该外部循环每次迭代运行25次,并在内循环每次迭代时增加s
的值。
换句话说,将当前循环的主体放在for s in range(25):
中。这又应该放在for c in range(len(text)):
中。这有帮助吗?