On Fri, 22 Aug 2008 15:44:15 -0700 (PDT), defn noob wrote:
> def letters():
>       a = xrange(ord('a'), ord('z')+1)
>       B = xrange(ord('A'), ord('Z')+1)
>       while True:
>               yield chr(a)
>               yield chr(B)
>
>
>>>> l = letters()
>>>> l.next()
>
> Traceback (most recent call last):
>   File "<pyshell#225>", line 1, in <module>
>     l.next()
>   File "<pyshell#223>", line 5, in letters
>     yield chr(a)
> TypeError: an integer is required
>>>>

The error you're seeing is a result of passing
non-integer to chr() function, it has nothing to do
with generators:

>>> chr([])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: an integer is required
>>>

I have simplified your code a bit:
-------------
import string
def letters():
        a, B = (string.letters,) * 2
        for i in zip(a, B):
                yield i[0]
                yield i[1]

l = letters()

print l.next()
print l.next()
print l.next()
--------------

and the output:

$ python genlet.py
a
a
b
$

Is that what you tried to achieve?

-- 
Regards,
Wojtek Walczak,
http://tosh.pl/gminick/
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to