[EMAIL PROTECTED] wrote: > Hi there, > > I'm in the process of learning Python, and need some help deciphering > the reason why the following code doesn't work:
Ziyad has answered your immediate question but I have a few more comments. > > import sys, string > > def dec2bin(decNum): > # validate the input as a postive integer number > for char in decNum: > if str(char).isdigit() == False: char is already a string so you don't have to call str(char), just use char directly: if char.isdigit() == False: but you don't have to compare to False, either, just say if not char.isdigit(): in fact you can call isdigit() on the whole string, it will test if all the characters are digits. So instead of the loop just write if not decNum.isdigit(): > print "Not a postive integer number given when calling > the dec2bin > function." > sys.exit() > > bin = "" # initialize the new > binary result (as a string) > num = int(decNum) OK, num is an integer now. > > if num == 0: # take care of the zero case > bin = "0" > > while int(num) != 0: # the rest of the cases > nextBin = int(num) % 2 # check if this column should > be a 0 or 1 > bin = str(nextBin) + bin # add the result to the > front of the result > string > int(num) = int(num) / 2 # this is integer division, so > we truncate > the decimal part You don't have to keep saying int(num), num is already an int and dividing by 2 gives a new int. You can just use num directly. > > return bin # return the > binary result > > # testing > x = "13" > print dec2bin(x) Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor