Unterschiede IDE Ausgabe und Ausgabe in einer Linux Shell?

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
ascotlx
User
Beiträge: 2
Registriert: Freitag 15. Oktober 2010, 00:21

Hallo Forum,

wie ihr Euch denken kann bin ich neu hier und komme mit einer Verständnisfrage, dessen Antwort ich leider nicht "ersuchen" konnte.
Ich arbeite auf einem Mac, Linux und Windows Maschinen und dachte mir Python wäre genau das richtige um auf den unterschiedlichen Plattformen programmieren zu können. Nun gut.. zu meinem Problem

Unter OS X kann unter IDLE meinen CODE eingeben, übersetzen? lassen und dann wird das Ergebnis in einem separaten Fenster ausgegeben und zwar so wie es in meinen Begleitbuch und in einem Online Tutorial gelesen habe. Nun dachte ich mir ich nehme die paar Codezeilen und lasse das ganze unter Linux in einer Shell laufen. Nur ist die Ausgabe eine ganz Andere. Wie kann das sein? Unter OS X passiert das gleiche.

Das Script sieht wie folgt aus:

Code: Alles auswählen

#!/usr/bin/python
inch = 2.54

print("Bitte geben Sie den Inch-Wert ein:")

xfloat = float(input())
xcm = xfloat * inch

print(xfloat)
print(xfloat," Inch sind", xcm,"cm")
und produziert folgenden Output:

  • Bitte geben Sie den Inch-Wert ein:
    12
    12.0
    (12.0, ' Inch sind', 30.48, 'cm')
Was mache ich verkehrt? Wie muss die Print-Anweisung richtig aussehen?
Ich einiges probiert, aber nicht funktioniert.

Für jede Hilfe dankbar....

Gruss
ascotlx
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Ich bin etwas unsicher was du unter "verkehrt" verstehst aber ich nehme mal an beide Systeme nutzen unterschiedliche Python Versionen. Den von Python 2.x zu 3.x hat sich das Verhalten von input() und print wesentlich geändert. Um sicherzugehen solltest du die Ausgabe von diesem Skript auf beiden Maschinen vergleichen:

Code: Alles auswählen

#!/usr/bin/env python
# coding: utf-8
import sys

print(sys.version)
Unter Python 2.x sollte die Ausgabe in etwa so aussehen:

Code: Alles auswählen

dasich in ~
$ python version.py 
2.6.6 (r266:84292, Sep 15 2010, 16:22:56) 
[GCC 4.4.5]
Unter Python 3.x irgendwie so:

Code: Alles auswählen

dasich in ~
$ python3 version.py 
3.1.2 (release31-maint, Sep 17 2010, 20:27:33) 
[GCC 4.4.5]
Interessant ist hier die 2.6.6 bzw. die 3.1.2.

Ausgehend von deinem Code gehe ich mal davon aus dass dein Tutorial speziell für Python 3.x gedacht ist und nicht für Python 2.x. Dementsprechend solltest du darauf achten dass du entweder überall Python 3.x nutzt oder ein anderes Tutorial nutzt(solange es nicht aus dem Galileo Verlag kommt kann es so falsch nicht sein, ansonsten würde ich http://learnpythonthehardway.com/ empfehlen).
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Wie DasIch schon angedeutet hat: Du benutzt `print` falsch. Unter Python 2 ist `print` keine Funktion, sondern eine Anweisung.

Code: Alles auswählen

print xfloat,"Inch sind", xcm,"cm"
oder besser gleich mit Stringformatierung:

Code: Alles auswählen

print "%f Inch sind %f cm" % (xfloat, xcm)
Der Grund warum deine Ausgabe so aussieht ist, dass du ein Tupel konstruierst und das dann ausgibst. Haettest du noch nicht-ASCII-Zeichen in den Strings wuerde es noch eine Stufe "komischer" aussehen, denn wenn ein Container per `print` ausgegeben wird, listet er die `repr`-Darstellung seines Inhalts auf.
ascotlx
User
Beiträge: 2
Registriert: Freitag 15. Oktober 2010, 00:21

... vielen Dank für die Hilfe. Ich habe gerade gesehen, dass die verwendeten Versionen 2.0 und 2.6.1 sind und das Buch aber die Version 3 beschreibt. Ich wusste nicht, dass es solche Unterschiede gibt... aber ich arbeite dran. :D
Da ich aber auch auf alten Linux Versionen arbeite sollte ich mit wohl mit beiden Versionen vertraut machen.
Vielen Dank für den Linktipp... was ist mit dem Galileo Verlag?
Besten Dank nochmals
ascotlx
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

ascotlx hat geschrieben:Vielen Dank für den Linktipp... was ist mit dem Galileo Verlag?
http://bj.spline.de/python_openbook.html

Berichte von anderen Usern hier im Forum zeigen dass dies für andere Bücher von dem Verlag nicht anders aussieht. Prinzipiell würde ich also vom Galileo Verlag abraten, zumindest wenn es um Python geht.
Antworten