Python Variabeln/Input Hilfe?

3 Antworten

Split spaltet an einem Sperator(zeichen). D.h. Du brauchst entweder Leerzeichen oder ein anderes beliebiges Zeichen, um die Eingabewerte zu trennen.

Das ist auch ein ganz generelles PRoblem (aus semantischer Sicht), denn wie willst Du sonst wissen, wo eine Eingabe endet udn die nächste beginnt?


Random111111 
Beitragsersteller
 14.10.2022, 15:11

Das müsste ich dann am Sonderzeichen (+ - * /) festlegen. Also wenn es kein integer ist soll er es trennen in a b c

Aber wieee .-.

KarlRanseierIII  14.10.2022, 15:13
@Random111111

Du kannst an split() einen Parameter übergeben:

Vergleiche:

>>> "1,2,3".split()
['1,2,3']
>>> "1,2,3".split(',')
['1', '2', '3']

Du könntest das Split erst später und dann mit dem spezifischen Operator verwenden, um abzufragen um welchen Operator es sich handelt und die Zahl aus der Rechnung zu extrahieren.

while True:

    rechnung = input("Geben Sie die Rechnung ein\n")

    if '+' in rechnung:
        rechnung = rechnung.split("+")
        print(rechnung[0], '+', rechnung[1], '= ', float(rechnung[0]) + float(rechnung[1]))
    elif '-' in rechnung:
        rechnung = rechnung.split("-")
        print(rechnung[0], '-', rechnung[1], '= ', float(rechnung[0]) - float(rechnung[1]))
    elif '*' in rechnung:
        rechnung = rechnung.split("*")
        print(rechnung[0], '*', rechnung[1], '= ', float(rechnung[0]) * float(rechnung[1]))
    elif '/' in rechnung:
        rechnung = rechnung.split("/")
        print(rechnung[0], '/', rechnung[1], '= ', float(rechnung[0]) / float(rechnung[1]))
    else:
        print("Falsche Eingabe")

Ich hoffe ich konnte dir weiterhelfen und wenn du noch Fragen hast dann kannst du mich natürlich fragen.

LG

Woher ich das weiß:Hobby

Random111111 
Beitragsersteller
 14.10.2022, 16:05

Soooo, ein weiteres Problem. Mit Float werden alle kommastellen ausgegeben... Wie kann ich sie auf z.b. 4 Nachkommastellen festlegen? Bitte nich direkt den ganzen text, wenn nur die formel das ich es selbst machen kann... bin noch am lernen

Hanibal545  14.10.2022, 16:19
@Random111111

ich verwende für ausgaben von Variablen eigentlich immer f-strings, da sie hübscher sind.

Aber man kann aber das Ergebnis in ein String konvertieren, und dann nur die ersten 4 Nachkommastellen ausgeben.

Wenn du es an einem Beispiel haben möchtest, dann kann ich dir auch ein Beispiel schicken

Random111111 
Beitragsersteller
 14.10.2022, 15:35

Wow das ist echt eine einfach und gute Lösung...

Darauf muss man erstmal kommen :O

Vielen Dank :)

Du könntest mit RegEx und Pattern matching arbeiten:

import re
pattern = "(.*)([-+*/])(.*)"
m = re.search(pattern, eingabe)
if m:
  links = m.group(1)
  rechts = m.group(3)
  operator = m.group(2)
else:
  print("Falsche Eingabe")

oder ganz frech

ergebnis = eval(eingabe)
Woher ich das weiß:Hobby