zwei Konsolen! Geht das?

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.
Benutzeravatar
LP640
User
Beiträge: 142
Registriert: Dienstag 29. September 2009, 14:40

so ich bin jetzt so weit mit meiner "Tabelle":

Code: Alles auswählen

from xturtle import*
import easygui as g
funk1="x**2+1"
funk2="x**3-2"
funk3="x**4-1"
funk4="-x**2"
funk5="2"
start=-3
stop=3
step=0.01
x=start
while x<=stop:
    y=x**2+1
    goto(x*50,y*50) 
    x=x+0.1 

def kogi():
    a=start
    while a<=stop:
        yield a
        a=a+step
        

werte=[(x,eval(funk1),eval(funk2),eval(funk3),eval(funk4),eval(funk5))for x in kogi()]
text=g.codebox("Tabelle","bbbbbbbbb","\n".join("x:"+str(x)+"     y1:"+str(y1)+"          y2:"+str(y2)+"          y3:"+str(y3)+"          y4:"+str(y4)+"          y5:"+str(y5) for x,y1,y2,y3,y4,y5 in werte))
ich hab ein paar sachen leicht verändert, in der tabelle befinden sich nun ein x wert und fünf y werte
logischerweise sind diese werte zum beispiel von y3 nicht genau untereinander, da die zahlen mit ihren nachkommastellen ja nicht immer gleich lang sind.
gibt es trotzdem eine möglichkeit dies zu umgehen und die jeweiligen werte genau untereinander zu ordnen??? :?:

mfg
LP640
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

LP640 hat geschrieben:gibt es trotzdem eine möglichkeit dies zu umgehen und die jeweiligen werte genau untereinander zu ordnen??? :?:
Sieh dir meinen Code an, dann weißt du wie es geht.
Benutzeravatar
LP640
User
Beiträge: 142
Registriert: Dienstag 29. September 2009, 14:40

tut mir echt leid, ich bin wahrscheinlich zu ****, um das zu erkennen :?
kannst du mir auf die sprünge helfen???

mfg
LP640
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Du solltest grundsätzlich immer String-Formatierung anstatt String-Konkenation mit +-operator verwenden.

In diesem Fall könnte dir die Stringformatierung auch konkret weiterhelfen. Du kannst z.B. immer gleich viele Nachkommastellen pro Wert darstellen, das geht so:

Code: Alles auswählen

In [1]: a = 1.23456

In [2]: '%.2f' % a
Out[2]: '1.23'

In [3]: '%.3f' % a
Out[3]: '1.235'
Wie du siehst wird dabei auch richtig gerundet.

Und verwende dann Tabs (``\t``) und nicht mehrere Spaces für die Abstände, das ist viel eleganter.
Benutzeravatar
LP640
User
Beiträge: 142
Registriert: Dienstag 29. September 2009, 14:40

vielen dank ice2k3
ich hab nur vorher nie mit diesen %-Dingern oder wie das heißt
gearbeitet.
gibt es dazu vielleicht irgendwo eine beschreibung oder ein tutorial zu???

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

LP640 hat geschrieben:gibt es dazu vielleicht irgendwo eine beschreibung oder ein tutorial zu???
Dafür gibt es die Dokumentation die auch gleich die neue String Formatting Methode beschreibt.
Benutzeravatar
LP640
User
Beiträge: 142
Registriert: Dienstag 29. September 2009, 14:40

Du solltest grundsätzlich immer String-Formatierung anstatt String-Konkenation mit +-operator verwenden.

In diesem Fall könnte dir die Stringformatierung auch konkret weiterhelfen. Du kannst z.B. immer gleich viele Nachkommastellen pro Wert darstellen, das geht so:
Code: (Python)
1
2
3
4
5
6
7
In [1]: a = 1.23456

In [2]: '%.2f' % a
Out[2]: '1.23'

In [3]: '%.3f' % a
Out[3]: '1.235'

Wie du siehst wird dabei auch richtig gerundet.

Und verwende dann Tabs (``\t``) und nicht mehrere Spaces für die Abstände, das ist viel eleganter.
ja das sieht damit schon besser aus allerdings sind die werte nicht immer genau untereinander, da sich auch die stellen vor dem komma voneinander unterscheiden.
gibt es dafür eine lösung???

mfg
LP640
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

LP640 hat geschrieben:ja das sieht damit schon besser aus allerdings sind die werte nicht immer genau untereinander, da sich auch die stellen vor dem komma voneinander unterscheiden.
gibt es dafür eine lösung???
Ja.
Und wo du suchen musst, ist dir schon mitgeteilt worden.
Benutzeravatar
LP640
User
Beiträge: 142
Registriert: Dienstag 29. September 2009, 14:40

hallo
wenn du die beiden links von DasIch meinst, die hab ich mir beide bereits durchgelesen, konnte jetzt aber nichts finden, was mein problem löst.

mfg
LP640
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

LP640 hat geschrieben:wenn du die beiden links von DasIch meinst, die hab ich mir beide bereits durchgelesen, konnte jetzt aber nichts finden, was mein problem löst.
Meinte ich. In der Tat täten ein paar Beispiele den dortigen Erklärungen gut. Nun denn:

Code: Alles auswählen

>>> a, b = 23.123, 0.1231334
>>> print "%8.5f\n%8.5f" %(a,b)
23.12300
 0.12313
Benutzeravatar
LP640
User
Beiträge: 142
Registriert: Dienstag 29. September 2009, 14:40

vielen dank numerix

mfg
LP640
Antworten