-1

我真的是 python 新手,需要帮助从文件中的数据制作列表。该列表在单独的行中包含数字(通过使用“\n”,这是我不想更改为 CSV 的内容)。保存的数字量可以随时更改,因为数据保存到文件的方式如下:

方案一:

        # creates a new file for writing
numbersFile = open('numbers.txt', 'w')
    # determines how many times the loop will iterate
totalNumbers = input("How many numbers would you like to save in the file? ")
    # loop to get numbers
count = 0
while count < totalNumbers:
    number = input("Enter a number: ")
        # writes number to file
    numbersFile.write(str(number) + "\n")
    count = count + 1

这是使用该数据的第二个程序。这是混乱的部分,我不确定:

方案二:

maxNumbers = input("How many numbers are in the file? ")
numFile = open('numbers.txt', 'r')

total = 0
count = 0
while count < maxNumbers:
    total = total + numbers[count]
    count = count + 1

我想使用从程序 1 收集的数据来获得程序 2 的总数。我想把它放在一个列表中,因为数字的数量可能会有所不同。这是对计算机编程课程的介绍,所以我需要一个简单的修复。感谢所有帮助的人。

4

1 回答 1

1

您的第一个程序很好,尽管您应该使用raw_input()而不是input()(这也使得没有必要调用str()结果)。

您的第二个程序有一个小问题:您实际上并没有从文件中读取任何内容。幸运的是,这在 Python 中很容易。您可以使用遍历文件中的行

for line in numFile:
    # line now contains the current line, including a trailing \n, if present

所以您根本不需要询问文件中的数字总数。

如果要添加数字,请不要忘记将字符串转换lineint第一个:

total += int(line)       # shorthand for total = total + int(line)

仍然存在一个问题(感谢@tobias_k!):文件的最后一行将为空,并int("")引发错误,因此您可以先检查一下:

for line in numFile:
    if line:
        total += int(line)
于 2013-10-25T09:20:35.283 回答