[Tutor] dealing with user input whose value I don't know
Luke Paireepinart
rabidpoobear at gmail.com
Thu Oct 2 19:11:39 CEST 2008
On Thu, Oct 2, 2008 at 12:06 PM, David <ldl08 at gmx.net> wrote:
> Hello,
>
> I am trying to do some exercises in John Zelle's book (chapter 4).
> I got stuck:
>
> "Write a program that finds the average of a series of numbers entered by
> the user. The program should first ask the user how many numbers there are.
> Note: the average should always be a float, even if the user inputs are all
> ints."
>
> Okay, I can ask how many number are to be added:
>
> numbers = input("How many number do you want me to calculate? ")
>
> If I then get a reply, say "5", what I would have to do next is to ask for
> the five numbers so that I can calculate the average.
> But given that I don't know the the value of 'numbers' ex ante, how could I
> ask for the right amount of numbers?
> I don't see how this can be achieved with the tools I have learned so far...
> I am currently thinking along the lines of
>
> ans1, ans2 = input("Enter the numbers separated by a comma: ")
> average = (ans1 + ans2) / 2.0
>
> But as I say - I don't know how many assignment there have to be, nor do I
> know how Python could then create these assignments.
This is a common issue beginners to programming have.
The question you ask yourself here is " do I really need a direct
reference in code to all my values?"
It appears to me that you don't.
For example, how would you do this in real life?
would you say
x = num1
x2 = num2
x3 = num3
...
xn = numn
x + x2 + x3 + x4 ... + xn / n
or would you do this:
1 + 2 + 3 + 4 + 5 / count
I would do the latter.
It's the same way in programming.
You can create these generic collections of items in Python. They are
called "lists."
I'm a little pressed for time (i have a class starting in a few
minutes) but this example should hopefully spark something in 'ya.
a = []
b = [1,2,3,4,5]
for item in b:
a.append(item)
Does that give you a hint about how you can add items to a collection
without caring how many you have?
Note that you can also do something like this (this is a bigger hint)
a = []
b = [1,2,3,4,5]
for i in range(len(b)):
a.append(b[i])
Good luck!
>
> It would be great if someone could guide me towards the right track!!
>
> Thanks,
>
> David
> _______________________________________________
> Tutor maillist - Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>
More information about the Tutor
mailing list