The sum of ten numbers inserted from the user
Schachner, Joseph
Joseph.Schachner at Teledyne.com
Thu Feb 7 14:17:45 EST 2019
I just realized that input has changed in Python 3 and I was using Python 2.7.13 with from __future__ import print_function and some others, but not that.
In Python 3 the int( ) or float( ) cast is necessary because input( ) does what raw_input( ) did in Python 2; raw_input( ) name is therefore removed.
--- Joe S.
From: Ian Clark <ianhclark510 at gmail.com>
Sent: Thursday, February 7, 2019 1:27 PM
To: Schachner, Joseph <Joseph.Schachner at Teledyne.com>
Cc: python-list at python.org
Subject: Re: The sum of ten numbers inserted from the user
This is my whack at it, I can't wait to hear about it being the wrong big o notation!
numbers=[]
while len(numbers) < 10:
try:
chip = int(input('please enter an integer: '))
except ValueError:
print('that is not a number, try again')
else:
numbers.append(chip)
print(sum(numbers))
On Thu, Feb 7, 2019 at 10:23 AM Schachner, Joseph <Joseph.Schachner at teledyne.com<mailto:Joseph.Schachner at teledyne.com>> wrote:
Well of course that doesn't work. For starters, x is an int or a float value. After the loop It holds the 10th value. It might hold 432.7 ... It is not a list.
The default start for range is 0. The stop value, as you already know, is not part of the range. So I will use range(10).
In the second loop, I think you thought x would be a list and you I'm sure you wanted to do
for y in x:
but instead you did
for y in range(x)
and remember x might be a very large number. So the second loop would loop that many times, and each pass it would assign y (which has first value of 0 and last value of whatever x-1 is) to sum. Even though its name is "sum" it is not a sum. After the loop it would hold x-1. You wanted to do sum += y. Or sum = sum + y. I prefer the former, but that could reflect my history as a C and C++ programmer.
And then you printed y, but you really want to print sum (assuming that sum was actually the sum).
Putting all of the above together, you want to do this:
vallist =[] # an empty list, so we can append to it
for n in range(10):
x = input("Insert a number: ") # get 1 number into x
vallist.append(x) # append it to our list
# Now vallist holds 10 values
sum = 0 # No need to start sum as a float, in Python if we add a float to an integer the result will be float. It doesn't matter in the program if sum is int or float.
for y in vallist:
sum += y
print( "The sum is: ", sum)
-----Original Message-----
From: ^Bart <gabriele1NOSPAM at hotmail.com<mailto:gabriele1NOSPAM at hotmail.com>>
Sent: Thursday, February 7, 2019 6:30 AM
To: python-list at python.org<mailto:python-list at python.org>
Subject: The sum of ten numbers inserted from the user
I thought something like it but doesn't work...
for n in range(1, 11):
x = input("Insert a number: ")
for y in range(x):
sum = y
print ("The sum is: ",y)
--
https://mail.python.org/mailman/listinfo/python-list
More information about the Python-list
mailing list