Seite 1 von 1

string in liste, Anfängerfrage

Verfasst: Freitag 5. März 2021, 13:20
von warafu
Ich will Tastatureingaben in eine Liste einfügen.
Das Programm:
eingabe=""
liste=[]

while eingabe!="#":
eingabe=str(input("eingeben "))
print (eingabe)
if eingabe in liste:
print("schon da")
else:
liste +=eingabe
print (liste)

Statt die eingegebenen Strings einzufügen, werden die Zeichen des Srings einzeln in die Liste eingefügt,
Bsp.: eingabe "AB" daraus wird die Liste ['A','B'] es sollte aber ['AB'] werden.
Was mache ich falsch?

warafu

Re: string in liste, Anfängerfrage

Verfasst: Freitag 5. März 2021, 13:48
von /me
+= ist die falsche Art einen String einer Liste hinzuzufügen. Das entspricht einem extend (siehe https://docs.python.org/3/library/stdty ... ence-types). Du brauchst aber append, also liste.append(eingabe).

Übrigens, auch der beste Zauberer kann kein Brot in Brot verwandeln. Da der Rückgabewert von input ein String ist macht es keinen Sinn den noch einmal mit str in einen String zu konvertieren.

Re: string in liste, Anfängerfrage

Verfasst: Freitag 5. März 2021, 14:35
von Sirius3
Wenn man eine Variable mit einem Dummy-Wert belegen muß, damit eine while-Schleife betreten wird, dann hat man eigentlich eine while-True-Schleife, bei der an der passenden Stelle per break die Schleife verlassen wird. Benutze aussagekräftige Variablennamen. Was ist der Inhalt der `liste`?
Eingerückt wird immer mit 4 Leerzeichen pro Ebene, nicht 3.

Code: Alles auswählen

eingaben = []
while True:
    eingabe = input("eingeben ")
    if eingabe == "#":
        break
    print(eingabe)
    if eingabe in eingaben:
        print("schon da")
    else:
        eingaben.append(eingabe)
    print(eingaben)

Re: string in liste, Anfängerfrage

Verfasst: Freitag 5. März 2021, 15:27
von warafu
Danke für die schnelle Hilfe.