wie mach ich ne wertetabelle?
ja mach tja nix, aber irgendwie kapier ich net was daran halt falsch is, wenn ich das eingeb
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Code: Alles auswählen
def wertetabelle (-4.5,5.5,0.5):
x=-4.5
y=0,1xhoch4-0,1xhoch3-2,4xhoch2+0,4x+8
while x<=5.5:
print x,' ',y
x=-4.5 + 0.5
Code: Alles auswählen
def wertetabelle(a, b, sw):
x = a
...
Code: Alles auswählen
wertetabelle(-4.5, 5.5, 0.5)
irgendwie ist das alles zu hoch für mich
also meinst du jetzt ich soll das alles so eingeben
def wertetabelle ():
x=-4.5
y=0,1xhoch4-0,1xhoch3-2,4xhoch2+0,4x+8
while x<=5.5:
print x,' ',y
x=-4.5 + 0.5
oder was? also wenn ich das mache, und das dann halt mit
wertetabelle(-4.5, 5.5, 0.5)
aufrufe, dann kommt mal wieder eine fehermeldung...
also meinst du jetzt ich soll das alles so eingeben
def wertetabelle ():
x=-4.5
y=0,1xhoch4-0,1xhoch3-2,4xhoch2+0,4x+8
while x<=5.5:
print x,' ',y
x=-4.5 + 0.5
oder was? also wenn ich das mache, und das dann halt mit
wertetabelle(-4.5, 5.5, 0.5)
aufrufe, dann kommt mal wieder eine fehermeldung...
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Nein.
Das ist eine Funktion die keine Argumente haben will.
Hier rufst Du sie mit 3 Argumenten auf. Dass Python sich hier beschwert ist doch logisch, oder?
Ich hab Dir ja schon gezeigt wie Du's machen sollst:
Code: Alles auswählen
def wertetabelle():
Code: Alles auswählen
wertetabelle(-4.5, 5.5, 0.5)
Ich hab Dir ja schon gezeigt wie Du's machen sollst:
Code: Alles auswählen
def wertetabelle(a, b, sw): # <- will 3 Argumente haben
...
wertetabelle(-4.5, 5.5, 0.5) # <- wird mit 3 Argumenten gefüttert
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Ist ja auch klar, weil deine Funktion keine Parameter erwartet...
Funktioniert nicht, weil es so gehen muß:
Schau dir mal das an: http://www.pythonwiki.de/PythonDeForum/ ... 9b4deb0f74
Code: Alles auswählen
def test():
print txt
test( "geht nicht" )
Code: Alles auswählen
def test( txt ):
print txt
test( "das geht" )
Hallo,
ich hab jetzt zwei Lösungen!
Einmal die mit deiner While Schleife natürlich ohne den Fehler (was immer das für ein fehler ist) und eine mit der xlrange() Funktion.
mawe hat dir verdammt viel geholfen und solangsam glaub ich, dass du im Unterrricht nicht aufgepasst hast?
Sollen wir raten? Ist es ein SyntaxError?
MfG
Andreas
ich hab jetzt zwei Lösungen!
Einmal die mit deiner While Schleife natürlich ohne den Fehler (was immer das für ein fehler ist) und eine mit der xlrange() Funktion.
mawe hat dir verdammt viel geholfen und solangsam glaub ich, dass du im Unterrricht nicht aufgepasst hast?
wo scheibst du das rein? In eine Datei?also meinst du jetzt ich soll das alles so eingeben
Und ich frage nochmal, was für einen Fehler teilt dir Python mit?dann kommt mal wieder eine fehermeldung
Sollen wir raten? Ist es ein SyntaxError?
MfG
Andreas
ich hab da jetzt mal was eingegeben, so wie ich das jetzt verstanden hab.. und dann kam
-4.5 7.71875
-4.0 7.71875
-4.0 7.71875
und dann immer mir -4.0 weiter. und es hat erst aufgehört, als ich es angealten hab o.O tja, vielleicht hätte ich doch kein informatik wählen sollen naja...
also ich hab schon aufgepasst. ich hab wie gesagt, dass alles von der tafel abgschrieben, und dann meinte er, ja und dann könnt ihr jetzt ne wertetabelle damit ausrechnen.... *argh* und dann hat er mit dem nächsten thema weitergemacht...
toll...
-4.5 7.71875
-4.0 7.71875
-4.0 7.71875
und dann immer mir -4.0 weiter. und es hat erst aufgehört, als ich es angealten hab o.O tja, vielleicht hätte ich doch kein informatik wählen sollen naja...
also ich hab schon aufgepasst. ich hab wie gesagt, dass alles von der tafel abgschrieben, und dann meinte er, ja und dann könnt ihr jetzt ne wertetabelle damit ausrechnen.... *argh* und dann hat er mit dem nächsten thema weitergemacht...
toll...
also jetzt war es so, dass er halt alle zahlen von -4.5 bis 5.5 mit schrittweite 0.5 gemacht hat, aber dahinter hat er bei jeder zahl 7.71875 gemacht hat.
also:
-4.5 7.71875
-4.0 7.71875
-3.5 7.71875
usw.
also:
-4.5 7.71875
-4.0 7.71875
-3.5 7.71875
usw.
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Ich kann Dir schon sagen warum das passiert. Du hast in der while Schleife sicher
geschrieben, stimmts? Naja, da kommt immer -4.0 raus!
Weisst Du was ich nicht ganz verstehe? Dein Lehrer hat Euch das an die Tafel geschrieben:
Und warum tippst Du's nicht ganz einfach so ein? Ok, die funktion muss man noch ersetzen, aber ansonsten ist das das fertige programm!
Code: Alles auswählen
x = -4.5 + 0.5
Weisst Du was ich nicht ganz verstehe? Dein Lehrer hat Euch das an die Tafel geschrieben:
Code: Alles auswählen
def wertetabelle(a, b, sw):
x = a
while x <= b:
y = die funktion
print x, y
x = x + sw
Zuletzt geändert von mawe am Donnerstag 8. September 2005, 21:13, insgesamt 1-mal geändert.
Also ich hab folgendes:
müsste stimmen, wenn nicht
Code: Alles auswählen
x=-4.5 / y=50.11875
x=-4.0 / y=32.0
x=-3.5 / y=19.29375
x=-3.0 / y=10.8
x=-2.5 / y=5.46875
x=-2.0 / y=2.4
x=-1.5 / y=0.84375
x=-1.0 / y=0.2
x=-0.5 / y=0.01875
x=0.0 / y=0.0
x=0.5 / y=-0.00625
x=1.0 / y=0.0
x=1.5 / y=0.16875
x=2.0 / y=0.8
x=2.5 / y=2.34375
x=3.0 / y=5.4
x=3.5 / y=10.71875
x=4.0 / y=19.2
x=4.5 / y=31.89375
x=5.0 / y=50.0
x=5.5 / y=74.86875
nicht ganz mawe. er hat erst die funktion und dann while.
ich weiß ja nich ob das irgendwie relevant ist, aber.. naja.. also ich krieg irgendwie nie die lösung...also so wie du, XT@ngel
ich weiß ja nich ob das irgendwie relevant ist, aber.. naja.. also ich krieg irgendwie nie die lösung...also so wie du, XT@ngel
Jo hab grad festgestellt das ich die Formel falsch hab....
hab die von mawe 1 zu 1 kopiert ohne dein post zu lesen
hab die von mawe 1 zu 1 kopiert ohne dein post zu lesen
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Ja, das ist schon relevant.
Hier wird y nur einmal berechnet, nämlich für den Startwert a.
Wenn Du's innerhalb der while Schleife schreibst, wird's für jeden x-Wert neu berechnet, und so solls ja sein
So, und damit der Abend doch noch erfolgreich endet, hier die Lösung:
Code: Alles auswählen
def wertetabelle(a, b, sw):
x = a
y = die funktion
while x <= b:
print x, y
x = x + sw
Wenn Du's innerhalb der while Schleife schreibst, wird's für jeden x-Wert neu berechnet, und so solls ja sein
So, und damit der Abend doch noch erfolgreich endet, hier die Lösung:
Code: Alles auswählen
def wertetabelle(a, b, sw):
x = a
while x <= b:
y = 0.1*x**4 - 0.1*x**3 - 2.4*x**2 + 0.4*x + 8
print x, y
x = x + sw
wertetabelle(-4.5, 5.5, 0.5)
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich hätte es ja so gelöst, das macht mehr Eindruck (finde ich) und ist auch irgendwie simpler (bis auf das xlrange, aber das versteht man auch):
gibt
aus.
Code: Alles auswählen
#!/usr/bin/env python
# -*- encoding: latin-1 -*-
def xlrange(start,stop=None,step=1):
"""xlrange([start=0,]stop[,step=1]) --> iterator object like xrange for longs"""
if stop==None:
stop=start
start=0
if step>0:
while start<stop:
yield start
start+=step
elif step<0:
while start>stop:
yield start
start+=step
else:
raise ValueError, "xlrange() arg 3 (step) must not be zero"
def process(x):
return 0.1 *x ** 4 - 0.1 * x ** 3 - 2.4 * x ** 2 + 0.4 * x + 8
def wertetabelle(start, stop, step):
for x in xlrange(start, stop + step, step):
print "x=%0.1f\t y=%0.5f" % (x, process(x))
if __name__ == '__main__':
wertetabelle(-4.5, 5.5, 0.5)
Code: Alles auswählen
x=-4.5 y=7.71875
x=-4.0 y=0.00000
x=-3.5 y=-3.50625
x=-3.0 y=-4.00000
x=-2.5 y=-2.53125
x=-2.0 y=0.00000
x=-1.5 y=2.84375
x=-1.0 y=5.40000
x=-0.5 y=7.21875
x=0.0 y=8.00000
x=0.5 y=7.59375
x=1.0 y=6.00000
x=1.5 y=3.36875
x=2.0 y=0.00000
x=2.5 y=-3.65625
x=3.0 y=-7.00000
x=3.5 y=-9.28125
x=4.0 y=-9.60000
x=4.5 y=-6.90625
x=5.0 y=0.00000
x=5.5 y=12.46875
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
@mawe
xt@ngel als gast hat geschrieben:Jo hab grad festgestellt das ich die Formel falsch hab....
hab die von mawe 1 zu 1 kopiert ohne dein post zu lesen
Hallo Jeanne!
Erstens ist es gut, daß Du Fragen dort stellst, wo auch qualifizierte Antworten zu erwarten sind; nur dadurch kannst Du eine Programmiersprache erlernen und später richtig anwenden ...
Zweitens möchte ich Dir eine (wiederverwertbare) Lösung liefern, ohne die Keule der OOP objektorientierten Programmierung auszupacken.
#1: Die Funktion "funktion" definiere ich selbständig, ist immer gut!
#2: Schaut zwar nach zu vielen Klammern aus, kann manchmal aber
hilfreich sein, wenn Du unerwartete Ergebnisse bekommst.
#3: Hier die Wertetabelle. Der erste Parameter ist die Funktion "f".
#4: "h" ist der momentane Schrittwert beginnend mit "start"
#5: Die "while"-Anweisung solange "h" kleiner oder gleich Endwert
#6: Ausgabe der momentanen "x"/"y"-Paares
#7: Erhöhen um Schrittweite (bzw. h = h + schritt)
#8: Aufruf der "wertetabelle". Der erste Parameter ist die Funktion
Meine "Hausaufgabe" an Dich: Diese paar Zeilen Quelltext verstehen! Das hast Du geschafft, wenn Du dieses kleine Grundgerüst für andere Aufgaben mal schnell umstricken kannst.
Viel Spaß
Michael
Erstens ist es gut, daß Du Fragen dort stellst, wo auch qualifizierte Antworten zu erwarten sind; nur dadurch kannst Du eine Programmiersprache erlernen und später richtig anwenden ...
Zweitens möchte ich Dir eine (wiederverwertbare) Lösung liefern, ohne die Keule der OOP objektorientierten Programmierung auszupacken.
Code: Alles auswählen
def funktion(x): #1
return (0.1*(x**4)) - (0.1*(x**3)) - (2.4*(x**2)) + (0.4*x) + 8.0 #2
def wertetabelle(f,start,stop,schritt): #3
h = start #4
while h <= stop: #5
print h,' ',f(h) #6
h += schritt #7
wertetabelle(funktion,-4.5,5.5,0.5) #8
#2: Schaut zwar nach zu vielen Klammern aus, kann manchmal aber
hilfreich sein, wenn Du unerwartete Ergebnisse bekommst.
#3: Hier die Wertetabelle. Der erste Parameter ist die Funktion "f".
#4: "h" ist der momentane Schrittwert beginnend mit "start"
#5: Die "while"-Anweisung solange "h" kleiner oder gleich Endwert
#6: Ausgabe der momentanen "x"/"y"-Paares
#7: Erhöhen um Schrittweite (bzw. h = h + schritt)
#8: Aufruf der "wertetabelle". Der erste Parameter ist die Funktion
- Ergebnisse:
-4.5 7.71875
-4.0 1.7763568394e-015
-3.5 -3.50625
-3.0 -4.0
-2.5 -2.53125
-2.0 8.881784197e-016
-1.5 2.84375
-1.0 5.4
-0.5 7.21875
0.0 8.0
0.5 7.59375
1.0 6.0
1.5 3.36875
2.0 8.881784197e-016
2.5 -3.65625
3.0 -7.0
3.5 -9.28125
4.0 -9.6
4.5 -6.90625
5.0 0.0
5.5 12.46875
Meine "Hausaufgabe" an Dich: Diese paar Zeilen Quelltext verstehen! Das hast Du geschafft, wenn Du dieses kleine Grundgerüst für andere Aufgaben mal schnell umstricken kannst.
Viel Spaß
Michael