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
