loop funktion

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
dakila
User
Beiträge: 2
Registriert: Mittwoch 9. März 2022, 00:03

Moin zusammen,

ich sitze jetzt schon paar Stunden daran und versuche die loop Funktion richtig zu nutzen, allerdings ist das irgendwie ein schwieriges Unterfangen für mich..
Folgendes Problem habe ich:


Code: Alles auswählen

for t1 in range (1,29,+2):
      for i1 in range (1,30):
             if mt[t1] == lt[i1]:
                   t1n = lt[i1]
                        st[t1] = 0
Sobald ich das starte, wird mt[t1] nicht als zb mt1 erkannt sondern nur als mt, das selbe geschieht auch mit lt.
Ich denke, irgendwo habe ich einen Denkfehler und würde mich über jede Hilfe freuen :)

Besten Dank im Voraus!
Sirius3
User
Beiträge: 18279
Registriert: Sonntag 21. Oktober 2012, 17:20

Du führst hier ohne Erklärung etliche Variablen ein, und beschreibst auch nicht, was Dein Ziel ist.
Die Einrückungen stimmen nicht, was das Verstehen des Codes nochmals erschwert.
Eingerückt wird immer mit 4 Leerzeichen pro Ebene, nicht mal 6 und mal 7.

Erster Schritt wäre, sprechende Variablennamen zu verwenden. Was ist mt oder lt oder st? Woher kommen die, was ist deren Inhalt?
Warum haben t1 und i1 jeweils eine 1? Was ist der Sinn davon?
Im ganzen Code kommt kein `mt1` vor. Ohne dass das definiert wird, kann es natürlich auch nicht erkannt werden.

Erkläre zuerst Deine Aufgabe, die Du lösen möchtest, dann liefere ein Codebeispiel, das alles enthält, was zum Verstehen gebraucht wird, inklusive sprechender Variablennamen, und poste eventuell auftretende Fehlermeldungen.
dakila
User
Beiträge: 2
Registriert: Mittwoch 9. März 2022, 00:03

Code: Alles auswählen

(Variablen die sich nicht ändern)
lt1 = "name1"
....
lt7 = "name7"
lt10 = "name10"

(Variablen die sich immer wieder ändern)
mt1 = "name7"
....
mt10 = "name3"

te1 = ""

for i1 in range (1,10):
    if mt1 == lt[i1]:
        te1 = lt[i1]

print (te1)
Mein Problem ist, wie kann ich die loop Funktion so nutzen, dass die Variablen mit lt[i1] als lt1 bis lt10 durchlaufen und so mit mt1 verglichen werden :?:
In diesem Fall müsste mt1 bei lt7 erkennt, dass der Name identisch ist und somit auch mit te1 "name7" ausgeben.
Geht so aber nicht, da ich wohl irgendwas absolut falsch mache, nur weiß ich nicht genau wo mein Denkfehler liegt. Eine Idee?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wenn du Variablen durchnummerierst, willst du eigentlich eine Datenstruktur, wahrscheinlich eine Liste. Auf die kannst du auch mit dem []-operator zugreifen.

Und eine wirkliche Erklärung, was das Programm macht, ist das auch nicht.
Benutzeravatar
ThomasL
User
Beiträge: 1379
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Ich habe mal versucht deine Erklärung umzusetzen.

Code: Alles auswählen

KONSTANTEN = ["name1", "name2", "name3", "name4", "name5", "name6", "name7", "name8", "name9", "name10"]

variable_namen = ["name7", "name3", "hans", "fritz", "egal", "was", "weiss", "ich"]

for name in variable_namen:
    if name in KONSTANTEN:
        print(name)
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Antworten