2017-06-25 2 views
-2

Ich bin neu in Programmiersprachen und lernen Python. Zuallererst, wie lerne ich die Python-Programmiersprache effektiv und schneller?Wie wird die höchste Punktzahl in diesem Beispiel gedruckt?

Zweitens, könnten Sie bitte helfen, das Programm unten auszuführen? Jede Rückmeldung wird sehr geschätzt. Prost.

-Code

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) 

Ergebnis:

5,0

7,5

6,75

4,0

Traceback (jüngste nennen la st): Datei "D: /Study/Python/page116.py", Zeile 16, in höchste = max (results_as_float) ValueError: Konnte String in Float nicht konvertieren: '.'

Antwort

0

Antwort auf die erste Frage hängt davon ab, wie Sie am besten lernen, lernen verschiedene Menschen neue Konzepte effektiv und schneller auf unterschiedliche Weise. Aber im Allgemeinen Probleme wie diese zu begegnen, und unter Bezugnahme auf die official documentation, um die Python-integrierte Bibliotheksfunktionen zu lernen, dann andere Bibliotheken von Drittanbietern, ist in der Regel der beste Weg, um Python und andere Programmiersprachen zu lernen.

Wie für das Problem, es stammt aus der Handhabung, wie Python liest Text-Dateien. Alles wird als Strings gelesen (str Typ). Dann beginnen die Fehler mit der Zeile results += each_line. Sie haben ursprünglich in Zeile 3 results als list: results = [] definiert, aber results += each_line führt die Verkettung in die Liste unter Verwendung der Zeichenfolgen jeder Zeile durch, einschließlich der Zeichensetzung und der Zeilenvorschubzeichen ('\n'). so endet results schließlich nach oben wie die Suche:

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

das ist wahrscheinlich nicht das, was Sie in Ihrer Liste der float Zahlen wollen. Also, dies zu beheben, müssen wir jede Zeile Python aus der Datei liest reinigen und die Zeilenumbrüche abzustreifen, bis wir nur eine Liste von Zahlen als „Strings“ haben, dann wenden Sie die map() Funktion dieser Liste:

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) 

Wird jetzt drucken:

5.0 

7.5 

6.75 

4.0 
Highest score is : 7.5 

Hoffnung, das hilft.

Verwandte Themen