Seite 1 von 5

EXTREMES Problem HILFE!

Verfasst: Dienstag 29. September 2009, 14:57
von LP640
hallo, hab mich heute angemeldet und direkt ne frage:
ich bin dabei ein programm zu erstellen, wo man eine funktion eingeben kann (z.B. : x+2) und anschließend den Wert für x (z.B : 4) eingeben kann

so sieht das ganze dann bei mir aus:

funktion=raw_input("Ihre Funktion:") (z.B. : x+2)
x=input("ihr X-Wert:") (z.B. : 4)
print "Ergebnis:",funktion (er schreibt: x+2
und nicht : 6 !?)

so aber das mir raw_input scheint net zu klappen, bei print zeigt der dann immer die komplette funktion an und nicht das ergebnis

gibts dafür vielleicht einen extra befehl???

würde mich über baldige antworten freuen mfg
LP640

Verfasst: Dienstag 29. September 2009, 15:04
von jens
raw_input ist nicht das selbe wie input ;)
Schau mal hier: [wiki]raw input vs. input[/wiki]

btw. bitte das beachten: http://www.python-forum.de/faq.php#21

EXTREME ANTWORT11!elf

Verfasst: Dienstag 29. September 2009, 15:09
von EyDu
Hallo.

Könntest du dem Thread bitte einen vernünftigen Namen geben, welcher dein Problem auch beschreibt.

Und dann noch [wiki=Forum/Regeln]ein[/wiki], zwei bis drei hilfreiche Links. Und vielleicht auch noch den hier.

Das sollte eigentlich genügen. Sonst einfach nochmal (vernünftig ;-) ) nachfragen.

Verfasst: Dienstag 29. September 2009, 15:12
von str1442
Was hast du den erwartet? Das "x" dort eingesetzt wird? Python ist keine auf Mathematik fixierte Sprache wie zb Matlab (aber auch die machen sowas nicht einfach so; Mathematik besteht ja nicht nur aus dem "x" bei Funktionen, auch wenn ich haufenweise Jugendliche gesehen habe, die Mathematik / mathematische Funktionen und Variablen nie verstanden haben weil jeder nur vom x, f und dem "Einsetzen" gesprochen hat) und kennt Typen. Ein Typ ist eine Art Beschreibung eines "Dings", und davon kann es dann recht viele geben, die allesamt einen Typ haben. Magisch wird da nie irgendwo was verändert. Print druckt das aus, was es bekommt, und sonst nichts. Lies dir bitte das offizielle Python Tutorial durch: http://tutorial.pocoo.org/

Verfasst: Dienstag 29. September 2009, 15:40
von LP640
HURRA es klappt!
Erstmal danke an euch alle vor allem an den EyDu dessen Link "den" mir sehr geholfen hat!
tut mir leid wegen dem falschen posten, wie gesagt : bin erst seit heute hier
und dass das mit dem input-zeugs net klappt hab ich mir auch gedacht
ich hatte python nur so etwa 1 jahr lang in der schule (ind dat is 2 jahre her) also kenn ich halt noch net "alle" befehle

wen es interessiert, so wäre es richtig gewesan:

Code: Alles auswählen

import sys
funktion=raw_input("Ihre Funktion:")
x=input("ihr X-Wert:")
print eval(funktion)      
<----- ein eval und ne Klammer !lol! naja hättet ihr gleich sagen können
nochmals vielen dank
mfg

LP640

Verfasst: Dienstag 29. September 2009, 15:43
von jens
Da hast du wohl falsch getestet. Was soll dabei raus kommen?
Wenn du sowas wie einen einfachen Taschenrechner bauen möchtest, brauchst du zwei Zahlen und eine Mathematische Funktion, die dann auf diese zwei Zahlen angewendet werden...

Verfasst: Dienstag 29. September 2009, 15:50
von EyDu
Hallo.

Und jetzt überlegst du dir was passiert, wenn du '__import__("os").remove("a file")' eingibst ;-) Mit "input" und "eval" handelst du dir eine Menge Probleme ein, da eigentlich alles ausgeführt werden kann. jens hat ja schon darauf hingewiesen, wie man es vernünftig löst.

Verfasst: Dienstag 29. September 2009, 16:40
von LP640
also ich weiss net was ihr meint, ich hab genau das gefunden, was ich gesucht hab
ach ja mein programm ist ohne diese "import sys " (ausversehen reinkopiert)

vielleicht könnt ihr mir unter Tkinter bei buttons mit xturtle erstellen noch helfen?

mfg
LP640

Verfasst: Dienstag 29. September 2009, 19:14
von Leonidas
Oh, guckt mal, den radioaktiven Abfall kann man auch in den Fluss kippen! Wie, warum glaubt ihr mir jetzt nicht dass ich das Problem der Endlagerung gelöst habe?!

Verfasst: Mittwoch 30. September 2009, 07:51
von querdenker
@Leonidas : YMMD!

Verfasst: Mittwoch 30. September 2009, 11:26
von ms4py
Wie geil :D

Verfasst: Mittwoch 30. September 2009, 11:39
von cofi
Das bloede ist nur, dass das wohl in Italien und England Mode war/ist :(

Verfasst: Mittwoch 30. September 2009, 21:39
von lunar
Nicht nur in Italien und England. Den Müll in die Berge zu kippen, auf dass er alsbald im Grundwasser verschwinde, ist aber nicht so cool ;)

Verfasst: Mittwoch 30. September 2009, 21:46
von jbs
@LP640: das avatar ist ja mal deutlich zu groß geraten, um nicht zu sagen EXTREM... HILFE

Verfasst: Donnerstag 1. Oktober 2009, 06:06
von Dav1d
@LP640,

da du nicht drauf antwortest gib mal ein (bei der frage bei der nach dem X-Wet gefragt wird) '__import__("sys").exit(1)' vllt merkst du dann dass das ein Problem ist

Verfasst: Donnerstag 1. Oktober 2009, 09:53
von audax
Na dann schreibt man eben dazu, dass man das nicht darf!!!111

Verfasst: Freitag 2. Oktober 2009, 15:54
von LP640
hallo leute ich hab ein neues problem
und zwar möchte ich fehlermeldungen vermeiden
hierbei zum beispiel:

Code: Alles auswählen

x=-10
while x<=10:
    y=x**0.5
    print y
    x=x+1
da kommt immer folgende fehlermeldung, was natürlcih auch logisch ist:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\Users\Manuel Baeuml\Desktop\test.py", line 3, in <module>
    y=x**0.5
ValueError: negative number cannot be raised to a fractional power
wie kann ich jetzt zum beispiel machen, dass anstelle der fehlermeldung und einem absturz des programms ein "Achtung Fehler!" in die konsole geprinted wird???

mfg
LP640

Verfasst: Freitag 2. Oktober 2009, 15:55
von jens
schau mal hier: [wiki]try...except[/wiki]

Verfasst: Freitag 2. Oktober 2009, 16:38
von LP640
vielen dank jens du bist der beste
hat sofort geklappt!
wens interessiert:

Code: Alles auswählen

x=-10
while x<=10:
    try:
        y=x**0.5
        print y
    except Exception:
        print "Error"
    x=x+1

mfg
LP640

Verfasst: Freitag 2. Oktober 2009, 16:39
von jens
So pauschal den Fehler Abfangen sollte man aber gerade nicht. Lies auch den Text auf der Wiki Seite ;)