newbie question: for loop within for loop confusion

Roy Smith roy at panix.com
Mon Jun 16 03:29:12 CEST 2008


In article 
<a0ff2569-a1a9-44c3-a68a-ee411dcd86eb at g16g2000pri.googlegroups.com>,
 takayuki <lawtonpaul at gmail.com> wrote:

> Hi,
> 
> I'm studying python via the exellent book "How to think like a python
> programmer" by Allen Downey.
> 
> Noob question follows...
> 
> animals.txt is a list of animals, each on a separate line: "aardvard,
> bat, cat, dog, elephant, fish, giraffe, horse, insect, jackelope"
> 
> I want to loop through the list of words and print words that don't
> have any "avoid" letter in them.
> 
> def hasnolet(avoid):
> 	fin = open('animals.txt')
> 	for line in fin:
> 		word = line.strip()
> 		for letter in avoid:
> 			if letter in word:
> 				break
> 			else:
> 				print word
> 
> hasnolet('abcd')
> 

I could give you a fish, or I could teach you to fish.  I'd rather do the 
latter.  So...

Take your inner loop:

>     for letter in avoid:
>        if letter in word:
>           break
>        else:
>           print word

and instrument it so you can see exactly what's happening.  Try something 
like:

>     for letter in avoid:
>        print "letter = %s" % letter
>        if letter in word:
>           print "it's in word"
>           break
>        else:
>           print "no it's not"
>           print word

and see if that helps.



More information about the Python-list mailing list