Buchstaben aus Wörtern rausfiltern

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
Corginator
User
Beiträge: 5
Registriert: Montag 18. Januar 2021, 10:32

Hallo zusammen,
ich würde gerne aus einem wort z.B. : Baum die Buchstaben also B, a ,u und m herausfiltern und variablen zuweisen wie ist das möglich?

schonmal danke
und Liebe Grüße Corginator
Sirius3
User
Beiträge: 17745
Registriert: Sonntag 21. Oktober 2012, 17:20

Was möchtest Du konkret machen? Über Strings kann man iterieren:

Code: Alles auswählen

wort = "Baum"
for buchstabe in wort:
    print(buchstabe)
Corginator
User
Beiträge: 5
Registriert: Montag 18. Januar 2021, 10:32

Hallo Sirius,

naja das ist nicht das. was ich meine. Aber es geht schon in die Richtung... Anstatt, dass der Buchstabe ausgegeben wird würde ich ihn gerne einer variable zuordnen.
Aber trotzdem danke.

Corginator
einfachTobi
User
Beiträge: 491
Registriert: Mittwoch 13. November 2019, 08:38

Die Ausgabe war ja nur ein Beispiel, um zu zeigen, dass man über String iterieren kann. Du kannst also an der Stelle damit machen was du willst. Und jedes einzelne Element (hier = Buchstabe) wird ja in der for-Schleife an den Namen `buchstabe` gebunden.
Was hast du denn letztlich damit vor? Dann kann man ggf. spezifischer helfen.
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

@Corginator: Das binden von Werten an Variablen ist absolute Grundlage in Python. Ebenso wie das verwenden von Datenstrukturen. Um Python zu lernen ist das offizielle Tutorial ein guter Einstige.

Sirius 3 hat die ja schon gezeigt, dass man über eine Zeichenkette iterieren kann. Genaugenommen ist eine Zeichenkette eine Datenstruktur - oder verhält sich zumindest weitestgehend wie eine.
Corginator
User
Beiträge: 5
Registriert: Montag 18. Januar 2021, 10:32

Ich weiss jetzt nicht ob ich etwas falsch verstehe oder so. Aber meine frage ist, wie man während ein Programm läuft neue variablen erstellen und diesen dann werten zuweisen kann. also nicht das ich diese variablen deklariere und initialisiere sondern das das Programm das macht. (vielleicht hätte ich mich in der frage genauer ausdrücken müssen... :| )
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

Man erstellt keine neuen Variablen während das Programm läuft. Man benutzt Datenstrukturen.
Benutzeravatar
peterpy
User
Beiträge: 188
Registriert: Donnerstag 7. März 2013, 11:35

Hallo Corginator,
wenn ich dich recht verstehe, geht das über Dictionarys.

Code: Alles auswählen

def variablen_erzeugen():
    zeichendict = {}
    summe = 0
    for i, zeichen in enumerate("Alphabet"):        
        zeichendict[zeichen] = i
        print("{} = {}".format(zeichen, i))
        produkt = zeichendict[zeichen] * i
        summe = produkt + summe        
    print(summe)

if __name__ == "__main__":
    variablen_erzeugen()
Gruss Peter
Corginator
User
Beiträge: 5
Registriert: Montag 18. Januar 2021, 10:32

Hey Peter
vielen dank schonmal. Aber kannst du mir das auch erklären damit ich auch verstehe was dort passiert... das wäre toll!! :D

Liebe Grüße Corginator
Benutzeravatar
__blackjack__
User
Beiträge: 13099
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Corginator: Was verstehst Du denn nicht? Du hast ein Grundlagentutorial durchgearbeitet und gegebenenfalls in der Dokumentation nachgeschlagen was `enumerate()` macht?
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Sirius3
User
Beiträge: 17745
Registriert: Sonntag 21. Oktober 2012, 17:20

@Corginator: ich habe immer noch nicht verstanden, welches Problem Du eigentlich lösen willst. Kannst Du mal Deine Aufgabe näher beschreiben?
Benutzeravatar
peterpy
User
Beiträge: 188
Registriert: Donnerstag 7. März 2013, 11:35

Hallo Corginator,

Code: Alles auswählen

def variablen_erzeugen():
    zeichendict = {}
    # Ein leerers Dictionary mit dem Namen zeichendict wird erstellt
    
    summe = 0
    # Der Wert Null wird der Variablen summe zugewiesen
    
    for i, zeichen in enumerate("Alphabet"):
        # Die Schlaufe iteriert über den String "Alphabet"
        # i bezeichnet den Iterationsschritt und wird von enumerate hochgezählt
        # (Null entspricht dem ersten Durchlauf mit dem ersten Zeichen)
        
        zeichendict[zeichen] = i
        # Dem Dictionary zeichendict wird in jedem Schleifendurchlauf
        # das zeichen als Schlüssel und i als Wert zugefügt.        
        
        print("{} = {}".format(zeichen, i)) # Ausgabeformatierung
        
        produkt = zeichendict[zeichen] * i
        # Da in diesem Beispiel der Wert von zeichendict[zeichen] gleich i ist
        # und mit i multipiziert wird, ist das produkt i im Quadrat
        
        summe += produkt
        # Zur summe wird produkt dazu addiert
        
    print(summe)# Ausgabe der Summe der Quadratzahlen
    
    print(zeichendict)# Ausgabe des Dictionarys
    
    print("Meine virtuelle Variable h hat den Wert", (zeichendict)['h'])
    # Ausgabe des Wertes zum Schlüssel h
    
    print(zeichendict.keys())# Ausgabe der Schlüssel
    
    print(zeichendict.values())# Ausgabe der Werte    

if __name__ == "__main__":
    variablen_erzeugen()
Gruss Peter
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Corginator hat geschrieben: Dienstag 19. Januar 2021, 14:46meine frage ist, wie man während ein Programm läuft neue variablen erstellen und diesen dann werten zuweisen kann.
Das ist keine gute Idee: globale Variablen, deren Wert sich ändern können, führen früher oder später zu Seiteneffekten und erschweren die Lesbarkeit und das Verständnis eines Programms. Werden diese Variablen zudem noch dynamisch angelegt, wird alles noch viel schlimmer – so können Variable für den Leser quasi "aus dem Nichts" auftauchen und dazu führen, dass nicht mehr nachvollziehbar ist, was wann wo passiert. Das ist der Grund, warum globale Variable (außer Konstanten) hier von vielen vermieden werden. Die Antwort von Sparrow ist da völlig richtig: nimm eine Datenstruktur, z.B.:

Code: Alles auswählen

wort = "Baum"
# "Variablennamen" als Keys von Dictionaries:
chars = {c : c for c in wort}
print(chars['B'])
# oder einfacher als Liste, dann nimmst du statt eines Variablennamens einen Index:
chars = list(wort)
print(chars[0])
# oder noch viel einfacher, denn die Datenstruktur eines Iterables liegt ja bereits vor:
print(wort[0])
Mit Hilfe der Datenstrukturen von Python sind viele Aufgaben oft sehr einfach zu lösen. Jetzt fehlt nur noch dein eigentliches Problem, das du lösen möchtest.
Corginator
User
Beiträge: 5
Registriert: Montag 18. Januar 2021, 10:32

Ja ok vielen dank an alle!
Antworten