在fi中查找整数

2024-04-25 22:32:00 发布

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

我需要找到一个文件的整数。我需要得到这些整数的平均值(我已经计算出这部分了)。我得到错误:“error on input[]:无法将'int'对象隐式转换为str”

编辑-代码正在工作。谢谢大家!迪卡普里奥帮助我想出了最终的解决方案。在

我编辑了我的最终代码如下:

   def average_ints():
        integers = []
        num_ints = 0
        avg = 0
        with open("file") as f:
            for line in f:
                for i in line.split(' '):
                     integers.append(int(i))
                    num_ints = num_ints + 1
        avg = (sum(integers))/((num_ints))
        return avg

如何找到这个文件的整数?在


Tags: 文件integers代码in编辑for错误line
3条回答

使用castint(x)将str转换为int。默认情况下,从文件中读取的所有内容都是str

def average_ints():
    integers = 0
    num_ints = 0
    avg = 0
    with open("associate.txt") as f:
        for line in f:
            for i in line:
                # if i in line: <- this should always be True
                integers += int(i)  # + integers <- += adds and stores
                num_ints = num_ints + 1
    avg = integers/num_ints
    return avg

编辑:

我只是觉得你可能对for i in line:部分有问题。 这条线需要分开。尝试使用for i in line.split(' ')假设您的int被一个空格分割。在

编辑2:

如果每行使用一个int:

^{pr2}$

这里的问题是行中的'int'是一个字符串,您需要先将其转换为整数。您可以通过用int(int)替换'int'来实现这一点。在

这是假设文件中只有数字(可以表示为浮点数或整数的字符)。如果不是的话,你需要解释清楚。在

用内置函数命名变量也不是一个好主意,所以我将把int改成其他名称。在

您可能不应该使用“int”作为变量,因为它是一个内置的变量,如果您以后试图引用它,您将无法使用它。在

所以从外观上看,你想把一个文件中的所有整数取平均值?这里有一个函数可以做到这一点:

def avg_ints(x): # Where x is a file
    total = 0
    count = 0
    lines = x.readlines()
    for line in lines:
        for character in line:
            try:
                character = int(character)
                count += 1
                total += character
            except ValueError:
                pass
    return total/count
f = open("associate.txt")
print(avg_ints(f))

相关问题 更多 >