Seite 3 von 3
Verfasst: Dienstag 3. November 2009, 21:02
von LP640
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
Verfasst: Dienstag 3. November 2009, 22:12
von numerix
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.
Verfasst: Dienstag 3. November 2009, 22:22
von LP640
tut mir echt leid, ich bin wahrscheinlich zu ****, um das zu erkennen
kannst du mir auf die sprünge helfen???
mfg
LP640
Verfasst: Dienstag 3. November 2009, 23:44
von ms4py
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.
Verfasst: Mittwoch 4. November 2009, 06:46
von LP640
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
Verfasst: Mittwoch 4. November 2009, 07:16
von DasIch
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.
Verfasst: Mittwoch 4. November 2009, 14:07
von LP640
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
Verfasst: Mittwoch 4. November 2009, 14:56
von numerix
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.
Verfasst: Mittwoch 4. November 2009, 16:12
von LP640
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
Verfasst: Mittwoch 4. November 2009, 16:32
von numerix
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
Verfasst: Mittwoch 4. November 2009, 16:54
von LP640
vielen dank numerix
mfg
LP640