Sirius3 hat geschrieben: Mittwoch 12. August 2020, 16:28
Der schlechte Variantenname ist i. Denn i steht normalerweise für Index. Ist es hier aber gar nicht, sondern es ist irgendeine seltsame Zuordnung. Und einen Index braucht man in Python ganz selten. Wenn die komischen Zahlen auch Indizes in eine andere Tabelle sind, dann ist das schon der Fehler. Also anstatt hier Funktionen zu nennen, die die Frage des TE beantworten, ohne die Hintergründe zu kennen, sollte man nach dem Kontext fragen.
@maowmaow: was willst du eigentlich machen? Woher kommen die Zahlen? Was ist der Sinn der Schleife?
Huhu du. Also im Grunde schreibe ich gerade mein allererstes kleines Programm. Ich hab erst angefangen mit Python und hab mir bloß ein paar Tutorials angeschaut, aber mir war nach dem "Was ist ein String" Video etwas langweilig und wollt einfach mal rumprobieren. Drum hab ich angefangen mir eine kleine Aufgabe zu stellen die da lautet:
Gegeben seien bestimmte chemische Stoffe, welchen für bestimmte Grenzüberschreitungen, gewissen Zuordnungswerten beigemessen wird. Das Programm enthält eine einfache Eingabe, wo der Nutzer eben gefragt wird wie hoch für Stoff X irgend eine Konzentration ist. Das passiert nun auch für andere Substanzen. Anschließend sollen nur für diejenigen Stoffe mit den höchsten Zuordnungswerten die Namen der Stoffe ausgegeben werden. Da ich erstmal nicht wusste wie man das am besten umsetzt war eben die erste Idee "mach die Schwermetalle nach einander; ist er mit dem ersten fertig, kommt je nach zuordnung ne 0, 1, 2 oder drei in die Liste (ander Stelle hab ich z.B. .append kennen gelernt). Der macht das Jetzt für alle Schwermetalle und dann hast du eben eine Liste mit [3,0,0,0,0,03] oder was auch immer - wo wir dann bei meiner kleinen for schleife ankamen ^^. Also das Programm ist für mich ne Art Lernprozess; das ist auch der Grund, wies ich da nicht den ganzen Quellcoode reinpacke, weil da teils Dinge drin sind, mit denen ich irgendwas getestet habe etc. und vermutlich mobbt ihr mich dann und bewerft mich mit alten Computerkram
Für so Profis wie euch sicher trivial, aber so als Neuling gar nich so leicht. Ich nutz halt diese Aufgabe um etwas in die Grundlagen einzusteigen. Wie funktioniert dieses if elis else, was macht eine for schleife etc. Das hier war meine erste for-Schleife sozusagen. Ich hab den Fred gemacht um da zu einem Ergebnis zu kommen, wo ich glaube, dass es mir weiter hilft. Ich wollte weniger damit erreichen, dass mir noch wer hier das fertige Programm hinklatscht, wobei es gleichzeitig sicher gut wäre, wenn mir mal wer sagt, wie ich das vereinfachen kann. Kleiner Ausschnitt von dem was da passiert (will jez mal net ausschließen ob da nich was dabei ist, was vllt so erstmal nicht ersichtlich gebraucht wird; bestimmte Parameter hatte ich erstmal drin weil ich damit ggf. noch was vor hatte bzw. sind sie noch Teil meines Denkprozesses) Eines weiß ich schonmal z.B. nicht: Muss ich denn vorher Listen erstellen? Vermutlich Unsinn oder? Und schickt es sich jetzt, für jedes Schwermetall so einen langen Block an if/elif etc. zu schreiben oder kann man das nicht wesentlich eleganter machen? Das Problem wäre hierbei vielleicht, dass jede Spezies (also in dem Fall Schwermetalle), andere Grenzwerte hat:
Code: Alles auswählen
print("Geben Sie die Gehalte der Schwermetalle [mg/kg] an:")
eingabe_As = input("Arsen [As]: ")
z_sm=[] #
depV_sm=[] #
g_abfall=[] #
g_abf=[] # ~
#As-Gw
if int(eingabe_As) <= 10:
z_as=0
z_sm.append(0)
g_abfall_as=0
elif int(eingabe_As) >10 and int(eingabe_As) <= 450:
z_as=1
z_sm.append(1)
g_abfall_as=0
elif int(eingabe_As) >450 and int(eingabe_As) <=1500:
z_as=2
z_sm.append(2)
g_abfall_as=0
elif int(eingabe_As) >1500 and int(eingabe_As) <=5000:
z_as=3
z_sm.append(3)
depV_as=1
depV_sm.append(1)
g_abfall_as=1
g_abfall.append("As")
elif int(eingabe_As) >5000 and int(eingabe_As) <=10000:
z_as=3
z_sm.append(3)
depV_as=2
depV_sm.append(2)
g_abfall_as=1
g_abfall.append("As")
elif int(eingabe_As) >10000:
z_as=3
z_sm.append(3)
depV_as=3
depV_sm.append(3)
g_abfall_as=1
g_abfall.append("As")