O objetivo é fazer uma lista do parágrafo do usuário e iterar para que eu possa contar quantas palavras contêm letras especiais "j, x, q, z".
Exemplo de entrada:
Em um buraco no chão, vivia um hobbit. Nem um buraco nojento, sujo e úmido, cheio de pontas de vermes e um cheiro escorrendo, nem um buraco seco, nu e arenoso, sem nada para sentar ou comer; era um buraco de hobbit, e isso significa conforto.
Exemplo de saída: 1 palavra com um caractere raro
Comecei o código em que dividi o parágrafo do usuário em uma lista, mas estou tendo dificuldade para percorrer a lista e encontrar cada instância das letras especiais.
Isto é o que eu tenho até agora:
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: ")))
Se eu executar com a entrada de exemplo, recebo uma saída de '0 palavra (s) com um caractere raro'. Como eu poderia corrigir isso para que eu possa obter a saída esperada. Qualquer ajuda seria muito apreciada, pois ainda sou relativamente novo em codificação
Também uma observação rápida: só posso usar os métodos / funções de split () e Len ()
fonte
.index
deve fazer o trabalhofor astring in words:
?Respostas:
Talvez essa seja uma oportunidade para apresentar alguns recursos do python:
Esta resposta usa:
str
nacool_para
função porque o código abaixo do# DO NOT CHANGE CODE BELOW
comentário está imprimindo o resultado da chamada de função.fonte
rare_chars()
parafind_rare_words()
seu lugar.Idealmente, você deseja usar a compreensão da lista.
Isso lhe dá:
fonte
Entrada: Olá, esta é uma frase sobre zoológicos
Saída: 1 palavra (s) com um caractere raro
fonte
O código a seguir é uma edição sua que resulta na resposta adequada de
1
Responda:
fonte
Este código funcionará para você. Desmarque a entrada de palavras e observe a declaração de sequência de palavras que eu usei para testar o código.
O método para não é necessário.
fonte
A solução fornecida por Barb funciona com uma única letra:
Mas ele não funciona com vários caracteres, conforme solicitado pelo pôster original. Por exemplo, isso não retorna os resultados corretos:
Aqui está uma versão ligeiramente melhorada da solução de Barb:
fonte