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
Post a Comment