2017-09-24 5 views
0

6つのテスト名とそのスコアを入力し、tests.txtという名前のテキストファイルに書き込むプロンプトを表示する必要があります。私はループを使用する必要があり、各入力はファイル内の独自の行に書き込まれる必要があります。完了すると、プログラムは確認メッセージを生成する必要があります。Python 3.5 - テキストファイルを生成する

サンプル出力

Entering six tests and scores 
Enter test name objects 
Enter % score on this test 88 
Enter test name loops 
Enter % score on this test 95 
Enter test name selections. 
Enter % score on this test 86 
Enter test name variables 
Enter % score on this test 82 
Enter test name files 
Enter % score on this test 100 
Enter test name functions 
Enter % score on this test 80 
File was created successfully 

は、その後、私は読んで、前のプログラムからtests.txtを処理するためにループを使用して別のプログラムを書く必要があります。プログラムは、テスト名とスコアを示す2列のテーブルを出力する必要があります。表が完成したら、小数点以下1桁まで正確に表示する必要があります。

サンプル出力

Reading six tests and scores 
TEST   SCORE 
objects  88 
loops   95 
selections 86 
variables  82 
files   100 
functions  80 

Average is 88.5 

これは、これまでと私がしなければならなかったものを超えています。これまでのところ、私の仕事はとても簡単でした。私はPython 3.5を使用しているので、私は新しい関数を使うことはできません。これまでのところ、私はtxtのドキュメントを生成するための最初のプログラムのためにこれを持っている

:PROGRESS WITH

EDIT(メイン

def main(): 
myfile = open('test.txt', 'w') 
test = input('Please enter test name or enter to quit ') 

while test != '': 
    score = int(input('Enter % score on this test ')) 
    myfile.write(test + '\n') 
    myfile.write(str(score) + '\n') 
    test = input('Please enter test name or enter to quit ') 

myfile.close() 
print('File was created successfully') 

)を

、第2のプログラムは次のようになりますし、おおよその形状です:

def main(): 
f = open('test.txt', 'r'); 
text = f.read(); 
f.close() 

メイン()

誰かが私にある方向を教えてくれますか?ありがとう!

答えて

1

パート1

あなたがそうのようなファイルに書き込むことができます。それが存在し、すべてのコンテンツを上書きしない場合は、ファイルを作成します

with open('/path/to/your/file.name', 'w') as f: 
    f.write('text') 

'w''a'に置き換えると、ファイルの末尾に追加されます(改行を自分で追加する必要があります)。

あなたのプログラムの冒頭で、あなたがf = open('/path/to/your/file.name', 'w')を行い、その後、最後にf.close()を行う場合は、書き込まれます間のすべてのコンテンツ(出力ストリームがフラッシュされて閉じられるまでつまり、それは以前write操作を上書きしません)。例えば

f = open('file.txt', 'w') 
f.write('hello, ') 
f.write('world!\n') 
f.close() 

hello, world!

第2

リストの平均にfile.txtの内容が設定される要素の数で割ったその要素の合計です。文字通りlambda array: sum(array)/len(array) ...

パート3

あなたがf = open('file.txt', 'r'); text = f.read(); f.close()を行うことができ、ファイルから読み込むには。readlineは、ファイル全体ではなく行を読み取ります。

実際のプログラムそのものを書くことは、この時点からかなり些細なことになるはずです。実際のコーディングは残しておきます。これは、私にとっては宿題のように思えます。

+0

'f'は通常何を意味しますか?私は以前にそれを使用する必要はなかった。 –

+0

@GoldDial 'f'は単なる変数名です...ここで' f'を使って 'file'(あるいはむしろ' _io.TextIOWrapper')を表します。 – HyperNeutrino

関連する問題