Seite 1 von 1
Python Anfänger braucht Hilfe
Verfasst: Mittwoch 30. Oktober 2019, 22:50
von bernd76
Hallo ,
wie kann ich mit 2 eingegeben Zahlen in einem Inputstring weiter rechnen. Bzw wie gebe ich einen Input mehr als 2 argumente.
Bsp:
a= input("1.Zahl")
b= input("2.Zahl")
Ich möchte nun beide variablen a und b in einen input haben, sodass ich mit den werten die eingegeben wurden, weiter arbeiten ( rechnen) kann.
Danke für eure Hilfe.
Lg Bernd
Re: Python Anfänger braucht Hilfe
Verfasst: Mittwoch 30. Oktober 2019, 22:54
von __deets__
Du hast sie ja schon in variablen. Was dir fehlt ist die Konvertierung in eine Zahl. Das kann zb der Typ float sein.
Re: Python Anfänger braucht Hilfe
Verfasst: Mittwoch 30. Oktober 2019, 23:07
von bernd76
vielleicht habe ich mich nicht richtig ausgedrückt: Ich möchte einen input("bitte geben sie 2 zahlen ein") erstellen. Wenn man jetzt zb 2 5 eingibt Dann sollen 2 und 5 getrennt ausgegeben werden sodass ich mit der 2 und der 5 jeweils weiter arbeiten kann. Ich möchte also auf die 2 Zahlen von nur einen input zugreifen können
Re: Python Anfänger braucht Hilfe
Verfasst: Mittwoch 30. Oktober 2019, 23:20
von __deets__
Wenn du das möchtest, musst du den String am Leerzeichen trennen mit der split Methode. Die resultierende Liste enthält deine Zahlen.
Re: Python Anfänger braucht Hilfe
Verfasst: Mittwoch 30. Oktober 2019, 23:24
von nezzcarth
Ich glaube, ich würde in dem Szenario solche Eingaben vermeiden und aktiv dafür sorgen, dass pro Eingabeaufforderung nur eine Zahl eingegeben wird. Ansonsten musst du die Zahlen eben anhand eines Trenners (z.B. Leerzeichen) mit der split-Methode von Strings trennen und separat konvertieren. Außerdem kannst du dir vielleicht überlegen, was passiert, wenn jemand etwas anderes oder mehr als zwei durch Leerzeichen getrennte Zahlen eingibt.
Re: Python Anfänger braucht Hilfe
Verfasst: Donnerstag 31. Oktober 2019, 07:29
von Jankie
Also wenn du beide Variablen mit einem Input einlesen möchtest, würde ich das so lösen: (In diesem Besipiel ist auch die Eingabe von strings möglich. Das überlasse ich dir .)
Code: Alles auswählen
while True:
try:
a, b = input("Bitte gib deine zwei Zeichen/Zahlen getrennt mit einem Leerzeichen ein: ").split()
break
except ValueError:
print("Fehler bei der Eingabe.")
print(f"A ist {a}")
print(f"B ist {b}")
Re: Python Anfänger braucht Hilfe
Verfasst: Donnerstag 31. Oktober 2019, 07:42
von Sirius3
@Jankie: wo kann in dem try-Block ein ValueError auftreten?
Re: Python Anfänger braucht Hilfe
Verfasst: Donnerstag 31. Oktober 2019, 07:45
von Fire Spike
beim splitten
Code: Alles auswählen
ValueError: not enough values to unpack (expected 2, got 1)
Re: Python Anfänger braucht Hilfe
Verfasst: Donnerstag 31. Oktober 2019, 07:54
von Jankie
@Sirius3:
Wenn man z.B. nur eine Zahl oder mehr als zwei Zahlen eingibt. Oder löst man das anders?
Re: Python Anfänger braucht Hilfe
Verfasst: Donnerstag 31. Oktober 2019, 08:19
von snafu
Ich würde vor dem "break" noch ein "if a.isdigit() and b.isdigit():" setzen oder aber die Umwandlung mittels int() oder float() probieren.
Re: Python Anfänger braucht Hilfe
Verfasst: Donnerstag 31. Oktober 2019, 08:32
von Jankie
@snafu:
Das hier hatte ich noch im try drin, wusste aber nicht ob das so richtig ist, es funktioniert zwar, aber allerdings nur weil das int(a) dort einen ValueError auslöst, wenn der input ein string ist.
Code: Alles auswählen
if isinstance(int(a), int) & isinstance(int(b), int):
break
da ist deine Lösung mit a.isdigit() besser.
Re: Python Anfänger braucht Hilfe
Verfasst: Donnerstag 31. Oktober 2019, 09:20
von __blackjack__
@Jankie: Das ist ziemlich schräg. Natürlich ist ein `int`-Objekt ein Exemplar vom Typ `int` — die `isinstance()`-Aufrufe sind total überflüssig. Und ``&`` ist bitweise Verknüpfung, die sollte man nicht machen wenn man eigentlich das logische ``and`` meint.
Der Code hat letztlich den gleichen Effekt wie folgendes an der Stelle:
Re: Python Anfänger braucht Hilfe
Verfasst: Donnerstag 31. Oktober 2019, 09:40
von Jankie
Das kam mir schon beim schreiben dumm vor was ich da gemacht habe.
Das mit dem "&" kommt davon, wenn man nebenbei noch Sachen zu C# durchliest, ups. Aber danke dass Ihr die Vorschläge immer noch verbessert, dann kann ich durchs helfen auch noch was lernen.

Re: Python Anfänger braucht Hilfe
Verfasst: Donnerstag 31. Oktober 2019, 10:00
von __blackjack__
@Jankie: ``&`` wäre auch in C# falsch, denn auch dort ist das die bitweise Verknüpfung. Die logische Verknüpfung ist dort ``&&``.