Index und Wert

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
Bykl
User
Beiträge: 92
Registriert: Donnerstag 5. Oktober 2017, 17:57

Hallo, weil ich das immer verwechsle, hab ich mal ein kleines Tool geschrieben, um das zu eruieren, was ich falsch denke. Leider macht auch das nicht, was ich denke, dass es tun müsste. Also denke ich falsch!

Code: Alles auswählen

code=[0, 1, 1, 0,1,1,0]
for t in code:
    print("t",t,"t+2",t+2,"c[t]",code[t],"c[t+2]",code[t+2])
    
Ausdruck:
t: 0 t+2: 2 c[t]: 0 c[t+2]: 1
t: 1 t+2: 3 c[t]: 1 c[t+2]: 0
t: 1 t+2: 3 c[t]: 1 c[t+2]: 0
t: 0 t+2: 2 c[t]: 0 c[t+2]: 1
t: 1 t+2: 3 c[t]: 1 c[t+2]: 0
t: 1 t+2: 3 c[t]: 1 c[t+2]: 0
t: 0 t+2: 2 c[t]: 0 c[t+2]: 1
Das Falsch ist die Spalte 4, also ich erwarte da die Folge.[1,0,11,0...] und dann müsste was kommen, was er rein macht, wenn ListÜberlauf ist....In der Realität dreht er aber die Werte von code[t] in ihr einzigen Gegenteil. Was denke ich falsch bei Index[t+2]. Ich denke, das steht dann, wenn t =1 code[3] drin. Kann er denn nicht den Index in der eckigen Klammer hochaddieren?

Ich denk so: Wenn ich den ersten Wert eine Liste haben möchte, schreibe ich Liste[0]. Der Index zählt also die Listen Glieder durch, und versieht die Stellplätze mit einer Nummer!
Benutzeravatar
__blackjack__
User
Beiträge: 13077
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Bykl: Mir wird aus der Beschreibung weder so wirklich klar was Du eigentlich erwartest, noch warum. Also wo 1, 0, 1, 0, … her kommen soll, noch was „Listüberlauf“ sein soll.

Das ``code[t+2]`` (ich nehme mal an das meintest Du eigenlich bei „Index[t+2]“) auf ``code[3]`` hinaus läuft wenn `t = 1` ist, stimmt. Und das ist 0, weil an 4. Stelle in `code` eine 0 steht. Hättest Du da etwas anderes erwartet? Falls ja warum?

Wenn `t` als Index verwendet wird, dann wird je nach Wert von `t` immer auf das erste oder das zweite Element der Liste zugegriffen, also 0 und 1. Wenn `t+2` als Index verwendet wird, dann wird je nach Wert von `t` immer auf das dritte oder vierte Element zugegriffen, also 1 und 0 — also die umgekehrte Reihenfolge, weshalb da auch immer der gegenteilige Wert vom Zugriff mit unverändertem `t` bei heraus kommt.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Mit den gegebenen Daten kann t in deiner Schleife nur die Werte 0 oder 1 annehmen. Das sollte die hoffentlich klar sein, sonst hapert es schon an dieser Stelle.

Anschließend verwendest du t als Index. Mit den Werten 0 und 1 kann code[t] dann auch nur code[0] oder code[1] sein, also wiederum 0 oder 1. Und code[t+2] ist dann code[2] oder code[3]. Auch hier bekommst du nur 1 oder 0.
Antworten