Seite 1 von 1
Buchstaben aus Wörtern rausfiltern
Verfasst: Montag 18. Januar 2021, 10:51
von Corginator
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
Re: Buchstaben aus Wörtern rausfiltern
Verfasst: Montag 18. Januar 2021, 11:47
von Sirius3
Was möchtest Du konkret machen? Über Strings kann man iterieren:
Re: Buchstaben aus Wörtern rausfiltern
Verfasst: Dienstag 19. Januar 2021, 08:12
von Corginator
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
Re: Buchstaben aus Wörtern rausfiltern
Verfasst: Dienstag 19. Januar 2021, 08:25
von einfachTobi
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.
Re: Buchstaben aus Wörtern rausfiltern
Verfasst: Dienstag 19. Januar 2021, 08:45
von sparrow
@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.
Re: Buchstaben aus Wörtern rausfiltern
Verfasst: Dienstag 19. Januar 2021, 14:46
von Corginator
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...

)
Re: Buchstaben aus Wörtern rausfiltern
Verfasst: Dienstag 19. Januar 2021, 15:50
von sparrow
Man erstellt keine neuen Variablen während das Programm läuft. Man benutzt Datenstrukturen.
Re: Buchstaben aus Wörtern rausfiltern
Verfasst: Dienstag 19. Januar 2021, 15:59
von peterpy
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
Re: Buchstaben aus Wörtern rausfiltern
Verfasst: Dienstag 19. Januar 2021, 18:27
von Corginator
Hey Peter
vielen dank schonmal. Aber kannst du mir das auch erklären damit ich auch verstehe was dort passiert... das wäre toll!!
Liebe Grüße Corginator
Re: Buchstaben aus Wörtern rausfiltern
Verfasst: Dienstag 19. Januar 2021, 19:21
von __blackjack__
@Corginator: Was verstehst Du denn nicht? Du hast ein Grundlagentutorial durchgearbeitet und gegebenenfalls in der Dokumentation nachgeschlagen was `enumerate()` macht?
Re: Buchstaben aus Wörtern rausfiltern
Verfasst: Mittwoch 20. Januar 2021, 08:34
von Sirius3
@Corginator: ich habe immer noch nicht verstanden, welches Problem Du eigentlich lösen willst. Kannst Du mal Deine Aufgabe näher beschreiben?
Re: Buchstaben aus Wörtern rausfiltern
Verfasst: Mittwoch 20. Januar 2021, 08:41
von peterpy
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
Re: Buchstaben aus Wörtern rausfiltern
Verfasst: Mittwoch 20. Januar 2021, 09:16
von kbr
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.
Re: Buchstaben aus Wörtern rausfiltern
Verfasst: Donnerstag 21. Januar 2021, 11:50
von Corginator
Ja ok vielen dank an alle!