Hallo,
wenn dein String tatsächlich die Form "Formel Option Zahl [optionale Zahl]" hat, dann suchst du vermutlich die Methode .split():
>>> data = raw_input("Bitte FORMEL OPTION ZAHL [ZAHL] eingeben: ")
Bitte FORMEL OPTION ZAHL [ZAHL] eingeben: x+y ? 3 4
>>> data
'x+y ? 3 4'
>>> data.split()
['x+y', '?', '3', '4']
Das bedeutet aber, dass z.B. in der Formel keine Leerzeichen gesetzt werden dürfen, da Whitespace-Zeichen hier als Trenner fungieren. Alternativ kannst du natürlich auch einen eigenen Trenner definieren - etwa Kommata:
{>>> data = raw_input("Bitte FORMEL,OPTION,ZAHL,[ZAHL] eingeben: ")
Bitte FORMEL,OPTION,ZAHL,[ZAHL] eingeben: x + y, ?, 3, 4
>>> data
'x + y, ?, 3, 4 '
>>> data.split(",")
['x + y', ' ?', ' 3', ' 4 ']
Wenn es dir wirklich nur um die Zahlen geht, reicht auch ein regulärer Ausdruck, also grob:
import re
re.findall(r" ([0-9.]+)", "x+y -h 0.56498646 65465")
Du kannst übrigens auch einfach eine kleine Schleife schreiben, die die erforderlichen Felder der Reihe nach abfragt. Das ist relativ leicht zu erweitern und erspart es dem Nutzer, sich Gedanken über die richtige Eingabeform (Trennzeichen?) zu machen. Weiterhin kannst du mit ein paar Zeilen Code mehr beliebig viele weitere Zahlen abfragen. Um die Reihenfolge der Eingabe zu konservieren, wäre es dann uU sinnvoll, das Dict durch eine Liste zu ersetzen.
>>> fields = ["FORMEL", "OPTION", "ZAHL1", "ZAHL2"]
>>> user_input = {}
>>> for field in fields:
... result = raw_input("Bitte geben sie nun '{0}' ein. ".format(field))
... user_input[field] = result
...
Bitte geben sie nun 'FORMEL' ein. x+y
Bitte geben sie nun 'OPTION' ein. -h
Bitte geben sie nun 'ZAHL1' ein. 51
Bitte geben sie nun 'ZAHL2' ein. 312
>>> user_input
{'FORMEL': 'x+y', 'OPTION': '-h', 'ZAHL2': '312', 'ZAHL1': '51'}
>>>
Wie gesagt, ist natürlich nicht vollständig. Vermutlich möchte man noch Abbruchbedingungen / Strings definieren - etwa wenn "" oder "exit" eingegeben wurden.
Besten Gruß,
brb