-1

私はPythonが初めてで、ファイル内のデータからリストを作成する際に助けが必要でした。リストには、別々の行に数字が含まれています (「\n」を使用しており、これは CSV に変更したくないものです)。データがファイルに保存される方法は次のとおりであるため、保存される数値の量はいつでも変更できます。

プログラム 1:

        # 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

これは、そのデータを使用する 2 番目のプログラムです。これは、面倒でよくわからない部分です。

プログラム 2:

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()代わりに ofを使用する必要がありますinput()(これにより、結果を呼び出す必要もなくなりますstr())。

2 番目のプログラムには小さな問題があります。ファイルから実際には何も読み取っていません。幸いなことに、これは Python では簡単です。を使用して、ファイル内の行を反復処理できます

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

そのため、ファイル内の合計数を尋ねる必要はまったくありません。

line数字を追加したい場合は、文字列をint最初に変換することを忘れないでください:

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

問題が 1 つあります (@tobias_k に感謝します!): ファイルの最後の行が空になりint("")、エラーが発生するため、最初に確認できます。

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