El objetivo es hacer una lista del párrafo del usuario e iterar para que pueda contar cuántas palabras contienen letras especiales "j, x, q, z".
Ejemplo de entrada:
en un hoyo en el suelo, vivía un hobbit. No es un agujero desagradable, sucio y húmedo, lleno de puntas de gusanos y un olor a humedad, ni tampoco un agujero seco, desnudo y arenoso sin nada para sentarse o comer; Era un hobbit-hoyo, y eso significa comodidad.
Ejemplo de salida: 1 palabra con un carácter raro
Comencé el código donde rompo el párrafo del usuario en una lista, pero me resulta difícil iterar a través de la lista y encontrar cada instancia de las letras especiales.
Esto es lo que tengo hasta ahora:
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 ejecuto con la entrada de ejemplo, obtengo una salida de '0 palabra (s) con un carácter raro'. ¿Cómo podría solucionar esto para poder obtener el resultado esperado? Cualquier ayuda sería muy apreciada ya que todavía soy relativamente nuevo en la codificación.
También una nota rápida: solo se me permite usar los métodos / funciones de split () y Len ()
fuente
.index
debería hacer el trabajofor astring in words:
?Respuestas:
Tal vez esta podría ser una oportunidad para presentarle algunas características de Python:
Esta respuesta usa:
str
en lacool_para
función porque el código debajo del# DO NOT CHANGE CODE BELOW
comentario está imprimiendo el resultado de la llamada a la función.fuente
rare_chars()
afind_rare_words()
.Idealmente, desea utilizar la comprensión de la lista.
Esto te da:
fuente
Entrada: Hola, esta es una oración sobre zoológicos
Salida: 1 palabra (s) con un caracter raro
fuente
El siguiente código es una edición tuya que da como resultado la respuesta correcta de
1
Responder:
fuente
Este código funcionará para ti. Desmarque la entrada de palabras y comente la declaración de cadena de palabras que usé para probar el código.
El método para no es necesario.
fuente
La solución proporcionada por Barb funciona para una sola letra:
Pero no funciona con varios personajes como lo solicitó el póster original. Por ejemplo, esto no devuelve los resultados correctos:
Aquí hay una versión ligeramente mejorada de la solución de Barb:
fuente