schonmal Daumen hoch. Das Forum hat mir schon viel geholfen! Aber jetzt habe ich auch noch eine Frage. Hab schon überall gesucht, aber keine so wirklich befriedigende Antwort gefunden. Falls das Problem hier nicht hinpasst, bitte verschieben; bin mir mit dem wirklichen Thema nicht so ganz sicher.
Also das Problem ist, dass ich versuche raw_input zu benutzen um eine Funktion abzufragen (bspw. x*x). Wenn ich damit weiterarbeiten will, speichert er aber das x*x als 'x*x' sprich nicht als Variable/Zahl sondern als Zeichenkette. Meine Frage ist jetzt, wie bekomme ich das hin, dass er das als Variablen interpretiert (könnt ja mal über mein Script drüberschauen; im Anhang).
Danke schonmal für eure Hilfe .
LG Neon
Script:
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#DoC - 16.03.2010
#(c) by N.Boeckhorst, D. Goeritzer
#fuer N. Domes
#Dieses Programm ist freie Software, es darf unendlich kopiert werden
#solang dieser Kommentar erhalten bleibt.
#Plotter für beliebige Funktionen (1/x) ausgeschlossen
# ~~~
#Vorwarbeit & Import
from xturtle import*
from math import*
setup(1.0,1.0)
li = []
func = raw_input ('Bitte geben Sie eine Funktion ein:')
ht()
#Definitionsbereich
##Koordinatensystem
def koords():
bgcolor('black')
color('orange')
goto(300, 0)
goto(-300, 0)
goto(0, 0)
goto(0, 300)
goto(0, -300)
goto(0, 0)
##Graph I
def graph(x):
return(func)
##Listenerweiterung
for x in range(-15, 15):
li.append((21.5*x, 21.5*graph(x)))
##Graph II
def graphdraw():
color('red')
pensize(5)
for punkt in li:
goto(punkt)
#Aufrufbereich
koords()
graph(x)
print(li)
graphdraw()
#Programm in Loop schalten
mainloop()
Die Fehlermeldung sieht wie folgt aus:
Code: Alles auswählen
xturtle0.95a0 - bugfixes: 1
No config file!
Bitte geben Sie eine Funktion ein:x*x
Traceback (most recent call last):
File "C:\Users\Niels\Documents\Eclipse Workspace\Informatikunterricht\Plotter.py", line 44, in <module>
li.append((21.5*x, 21.5*graph(x)))
TypeError: can't multiply sequence by non-int of type 'float'
PPS: Bei manchen Funktionen spinnt er ein wenig & wenn man das Script ausführt, kommt ein Zeichenfehler. Ist nicht weiter schlimm, aber vielleicht hat ja jemand eine Idee.