TypeError:int()参数必须是一个字符串,

时间:2017-12-04 04:19:24

标签: python arrays

这是我的编程类简介

的最后一篇

编写执行以下操作的程序。

1创建一个函数inputNumbers,它使用循环允许用户在1到10之间的数字之间输入5个数字,并将它们存储在名为numArray的数组中。从def main()调用该函数。(20分)

2创建一个接受numArray的函数addNums,并使用循环在数组中添加数字。从def main()调用该函数。将总数返回到def main()并将总数分配给变量total。显示总数(20分)。

3创建一个函数writeArray,它将数组的内容写入一个名为Exam2.dat的文件,每行一个数字。如果当前存在名为Exam2.dat的文件,则应创建新文件。从def main()调用该函数(20分)

4创建一个函数readArray,它读取文件的内容并添加它们。将总数返回到def main()。从def main()(25分)

调用该函数

5显示def main()中的总数。 (5分)

def main():
    numArray = inputNumbers()
    total = addNums(numArray)
    print(total)
    writeArray(numArray)
    readArray()

def inputNumbers():
    numArray = []
    numbers = [int(input('Enter a value between 1 and 10: ')) for i in range(5)]
    numArray.append(int(numbers))
    return numArray

def addNums(numArray):
    total = sum(numArray)
    return total

def writeArray(numArray):
    writeFile = open('Exam2.dat', 'w')
    for num in numArray:
        writeFile.write("%s\n" % numbers)

def readArray():
    result = 0
    for s in open('Exam2.dat'): result += int(s.strip())

main()

我收到错误

TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'

我的问题是:如何写入数组然后添加它?我希望用户输入5个数字(例如1,2,3,4,5),它会显示总数。希望该计划的其余部分是正确的

1 个答案:

答案 0 :(得分:0)

从第11行移除int()numbers已经是int的列表(第10行)。将第11行更改为:

numArray += numbers

实际上,您可以返回第10行。更改功能如下:

def inputNumbers():
    return [int(input('Enter a value between 1 and 10: ')) for i in range(5)]