Code: Alles auswählen
from xturtle import*
x_werte=[]
y_werte=[]
x=-3
while x<=3:
y=x**2+1
x_werte.append(x)
y_werte.append(y)
goto(x*50,y*50)
x=x+0.1
for i, x in enumerate(x_werte)):
print"x: %s, y: %s" % (x, y_werte[i])
Code: Alles auswählen
from xturtle import*
x_werte=[]
y_werte=[]
x=-3
while x<=3:
y=x**2+1
x_werte.append(x)
y_werte.append(y)
goto(x*50,y*50)
x=x+0.1
for i, x in enumerate(x_werte)):
print"x: %s, y: %s" % (x, y_werte[i])
Code: Alles auswählen
from itertools import izip
...
for x,y in izip(x_werte, y_werte):
print"x: %s, y: %s" % (x, y)
Code: Alles auswählen
from xturtle import*
from numpy import arange
werte = []
for x in arange(-3, 3, 0.1):
y = x**2+1
werte.append((x, y))
goto(x*50, y*50)
for x, y in werte:
print "x: %s, y: %s" % (x, y)
Da hast du wohl recht.ice2k3 hat geschrieben:Das sieht nicht sehr elegant aus...
Code: Alles auswählen
def arange2(start, stop, interval):
i = start
while i <= stop:
yield i
i += interval
werte = [(x, x**2+1) for x in arange2(-3, 3, 0.1)]
Code: Alles auswählen
from xturtle import*
import easygui as g
x_werte=[]
y_werte=[]
x=-3
while x<=3:
y=x**2+1
x_werte.append(x)
y_werte.append(y)
goto(x*50,y*50)
x=x+0.1
###for i,x in enumerate(x_werte):
### print"x:"+str(x)+" y:"+str(y_werte[i])
text=g.codebox("aaaaaaaa","bbbbbbbbb",
"""x hat den wert: """+"###"+"""
x= y=
.............
.............""")
Code: Alles auswählen
text = '\n'.join('x: %s, y: %s' % (x,y) for x, y in werte)
Ich "kenne" EasyGui und es ist ekelig und überflüssig.LP640 hat geschrieben:allerdings möchte ich die tabelle nicht in dieser konsole, sondern mithilfe von easygui (ich hoffe, ihr kennt das) erstellen
Code: Alles auswählen
from frog import Pool, Frog
blatt = Pool(width=600, height=1000)
stift = Frog(blatt, visible=False)
# Punkte berechnen
punkte = [(.1*x,(.1*x)**2+1) for x in xrange(-30,30)]
# Parabel Zeichnen
faktor = 50
x0, y0 = punkte.pop(0)
stift.pos = faktor*x0, faktor*y0
for x,y in punkte:
stift.moveto(faktor*x, faktor*y)
# Wertetabelle anzeigen
stift.pos = -50,0
zeilenhoehe = stift.textsize("1")[1]+5 # px
for punkt in punkte:
stift.y -= zeilenhoehe
stift.write("%.2f | %.2f" %punkt)
blatt.ready()
Nicht dasselbe, aber vergleichbar. Ich mag den Frosch lieber als die Kröte, aber das ist sicher Geschmackssache und hat auch damit zu tun, was genau man machen möchte.LP640 hat geschrieben:das mit frog ist ja eigentlcih das selbe wie mit xturtle (frog kenn ich seit neuem auch schon)
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))
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'
Dafür gibt es die Dokumentation die auch gleich die neue String Formatting Methode beschreibt.LP640 hat geschrieben:gibt es dazu vielleicht irgendwo eine beschreibung oder ein tutorial zu???
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.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.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???
Meinte ich. In der Tat täten ein paar Beispiele den dortigen Erklärungen gut. Nun denn: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.
Code: Alles auswählen
>>> a, b = 23.123, 0.1231334
>>> print "%8.5f\n%8.5f" %(a,b)
23.12300
0.12313