On Monday, April 1, 2013 8:00:30 PM UTC-4, Steven D'Aprano wrote: > On Mon, 01 Apr 2013 14:44:45 -0700, khaosyt wrote: > > > > > If I wanted to get the sum of some numbers (for example: 1 + 2 + 3 + 4 + > > > 5 = 15) from the attached program what do I do? Keep in mind that the > > > print statement prints the integers individually. > > > > > > Yes, we know what the print statement does. Some of us have been using > > Python for weeks now. > > > > > > Some comments interspersed within your code below: > > > > > > > > > integer = 0 > > > denom = 10 > > > again = "y" #sentinel: > > > > Technically, that's not a sentinel. > > > > > while again == "y" or again == "Y": > > > integer = input("Enter a positive integer: ") > > > > I believe that the last time you asked this question, you were told not > > to use the "input" function as it was dangerous or can lead to hard-to- > > understand bugs. Change the above line to: > > > > integer = raw_input("Enter a positive integer: ") > > > > > > Notice that if you do this, the so-called "integer" is actually a string. > > This is a good thing! You want it as a string, since that makes it easy > > to extract individual digits. > > > > > > > while denom <= integer: > > > denom = denom*10 > > > while denom > 1: > > > denom = denom/10 > > > number = integer/denom > > > integer = integer%denom > > > print str(number) > > > > All this stuff with denom seems to be aimed at extracting the digits from > > a number. There's an easier way: just work with the string. > > > > After the line I suggested above > > > > integer = raw_input("Enter a positive integer: ") > > > > > > "integer" is a string of digits. So you can iterate over the digits using > > a for-loop: > > > > # this is not what you want! > > for digit in integer: > > print digit > > > > > > Instead of printing the digits, you want to add them up. So start by > > initialising a total, then add them: > > > > total = 0 > > for digit in integer: > > total = total + digit > > > > > > Warning! The above three lines contains a bug. If you make the changes I > > suggest, and try it, you will get an error. That's okay. Read the error. > > Try to understand what it is telling you. Hint: remember that total is an > > actual int, a number, while each digit is a single character, a string. > > > > You need to convert each digit into a number before adding it. Hint: the > > int function takes a string, and converts it to a number. > > > > py> 42 + "23" > > Traceback (most recent call last): > > File "<stdin>", line 1, in <module> > > TypeError: unsupported operand type(s) for +: 'int' and 'str' > > py> 42 + int("23") > > 65 > > > > > > This should hopefully give you enough information to get some working > > code. Try to write as much of the code as you can, and come back with any > > further questions *after* making a good effort. > > > > Another hint: try experimenting at the interactive interpreter, or IDLE. > > If you're unsure about something, try it and see what happens *before* > > asking. > > > > > > Good luck. > > > > > > > > > > -- > > Steven
Thanks. I'll try it out. -- http://mail.python.org/mailman/listinfo/python-list