¿Cómo contar el número de palabras en una oración, ignorar números, puntuación y espacios en blanco?

¿Cómo voy a contar las palabras en una oración? Estoy usando Python.

Por ejemplo, podría tener la cadena:

string = "I     am having  a   very  nice  23!@$      day. "

Eso sería 7 palabras. Tengo problemas con la cantidad aleatoria de espacios después de cada palabra, así como cuando se trata de números o símbolos.

Respuestas a la pregunta(7)

Su respuesta a la pregunta