2017-04-19 3 views
0

こんにちは私は持っている宿題に問題があります。私はいくつかの行に書かれたテキストファイルの番号のリストを持っています。私のプロジェクトでは、特定の行を選択してから、それらを合計するための行数を選択するよう求めています。たとえば、4行目から次の4行を合計します。 これは私が本当に(ごめん解析するので、十分な時間を急いで一種の)あなたのコードが間違ってやっているものを得るいけない今テキスト内の特定の行を読んで、数字と次の行を合計してください。

fichNbr = open("nombres.txt", "r") 
ligneDepart = int(input("entrer la ligne de depart: ")) 
nb_lignes = int(input("entrer le nombre de ligne a lire: ")) 
somme3 = 0 
for line in fichNbr: 
    line = fichNbr.readline() 
    print(line) 
    for i in range(ligneDepart,(ligneDepart + nb_lignes),1): 
     n = fichNbr.readline().split() 
     for f in n: 
       somme3 += int(f) 
print(somme3) 

答えて

0

のために試してみましたコードですが、あなたは、コードを探しているならその種類のあなたは(私が思う)必要なものをここにあるん

f = open("test.txt", "r") 
start_line = input("line to start ") - 1 
finish_line = input("line to finish ") - 1 
soma = 0 
for i, line in enumerate(f): 
    if i >= start_line and i <= finish_line: 
     soma += int(line) 
print soma 

だけで簡単に説明、列挙がファイルfを反復処理し、行番号を含むタプルを返します。組み込み関数です(ゼロから始まる)とその行にあるものとを区別することができます。あなたが読んでやりたいと思っている行と同じかそれ以上であるかどうか、また読んでいる行よりも小さいかどうかを確認するだけです。

はそれが役立ちます:)

+0

1. iは –

0

を指定された行から(与えられたラインを含む)すべての行の合計を行うには願って、あなたはそれがその行の排他的である場合は1を減算する変数ニーズを並べるそしてちょうど使用そのままの変数。 with ...を使用してファイルを開き、自動的に閉じるようにして、モードとしてread( 'r')を選択します。行を格納する変数を作成し、readlines()を選択します。これは、各行をリスト内の独自の場所に格納します。

実際に行を合計するための別の変数を作成します。指定された開始行変数に関連付けられたwhileループを使用して、リストの長さより短い場合は、各行をsum変数に追加する(numを使用して示されているように)リストを反復処理します。

open()の行を読む方法のために、最後に\ nをつけて文字列としてすべてを引っ張ります。ストリップ( '\ n')を追加して\ nを削除し、すべてを整数に変換します。ループ変数を適切に反復して終了するには、1をライン変数に追加します。

def example(file_name, line): 
    with open(file_name, 'r') as f: 
     x = f.readlines() 
    line = line - 1 
    nums = 0 
    while line < len(x): 
     nums += int(x[line].strip('\n')) 
     line += 1 
    print(nums) 

example("example.txt", 4) 
# My example.txt file has a different number on each line in this order: 2, 4, 3, 7, 5, 6, 4 

あなたは、与えられた行の次の行の唯一の特定の数を行う関数にこの余分な番号を追加して、行変数から1を減算する前に、この余分な変数に行変数を追加したい場合。リストの長さを反復する代わりに、この変更された余分な変数を使用して終了します。あなたが与えられた行が含まれない場合

def example(file_name, line, end_line): 
    with open(file_name, 'r') as f: 
     x = f.readlines() 
    end_line += line 
    line = line - 1 
    nums = 0 
    while line < end_line: 
     nums += int(x[line].strip('\n')) 
     line += 1 
    print(nums) 

example("example.txt", 4, 2) 
# My example.txt file has a different number on each line in this order: 2, 4, 3, 7, 5, 6, 4 

ここでも、

+0

非常に参考に感謝し、それをトライしますありがとう減算しません。それが助けてくれたらと思います。私は問題があなたのコードにあったかどうか分からないので、コメントできませんが、fichNbrとして "open(" nombres.txt "、" r ")を使うべきです:" fichNbr = open( " nombres.txt "、" r ")"あなたのスクリプトは決してそのファイルを閉じないので、...とします。 –

+0

問題ありませんので、多くの –

+0

これらの回答のいずれかがあなたの質問に回答した場合は、それを覚えておいてください。 –

関連する問題