On 5/13/14 11:38 PM, Leonardo Petry wrote:
Hi All,

So I am starting with python and I have been working on some simple exercises.

Here is something I found curious about python loops

This loop run each character in a string

def avoids(word,letters):
        flag = True
        for letter in letters:
                if(letter in word):
                        flag = False
        return flag

The loop below (at the bottom) runs each line of the file

fin = open('wordplay.txt');
user_input = raw_input('Enter some characters: ')
count = 0
for line in fin:
     word = line.strip()
     if(avoids(word, user_input)):
        count += 1;

This is just too convenient.
Basically my question is: Why is python not treating the contents of 
wordplay.txt as one long string and looping each character?

Any comment is greatly appreciate. Thanks



Every class can decide for itself how it will behave when iterated over (including deciding whether it can be iterated at all). File objects produce lines, strings produce characters, lists produce elements, dictionaries produce keys. Other objects do more exotic things.

You might find this helpful: http://bit.ly/pyiter It's a PyCon talk all about iteration in Python, aimed at new learners.

--
Ned Batchelder, http://nedbatchelder.com

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to