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.
in meinen Lernunterlagen soll folgender Code "true" (es kommen Vokale im Wort vor) oder "false" (es kommen keine Vokale vor) ausgeben.
Der Code ist genau wie im Buch, aber der Output bleibt leer, wenn ich ihn aus dem Editor starte bzw. zeigt eine falsche Syntax an wenn ich es im Prompt teste.
Wurde hier im laufe der Zeit etwas angepasst? Ist das buch eventuell nicht up to Date oder bin ich einfach gerade Blind ?
def search_for_vowels(word):
"""Return a boolean based on vowels found."""
vowels = set('aeiou')
found = vowels.intersection(set(word))
return bool(found)
search_for_vowels('Hamsterrad')
def search_for_vowels(word):
"""Return a boolean based on vowels found."""
vowels = set('aeiou')
return not vowels.isdisjoint(word)
print(search_for_vowels('Hamsterrad'))
Sirius3 hat geschrieben: Mittwoch 2. März 2022, 16:00
Du gibts auch nichts aus. Da fehlt ein `print`.
Und hier wäre auch `isdisjoint` die richtige Methode:
def search_for_vowels(word):
"""Return a boolean based on vowels found."""
vowels = set('aeiou')
return not vowels.isdisjoint(word)
print(search_for_vowels('Hamsterrad'))
Was wäre der Unterschied zwischen isdisjoint und intersection?
Bleibt die Frage warum der Code im Buch funktioniert (bei dem Kollegen oben drüber auch) und bei mir in IDLE nicht. Das verwirrt mich etwas
>>> def search_for_vowels(word):
... """Return a boolean based on vowels found."""
... vowels = set('aeiou')
... found = vowels.intersection(set(word))
... return bool(found)
...
...
>>> search_for_vowels('Hamsterrad')
True
>>>
>>> search_for_vowels('Hmstrrd')
False
Verrückt... Also im Prompt klappt es nach einem Neustart von IDLE jetzt. Der Editor allerdings drückt nach Run nichts aus. Nur die Shell wird neugestartet.
Kotelettklopfer hat geschrieben: Mittwoch 2. März 2022, 16:52Was wäre der Unterschied zwischen isdisjoint und intersection?
Wenn Du gefragt wirst, ob in einem Wortes ein Vokal vorkommt, pickst Du Dir dann erst alle Vokale raus und sagst dann, weil a e und u im Wort sind, muß wohl ein Vokal vorkommen, oder hörst Du beim ersten `a` auf zu suchen und sagst, "ja"?
Sirius3 hat geschrieben: Mittwoch 2. März 2022, 18:55
Kotelettklopfer hat geschrieben: Mittwoch 2. März 2022, 16:52Was wäre der Unterschied zwischen isdisjoint und intersection?
Wenn Du gefragt wirst, ob in einem Wortes ein Vokal vorkommt, pickst Du Dir dann erst alle Vokale raus und sagst dann, weil a e und u im Wort sind, muß wohl ein Vokal vorkommen, oder hörst Du beim ersten `a` auf zu suchen und sagst, "ja"?
Ok verstanden.
Das "intersection" lässt sich aber erklären. Ich erarbeite mir gerade mein Wissen aus einem Buch. Bücher sind so aufgebaut dass sie Stück für Stück das zu lernende vermitteln und nicht direkt das volle Programm.
Der oben angegebene Code war ursprünglich etwas anders und gab die Vokale inkl. ihrer Anzahl im Wort heraus. Jetzt fängt man an mit Funktionen zu arbeiten und der Code wird Stück für Stück angepasst.
Dass das print im Code scheinbar vergessen wurde ist natürlich "witzig" wenn man bedenkt wie lange es das Buch bereits gitb und wie oft es verkauft wurde xD