Python-Caesar-Cypher分析输入fi

2024-09-27 19:21:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个Caesar Cypher函数,当给定一个输入文件时,程序(通过命令行)分析文件,找出每个字母(小写和大写)的数量。从那里我可以找出解密文件的密钥。在

我遇到的问题是把最常见的字母拉出来,然后把它转换成一个键。在

我下面的代码还远远没有完成。我一直在想办法找出一个最常见的字母。从那里我相信使用已经使用的代码变体,我将能够转换并使用一个数字作为键。我真的需要一个关于如何得到初始字符的指针。在

此代码不是完整的程序,只是用于分析文件并将结果存储在字典中的代码:

elif fileOption == "2":
def decryptChars(aString):
    "Function to count characters in the input file"
    charCount = {}
    for char in aString:
        if char in charCount.isalpha():
            if char in charCount:
                charCount[char] = charCount[char] + 1
            else:
                charCount[char] = 1
        return charCount

try:
    inputFile = open(sys.argv[1], "r")
except:
    sys.exit("The file {} could not be opened...".format(sys.argv[1]))

totalChars = inputFile.read().replace(" ", "")

charCount = decryptChars(totalChars)
print(sorted(charCount.items()))

当我传递一个字符串为“而不是要求所有所需的功能都内置到语言的核心”的文件时,我得到的结果是:

^{pr2}$

(我不知道最好的试件,因为它将返回2和9…)。在

任何建议都会非常有帮助。在


Tags: 文件代码in程序ifsys字母file
2条回答

好吧,给你一个包含对的列表:

l = [('R', 1), ('a', 6), ...]

最简单的方法是使用for循环

^{pr2}$

假设:

charCount = {'R': 1, 'a': 6, 'b': 2...}

下面是一行代码来获取出现最多的字符:

^{pr2}$

相关问题 更多 >

    热门问题