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
Python Anfänger braucht Hilfe
Du hast sie ja schon in variablen. Was dir fehlt ist die Konvertierung in eine Zahl. Das kann zb der Typ float sein.
Code: Alles auswählen
a = float(input("Zahl 1:"))
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
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.
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}")
-
- User
- Beiträge: 329
- Registriert: Montag 13. Mai 2019, 16:05
- Wohnort: Erde
beim splitten
Code: Alles auswählen
ValueError: not enough values to unpack (expected 2, got 1)
@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.
da ist deine Lösung mit a.isdigit() besser.
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
- __blackjack__
- User
- Beiträge: 14051
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@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:
Der Code hat letztlich den gleichen Effekt wie folgendes an der Stelle:
Code: Alles auswählen
int(a)
int(b)
break
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
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.
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.

- __blackjack__
- User
- Beiträge: 14051
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Jankie: ``&`` wäre auch in C# falsch, denn auch dort ist das die bitweise Verknüpfung. Die logische Verknüpfung ist dort ``&&``.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari