[Python-de] Output Integer-Long ohne L

Georg Mischler schorsch at schorsch.com
Sun Dec 12 06:43:28 EST 1999


> u.a. haben wir folgendes Programm erstellt:
> 
> j = 2L
> for i in range(128):
>     print "2 hoch " , i, " ist gleich ", 2**i
> 
> Leider kommt auch das "L" am Ende, was nicht die Optik des Outputs 
> "passt". Gibt es einen Output-Format-Befehl, der das L unterdrückt?

Hmmm... ich haette jetzt spontan vermutet, dass die
(in diesem Fall interne) Unterscheidung zwischen __repr__()
und __str__() dafuer zustaendig waere, es kommt aber bei
beiden (also bei `2L` und str(2L)) immer das gleiche raus.

Wenn man das richtig hoch haengen will, dann sieht das fast
nach einem Aenderungsvorschlag fuer Python 1.6 aus.
Kurzfristig, und wenn du sicher weisst, dass immer ein
Longint herauskommt (ist bei deinem Beispiel der Fall),
dann kannst du dir das leicht selber basteln. Einfach erst
in einen String umwandeln, und dann die letzte Stelle
wegschneiden:
 
>     print "2 hoch " , i, " ist gleich ", str(2**i)[:-1]

Vielleicht hat ja eure naechste Lektion passenderweise
das sequence slicing zum Thema... ;)


Viels Spass!

-schorsch

-- 
Georg Mischler  --  simulation developper  --  schorsch at schorsch.com
+schorsch.com+  --  lighting design tools  --  http://www.schorsch.com/






More information about the Python-de mailing list