string in liste, Anfängerfrage

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
warafu
User
Beiträge: 2
Registriert: Samstag 20. Februar 2021, 11:20

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
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

+= 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.
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

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)
warafu
User
Beiträge: 2
Registriert: Samstag 20. Februar 2021, 11:20

Danke für die schnelle Hilfe.
Antworten