zadanie z wykorzystaniem zbioru- pomoc w kodzie

0

Zadanie pochodzi z książki „Python.Rusz głową”
Skrypt ma wypisywać samogłoski ze słowa podanego przez użytkownika- bez duplikatów.
Autor podał następujący algorytm, który ma wykorzystywać pojęcie zbioru w Pythonie:

Moglibyśmy zatem skorzystać z in, aby sprawdzić, czy zbiór zawiera jakąkolwiek literę, a następnie za pomocą pętli for cyklicznie sprawdzać występowanie poszczególnych liter słowa w zbiorze.
Niby wszystko jest napisane ale jakoś nie wiem jak przełożyć to na kod Pythona. Utknąłem na dobre.

napisałem takie coś:

word=(input("podaj slowo do sprawdzenia samoglosek"))
vowels={'a','o','u','i','e',’y’}
vowels_in_word=set()
for letter in word:
    if letter in vowels:
       vowels_in_word.add(letter)
for i in vowels_in_word:
    print(i)

Z góry dziękuję za pomoc.

4

y masz w tyldzie a nie w apostrofie. A poza tym to chyba dziala.

0

dzięki stivens

2

Zrobiłbym to tak, złożoość, chyba będzie taka sama, ale, że tak powiem, przerzucasz "logikę" na Pythona:)

# input:
s1 = "the answer is 42"

s1_to_set = set(s1)

vowels = set("aouiey")

vowels_from_word = vowels.intersection(s1_to_set)

print(vowels_from_word)
2
word=(input("podaj slowo do sprawdzenia samoglosek"))
vowels = {'i', 'y', 'e', 'u', 'o', 'a'}
print(",".join(vowels & set(word)))
0

Krótsza ( o dwie linijki) wersja mojego pierwszego skryptu wykorzystująca operator in i pętle for:


word=(input("podaj slowo do sprawdzenia samoglosek"))
vowels = {'i', 'y', 'e', 'u', 'o', 'a'}
word=set(word)
for letter in word:
    if letter in vowels:
        print(letter)

1 użytkowników online, w tym zalogowanych: 0, gości: 1