Wer versteht den mir unbekannten Ausdruck?

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
Benutzeravatar
Empi
User
Beiträge: 26
Registriert: Montag 29. März 2010, 14:05

Hallo zusammen.

In einem Beispielprogramm bin ich über folgenden Ausdruck gestolpert:

Code: Alles auswählen

ergebnis = |= 1 << (zahl * 2)
Kann mir jemand erklären was dieser Ausdruck bedeutet? :K
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

In python ?

Sieh mal hier nach, aber so wie das da steht funktioniert das nicht.

http://docs.python.org/library/stdtypes.html
Zuletzt geändert von Xynon1 am Mittwoch 27. Oktober 2010, 12:01, insgesamt 1-mal geändert.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Einen SyntaxError.

`|=` ist bitwise-or mit Zuweisung, d.h. die linke Seite wird mit der rechten Seite bitweise ge-or-t und danach an die linke Seite zugewiesen, das schliesst sich aber mit der Zuweisung aus! (darum der SyntaxError)

`<<` ist ein bitweises linksshiften.
Benutzeravatar
Empi
User
Beiträge: 26
Registriert: Montag 29. März 2010, 14:05

Stimmt, das mit der Zuweisung ist ein Tippfehler meinerseits :oops:
Danke für die (extrem schnelle) Erklärung
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Eins hab ich noch vergessen: Waehrend das in bspw in C recht schnell is, gilt die "Garantie" in Python afaik nicht mehr, Tricks Multiplikation durch Shiften abzubilden sollte man also besser unterlassen, zumal es der Lesbarkeit abtraeglich ist.
Das sollte man also wirklich nur machen, wenn man tatsaechlich bitweise arbeiten will.

Hier uebrigens das relevante Stueck der Library Reference: http://docs.python.org/library/stdtypes ... eger-types
Antworten