2017-06-25 6 views
-2

私はプログラミング言語やPythonを学ぶのが初めてです。まず第一に、どのようにPythonプログラミング言語を効果的かつ迅速に学ぶことができますか?この例の最高得点を印刷するにはどうすればよいですか?

第2に、以下のプログラムを実行してもらえますか?どんなフィードバックも高く評価されます。乾杯。

コード

highest = 0 
lowest = 0 
results = [] 

result_f = open("results.txt") 
for each_line in result_f: 
print(each_line) 
results += each_line 
result_f.close() 

results_as_float = map(float, results) 
highest = max(results_as_float) 
print("Highest score is : " , highest) 

結果:

5.0

7.5

6.75

4.0

トレースバック(最新のコール・ラst:) ファイル "D:/Study/Python/page116.py"、行16、 最高= max(results_as_float) ValueError:文字列をfloatに変換できませんでした: '。

答えて

0

最初の質問への回答は、さまざまな方法で効果的かつ迅速に新しい概念を学ぶ、最良の学習方法によって異なります。しかし、一般的にこのような問題に遭遇し、official documentationを参照すると、Pythonの組み込みライブラリ関数、そして他のサードパーティ製のライブラリを学ぶことは、通常、Pythonや他のプログラミング言語を学ぶ最も良い方法です。

この問題は、pythonがテキストファイルをどのように読み込むかを処理することから発生します。すべてが文字列として読み取られます(strタイプ)。エラーは、results += each_line行から始まります。最初に3行目のresultslistresults = []と定義されていましたが、句読点や改行('\n')文字を含む各行の文字列を使用してresults += each_lineがリストに連結されます。

あなたが float番号のリストに望むものはおそらくない

results = ['5', '.', '0', '\n', '\n', '7', '.', '5', '\n', '\n', '6', '.', '7', '5', '\n', '\n', '4', '.', '0']

:そうresultsは最終的にのように見える終わります。だから、これを修正するために、我々は、各ラインのpythonをきれいにする必要があるファイルから読み込んで、我々は唯一の「文字列」として番号のリストを持ってまで、改行文字を取り除き、そのリストにmap()機能を適用します。

highest = 0 
lowest = 0 
results = [] 

result_f = open("results.txt") 
for each_line in result_f: 
    print(each_line.strip()) 
    results.append(each_line.strip()) 
result_f.close() 

results = filter(None, results) 

results_as_float = map(float, results) 

highest = max(results) 
print("Highest score is : " , highest) 

今すぐ印刷されます:

5.0 

7.5 

6.75 

4.0 
Highest score is : 7.5 

希望します。