Kopieren ist immer doof ;P Nur Spaß... Naja, Print is'n Statement, write'ne Funktion. In Python 3000 wird's sich ändern :3mathi hat geschrieben:Am Ende möchte ich für print und write die gleiche Art verwenden, um besser kopieren zu können.
Ergebnisausgabe in Datei
in python 3000 wird doch print auch zur ner funktion... also
Code: Alles auswählen
print ("so geht das dann")
#statt
print "so geht das jetz"
Jabber: tayce@jaim.at
@mathi: OMG wie bist Du denn auf die Backticks gekommen? Die sollte man nicht verwenden. Sie sind leicht zu übersehen, in manchen Schriftarten sehen sie aus wie normale, einfache Anführungsstriche ('), und sie sind schon seit Ewigkeiten "deprecated". Sie bewirken das gleiche wie die `repr()`-Funktion. Allerdings kann man das auch mit Zeichenkettenformatierung hinbekommen:
Letztendlich kann man das Runden aber auch mit '%.3f' als Platzhalter für die Formatierung machen. Die `round()`-Funktion bietet sich eher an, wenn man mit dem gerundeten Wert weiter rechnen möchte.
Code: Alles auswählen
f.write("text=%r kn\n" % round(c, 3))
die Backticks habe ich aus einem Tutorial
also würde ich folgendermaßen schreiben:
richtig?
also würde ich folgendermaßen schreiben:
Code: Alles auswählen
print('fcd= %0.2f N/mm^2' % fcd)
sichern.write('fcd=%0.2f N/mm^2\n' % fcd)
# bzw.
sichern.write('fcd='+repr(fcd)+' N/mm^2\n') # ohne Rundung
Bein ``print`` würde ich noch die Klammern weglassen.
Und das letzte kannst Du auch so schreiben:
Wobei man bei der `repr()`-Darstellung halt auch immer die Ungenauigkeiten von Fliesskommazahlen sieht. Ist in der Regel nicht so erwünscht.
Und das letzte kannst Du auch so schreiben:
Code: Alles auswählen
sichern.write('fcd=%r N/mm^2\n' % fcd)
Bei Python3000 wird sich soviel ändern, das's sich nicht lohnt es schon jetzt zu tun. Also halte dich lieber an das jetzige, Software zum portieren wird es dann auch geben.mathi hat geschrieben:Ich möchte bei "print" deshalb die Klammern lassen, weil Python 3000 ja nicht mehr print sondern print() kennen wird!
Falsch?
@mathi: Wenn Du dann mehrere Ausgaben machen willst, geht das mit den Klammern nicht mehr, weil die dann ein Tupel erzeugen. In Python <3.0 ist ``print`` nun einmal eine Anweisung und keine Funktion. Klammern erwecken beim lesen nur einen falschen Eindruck.
Für die Umsetzung von Python 2.x nach Python 3.0 wird ein Skript geschrieben, dass möglichst viele Veränderungen automatisch macht und mit ``print`` kann das Programm umgehen. Von folgenden Varianten kannst Du nur die erste auch in Python 2.x in Klammern setzen, die anderen *müssen* weiterhin ohne Klammern geschrieben werden:
Wenn Du jetzt schon mit den Klammern anfängst, hast Du also einen Mix in alten Programmen ohne einen wirklichen Grund oder Mehrwert.
Für die Umsetzung von Python 2.x nach Python 3.0 wird ein Skript geschrieben, dass möglichst viele Veränderungen automatisch macht und mit ``print`` kann das Programm umgehen. Von folgenden Varianten kannst Du nur die erste auch in Python 2.x in Klammern setzen, die anderen *müssen* weiterhin ohne Klammern geschrieben werden:
Code: Alles auswählen
print 'hallo'
print 'Mein Name ist', name, '. Wie heisst Du?'
print >>error_log, 'warning:', reason