Python Basics: create a range that includes all numbers -


i trying create function , keep on getting same error message. , have had problem while. (key) input supposed integer. same integer that's (x). input 200 key/x , output '11001000'. error message keep getting is:

"typeerror: 'int' object not iterable"

i trying make of numbers integers. trying make function executes same thing "{0:b}".format(200) deliver. code have come is:

def createbinkeyfromkey(key):     x in key:               return "{o:b}".format(x) 

i have tried use while loop execute correctly , not error message, hasn't worked far.

i call integer. in place says (key), input there integer. , return binary string of integer. example input createbinkeyfromkey(200) in python shell , return '11001000'

you can't iterate on integer, range of numbers use range() or xrange(). range() creates whole list first, while xrange() returns iterator(memory efficient) here:

def createbinkeyfromkey(key):     x in range(key):          yield "{0:b}".format(x) #use yield return end loop after first iteration 

using yield makes generator function.

demo:

>>> list(createbinkeyfromkey(10)) ['0', '1', '10', '11', '100', '101', '110', '111', '1000', '1001'] >>> x in createbinkeyfromkey(5): ...     print x  0 1 10 11 100 

help on range:

>>> range? range(stop) -> list of integers range(start, stop[, step]) -> list of integers  return list containing arithmetic progression of integers. range(i, j) returns [i, i+1, i+2, ..., j-1]; start (!) defaults 0. when step given, specifies increment (or decrement). example, range(4) returns [0, 1, 2, 3].  end point omitted! these valid indices list of 4 elements. 

Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -