【发布时间】:2021-01-29 02:27:09
【问题描述】:
我正在尝试从使用 def 函数的文本文件中获取平均值。我正在尝试将列表从文本文件转换为 int()。而不是转换它给了我错误:“ ValueError: invalid literal for int() with base 10: '5, 5, 6, 7' ”。 “5、5、6、7”是我从正确的 .txt 文件中制作的。代码如下:
def getNumberList(filename):
with open(filename,'r') as f:
lyst = f.read().split('\n')
numberList = [int(num) for num in lyst]
return numberList
def getAverage(filename, func):
numbers = func(filename)
return sum(numbers)/len(numbers)
def main():
filename = input("Input the file name: ")
average = getAverage(filename, getNumberList)
print(average)
if __name__ == "__main__":
main()
【问题讨论】:
-
您的文件每一行都有多个数字。
-
错误很明显,你不能将
'5, 5, 6, 7'传递给int(),你需要拆分它。 -
但是您的代码希望它只是一个数字。
标签: python integer valueerror