Nicolas Dandrimont wrote:
> I would go for something like:
>
> for char in word:
> if char in 'aeiouAEIUO':
> char_found = True
> break
> else:
> char_found = False
>
> (No, I did not forget to indent the else statement, see
> http://docs.python.org/reference/compound_stmts.html#for)
That might be better written as:
char_found = False
for char in word:
if char in 'aeiouAEIUO':
char_found = True
break
or even:
char_found = False
for char in word:
if char.lower() in 'aeiou':
char_found = True
break
but if word is potentially very large, it's probably better to reverse the
test: rather than compare every char of word to see if it is a vowel, just
search word for each vowel:
char_found = any( vowel in word for vowel in 'aeiouAEIOU' )
This moves the for-loop out of slow Python into fast C and should be much,
much faster for very large input.
--
Steven
--
http://mail.python.org/mailman/listinfo/python-list