19. Create your own


I want to make a sum that is equal or smaller than 10. For that, I want to create a list and then sum all itens in that list. Here is my code:

n = []
s = 0
for i in range(len(n)):
    for s <= 10:
        n[i] = raw_input("Number: ")
        s += n[i]
print s

However, I keep getting this error:

Oops, try again. Your code looks a bit off. Check out the examples in the previous exercises if you need help! Your code threw the following error: invalid syntax (python, line 4)

Apparently, there is a syntax error with for s <= 10 but I don't see that. For me it's the way it should be.


Hi @chipsurfer59539,

This will not work ...

for s <= 10:

The expression s <= 10 evaluates to True or False. Those are bool objects, which are not iterable.

You could use a while loop containing an if block and a break statement instead.

You do not need a nested loop.

Be aware that raw_input returns a str object.


Ok. I got to complete the lesson, but the code isn't working the way it should.

n = []
s = 0
for i in range(len(n)):
    while s <= 10:
        n[i] = int(raw_input("Number: "))
        s += n[i]
    print "Your sum is higher than 10"
print s

On the console I get:

Your sum is higher than 10

1) I never get to write any numbers. It never prints "Number: "
2) How should I put an if block inside the while loop? From what I've seen, that's not needed.


First, let's decide how the user should indicate that they are done entering numbers. Should the user enter an empty string to do that, or would you prefer that the user enter a 0 or a negative number?


They should stop entering numbers when the sum excedes 10. How could I establish this limit?


The problem, as you have defined it, is not very well suited for a for loop. You may wish to redefine the problem a little bit to satisfy the exercise specifications. It does call for a for loop.


Hi again @chipsurfer59539,

Your original idea was a good one. It is just that the exercise asks for a for loop, and your idea is best satisfied by a while loop.

for loops are usually, though not always, best for situations where you have a completed sequence or dict that you would like to process item-by-item, or where you would like to perform some action a specific number of times.

while loops are usually, though not always, best for situations where you would like to repeat an action until a particular event occurs. Concerning your idea, the event would be that the total has exceeded 10.

Below is an example solution for your idea that utilizes a while loop ...

nums = []
# loop until the total exceeds 10
while sum(nums) <= 10:
    nums.append(int(raw_input("Enter an integer: ")))
    print("The sum has reached {:d}.".format(sum(nums)))
    print("Your list is {:s}.".format(nums))

Output ...

Enter an integer: 1
Enter an integer: 2
Enter an integer: 3
Enter an integer: 4
Enter an integer: 5
The sum has reached 15.
Your list is [1, 2, 3, 4, 5].


This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.