out of range

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
werhei14
User
Beiträge: 14
Registriert: Montag 10. April 2017, 20:35

Hallo zusammen,

wer findet den Fehler?

Gruß
Werner
------------------------------
ProzSaetze1=[0,33.9,19.94] # Liste mit 3 Prozentsätzen
ProzSaetze2=[0,54.27,21.29] # Liste mit 3 Prozentsätzen

Diff_Prozent_auf_1_bezogen=[] # Array eingerichtet

Diff_Prozent_auf_1_bezogen[1]=(ProzSaetze1[1]-ProzSaetze2[1])*100/ProzSaetze1[1] #Differenz zwischen 33.9 und 54.27 -- mal 100 -- geteilt durch Grundwert 33.9

print(Diff_Prozent_auf_1_bezogen[1])


Fehlermeldung:
Traceback (most recent call last):
File "C:/Users/scott/Desktop/Listen_Test1.py", line 6, in <module>
Diff_Prozent_auf_1_bezogen[1]=(ProzSaetze1[1]-ProzSaetze2[1])*100/ProzSaetze1[1] #Differenz zwischen 33.9 und 54.27 -- mal 100 -- geteilt durch Grundwert 33.9
IndexError: list assignment index out of range
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Neben der Tatsache das Code in Code-Tags gehört, damit er lesbar ist? Oder der völlig sinnlosen Verwendung einer Liste, wo es eine normale Variable auch täte? Oder der nicht-Verwendung von append um ein Element an diese nutzlose Liste anzuhängen?

Letzteres ist das, was du nach ignorieren der anderen Hinweise tun musst.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@werhei14: was hast Du unternommen, den Fehler selbst zu finden?
Benutzeravatar
pixewakb
User
Beiträge: 1412
Registriert: Sonntag 24. April 2011, 19:43

Kannst du damit etwas anfangen? Ich habe mal versucht deinen Quellcode zu verstehen.

Code: Alles auswählen

values_1 =[0, 33.9,  19.94] 
values_2 =[0, 54.27, 21.29]

result = (max(values_1) - max(values_2)) / max(values_1) * 100

print(result)
Mit max() kann man das größte Element aus einer Liste erhalten, mit min() kann man das kleinste Element aus einer Liste erhalten. Die Hinweise meiner Vorredner beachten. Eine Liste für die Ergebnisse macht nur Sinn, wenn du die beiden Listen durchlaufen und jeweils für ein Listenpaar ein Ergebnis berechnen willst. Willst du das?
werhei14
User
Beiträge: 14
Registriert: Montag 10. April 2017, 20:35

Hallo Leute,

geht mit mir nicht zu hart ins Gericht!

Ich bin VB-ler (deshalb in Python etwas wacklig)
und benutze Python, um mein kleines
VB-Statistik-Programm zu prüfen.

Das waren jetzt für mich erste Schritte,
um zu sehen, wie Listen in Python arbeiten.

Ich bin jetzt dabei meine Ergebnisse aus VB
in eine CSV-Datei zu schreiben, um diese
in Python zu öffnen und die Ergebnisse zu
prüfen.

Die Funktion max(value) in deinem Code-Beispiel ist
interessant pixewakb.

Gruß
Werner
Benutzeravatar
pixewakb
User
Beiträge: 1412
Registriert: Sonntag 24. April 2011, 19:43

Bei mir im Fußbereich ist das deutschsprachige Python-Tutorial verlinkt - Du solltest es einfach mal begleitend durcharbeiten, wenn du Python lernen willst. Mit dem openbook Python (im Forum nicht gut gelitten) habe ich gute Erfahrungen gemacht, einfach mal googlen.
werhei14
User
Beiträge: 14
Registriert: Montag 10. April 2017, 20:35

Danke für den Link pixewakb !
Antworten