Le but est de faire une liste à partir du paragraphe de l'utilisateur et de l'itérer afin que je puisse compter combien de mots contiennent des lettres spéciales "j, x, q, z".
Exemple d'entrée:
Dans un trou dans le sol, vivait un hobbit. Pas un trou méchant, sale et humide, rempli des extrémités de vers et d'une odeur suintante, ni encore un trou sec, nu et sablonneux sans rien pour s'asseoir ou manger; c'était un trou de hobbit, et cela signifie confort.
Exemple de sortie: 1 mot avec un caractère rare
J'ai commencé le code où je casse le paragraphe de l'utilisateur dans une liste mais j'ai du mal à parcourir la liste et à trouver chaque instance des lettres spéciales.
Voici ce que j'ai jusqu'à présent:
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: ")))
Si je lance avec l'exemple d'entrée, j'obtiens une sortie de '0 mot (s) avec un caractère rare'. Comment pourrais-je résoudre ce problème afin que je puisse obtenir la sortie attendue. Toute aide serait grandement appréciée car je suis encore relativement nouveau dans le codage
Aussi une note rapide: je ne suis autorisé qu'à utiliser les méthodes / fonctions de split () et Len ()
la source
.index
devrait faire le travailfor astring in words:
?Réponses:
Cela pourrait peut-être être l'occasion de vous présenter quelques fonctionnalités de python:
Cette réponse utilise:
str
dans lacool_para
fonction car le code sous le# DO NOT CHANGE CODE BELOW
commentaire imprime le résultat de l'appel de fonction.la source
rare_chars()
à lafind_rare_words()
place.Idéalement, vous souhaitez utiliser la compréhension de liste.
Cela vous donne:
la source
Entrée: Bonjour, c'est une phrase sur les zoos
Sortie: 1 mot (s) avec un caractère rare
la source
Le code suivant est une modification de la vôtre qui se traduit par la bonne réponse de
1
Réponse:
la source
Ce code fonctionnera pour vous. Ne marquez pas l'entrée des mots et remarquez la chaîne de mots que j'ai utilisée pour tester le code.
La méthode para n'est pas nécessaire.
la source
La solution proposée par Barb fonctionne pour une seule lettre:
Mais cela ne fonctionne pas avec plusieurs personnages comme l'a demandé l'affiche originale. Par exemple, cela ne renvoie pas les résultats corrects:
Voici une version légèrement améliorée de la solution de Barb:
la source