Celem jest utworzenie listy z akapitu użytkownika i iteracji, dzięki czemu będę mógł policzyć, ile słów zawiera specjalne litery „j, x, q, z”.
Przykładowe dane wejściowe:
W dziurze w ziemi mieszkał hobbit. Ani paskudna, brudna, mokra dziura, wypełniona końcami robaków i oleistym zapachem, ani sucha, naga, piaszczysta dziura, w której nie ma nic do siedzenia lub jedzenia; to była dziura hobbita, a to oznacza komfort.
Przykładowy wynik: 1 słowo z rzadkim znakiem
Zacząłem kod, w którym dzielę akapit użytkownika na listę, ale mam trudności z iteracją po liście i znajdowaniem każdego wystąpienia specjalnych liter.
Oto co mam do tej pory:
def rareChar(words):
rareWords = 0
rareChars = ['j', 'x', 'q', 'z']
for astring in words:
wds = words.split()
for char in wds:
if char in rareChars:
rareWords = rareWords + 1
return rareWords
def CoolPara(words):
print(rareChar(words), 'word(s) with a rare character')
# DO NOT CHANGE CODE BELOW
print(CoolPara(input("Enter: ")))
Jeśli uruchomię z przykładowym wejściem, otrzymam wynik „0 słów z rzadkim znakiem”. Jak mogłem to naprawić, aby uzyskać oczekiwany wynik. Każda pomoc byłaby bardzo mile widziana, ponieważ wciąż jestem stosunkowo nowy w programowaniu
Również krótka uwaga: wolno mi używać tylko metod / funkcji split () i Len ()
źródło
.index
powinien wykonać zadaniefor astring in words:
?Odpowiedzi:
Może to być okazja do zapoznania się z niektórymi funkcjami Pythona:
Ta odpowiedź wykorzystuje:
str
wcool_para
funkcję, ponieważ kod poniżej# DO NOT CHANGE CODE BELOW
komentarzu drukuje wynik wywołania funkcji.źródło
rare_chars()
nafind_rare_words()
.Idealnie chcesz używać rozumienia listy.
To daje ci:
źródło
Wejście: Witam, to zdanie o ogrodach zoologicznych
Wyjście: 1 słowo (słowa) z rzadkim znakiem
źródło
Poniższy kod jest Twoją edycją, która daje poprawną odpowiedź
1
Odpowiedź:
źródło
Ten kod będzie dla ciebie działał. Usuń zaznaczenie wprowadzonych słów i zaznacz instrukcję ciągu słów, której użyłem do przetestowania kodu.
Metoda para nie jest potrzebna.
źródło
Rozwiązanie dostarczone przez Barb działa na pojedynczą literę:
Ale nie działa z wieloma postaciami, o które pytał oryginalny plakat. Na przykład nie zwraca to poprawnych wyników:
Oto nieco ulepszona wersja rozwiązania Barb:
źródło