Seite 1 von 1

Rätsel

Verfasst: Mittwoch 2. September 2020, 19:36
von Bykl
Hallo Freunde, was kann man machen?

Code: Alles auswählen

 zzo=zzgs_zähler[0]-zzgs_zähler[nt]
Wenn ich in die eckigen Klammern eine 0 mach, (Index für erste Stelle der Liste) funktioniert es, wenn ich aber n reinmache, funktioniert es nicht, obwohl n mit beginnt.

Was kann das sein?

Re: Rätsel

Verfasst: Mittwoch 2. September 2020, 19:43
von sls
Zeig doch mal den ganzen Code. Das oben kann ja noch nicht alles sein.

Re: Rätsel

Verfasst: Mittwoch 2. September 2020, 19:56
von __blackjack__
Was heisst denn ”funktioniert es nicht”? Und was soll ”obwohl n mit beginnt” bedeuten? Der Satz ist irgendwie nicht vollständig.

`zzo` und `zzgs_zähler` sind auch besch…eidene Namen.

Re: Rätsel

Verfasst: Mittwoch 2. September 2020, 20:13
von Bykl
Gemeint ist, obwohl n mit 0 beginnt
ich hab den Eindruck Multiplikation mit Null ist problematisch ....

Re: Rätsel

Verfasst: Mittwoch 2. September 2020, 20:25
von __blackjack__
Der Betreff dieses Themas ist sooo passend. Nicht nur das der Code im ersten Beitrag ein Rätsel ist, und wir rätseln dürfen sie sich das nicht-funktionieren wohl äussern mag, jetzt auch noch eine Bemerkung zu Multiplikation mit Null, wo weit und breit nix multipliziert wird. 🤔

Also für mich funktioniert das:

Code: Alles auswählen

zzgs_zähler = [42, 23, 4711]
nt = 1
zzo = zzgs_zähler[0] - zzgs_zähler[nt]
assert zzo == 19

Re: Rätsel

Verfasst: Mittwoch 2. September 2020, 21:33
von Bykl
Danke, man muß sicherstellen, daß der Index nicht durch eine Subtraktion aus Versehen minus wird, oder größer wird, als die Liste lang ist, dann bekommt man nämlich Fehlermeldungen.... und er muß int sein. Danke an alle Beitragenden!

Re: Rätsel

Verfasst: Donnerstag 3. September 2020, 08:30
von tonikae
Tipp!
Wenn du die Liste einfach nur abklappern wilst, das kann man auch so

Code: Alles auswählen

for zzgs_zähler in (42,23,4711):
     print(zzgs_zähler)
oder wenn die Liste länger ist

Code: Alles auswählen

zzgs_liste = [42, 23, 4711]
for zzgs_zähler in (zzgs_liste):
     print(zzgs_zähler)
Dann musst du überhaupt nichts indizieren und der Index kann auch nicht
aus dem Ruder laufen. Denn bei jedem Schleifendurchlauf kommt einfach
nur das nächste Listenelement.Geht auch mit Strings

Re: Rätsel

Verfasst: Donnerstag 3. September 2020, 08:55
von einfachTobi
Wobei die Klammern nach dem `in` im zweiten Beispiel weggelassen werden sollten:

Code: Alles auswählen

zahlen = [0, 1, 23, 504, 293]
for zahl in zahlen:
    print(zahl)
Und eine Multiplikation mit Null ist sowohl bei Listen, als auch bei Zahlen unproblematisch:

Code: Alles auswählen

wilde_werte = [2, 0.23, "foo", 0.42, 5, "bar"]
print(wilde_werte)
print(wilde_werte * 2)
print(wilde_werte * 0)
print(4.0 * 0)
Der obligatorische Hinweis: Verwende keine Abkürzungen für Variablennamen. Der `zzgs_zähler` ist ja vermutlich auch kein Zähler, sondern eine Liste oder ein Tupel. Die Datentypenbezeichnungen haben aber auch nichts im Namen verloren. Benenne die Variable nach ihrem Inhalt.

Re: Rätsel

Verfasst: Donnerstag 3. September 2020, 12:18
von tonikae
Du kapierst aber schon noch, dass das nur ein Beispiel ist, dass sich am Beispiel des OP
orientiert(und der Einfachheit halber nur übernommen wurde)...oder hängt das für dich auch zu hoch ?
btw.
Wenn du keine wirklich konstruktiven Beiträge leisten kannst, wäre es vielleicht besser
nichts zu schreiben.

Re: Rätsel

Verfasst: Donnerstag 3. September 2020, 12:24
von __deets__
Der Beitrag von einfachTobi ist konstruktiv. Du bist lediglich kritikunfähig, wie sich wiederholt zeigt 🤷🏼‍♂️

Re: Rätsel

Verfasst: Donnerstag 3. September 2020, 12:43
von Jankie
@tonikae:

In deinem ersten Beispiel oben hast du gar keine Liste, sondern ein Tupel.
Es geht sogar nicht nur mit Strings und Zahlen, sondern mit jedem Datentyp.