如何在文件中找到ASCII值的总和以寻找最大ASCII并打印出最高ASCII值的名称

-1 投票
2 回答
757 浏览
提问于 2025-04-15 13:40

这是我正在使用的代码

def ascii_sum():
    x = 0
    infile = open("30075165.txt","r")
    for line in infile:
        return sum([ord(x) for x in line])
    infile.close()

这段代码只会打印出文件中的第一个ASCII值,而不是最大的ASCII值

2 个回答

1

这是对你之前一个问题的回答中的一小段内容,链接在这里:查看问题

def get_file_data(filename):
    def ascii_sum(line):
        return sum([ord(x) for x in line])
    def word_count(line):
        return len(line.split(None))

    filedata = [{'line': line, 
                 'line_len': len(line), 
                 'ascii_sum': ascii_sum(line), 
                 'word_count': word_count(line)}
                for line in open(filename, 'r')]

    return filedata

afile = r"C:\Tmp\TestFile.txt"
file_data = get_file_data(afile)

print max(file_data, key=lambda line: line['line_len']) # Longest Line
print max(file_data, key=lambda line: line['ascii_sum']) # Largest ASCII sum
print max(file_data, key=lambda line: line['word_count']) # Most Words
1

在编程中,有时候我们需要处理一些数据,这些数据可能来自不同的地方,比如用户输入、文件或者网络请求。为了让程序能够理解这些数据,我们通常需要将它们转换成程序可以处理的格式。

比如说,如果你从一个表单获取用户的名字,这个名字可能是以文本的形式存在的。为了在程序中使用这个名字,我们可能需要将它转换成一个特定的对象或者数据结构,这样程序才能更方便地使用它。

另外,处理数据时,我们还需要考虑到数据的类型,比如数字、字符串、布尔值等。每种类型的数据在程序中的处理方式可能会有所不同,所以理解这些类型是很重要的。

总之,数据处理就是把各种来源的数据转化为程序能够理解和使用的形式,这样才能让程序正常运行并完成我们想要的功能。

max(open(fname), key=lambda line: sum(ord(i) for i in line))

撰写回答