简体   繁体   中英

Print user input in sequential order using for loop (Python)

I would like to request for five numbers from the user and print the numbers in a list followed by the sum of the numbers:

ie

number1: number2: number3: number4: number5: Sum:

For my code it prints this instead,

号码: 号码 1: 号码: 号码 2:

This is my code:

#prompt for 5 numbers 
x=1
num=0 
while True: 
    try: 
        sum = 0
        for y in range (1,6,1):
            num = int (input("number:"))
            sum = sum + num 
            print("number",x,":",num)
            x += 1 
        print ("Sum of numbers: ", sum)

    except ValueError: 
        print("Please enter a valid number")
        continue 

How may I fix it such that it prints in a list instead?

Is this what you meant

#prompt for 5 numbers 
x=1
num=0
while True: 
    try: 
        sum = 0
        for y in range (1,6,1):
            num = int (input("number "+str(x)+":"))
            sum = sum + num
            x += 1 
        print ("Sum of numbers: ", sum)
        x=1

    except ValueError: 
        print("Please enter a valid number")
        continue 

Worked Example

number 1:2
number 2:5
number 3:4
number 4:8
number 5:1
Sum of numbers:  20

There is no need for print("number",x,":",num) and need to add break to exit the while loop.

So your code should look like this:

#prompt for 5 numbers 
x=1
num=0 
while True: 
    try: 
        sum = 0
        for y in range (1,6,1):
            num = int (input("number:"))
            sum = sum + num 
            # print("number",x,":",num)
            x += 1 
        print ("Sum of numbers: ", sum)
        break

    except ValueError: 
        print("Please enter a valid number")
        continue 

Output:

number:3
number:a
Please enter a valid number
number:4
number:2
number:3
number:5
number:4
Sum of numbers:  18

Try this,

numbers = [int(input()) for _ in range(5)]
print(': '.join(map(lambda x: f'number{x}',numbers))+': Sum: '+str(sum(numbers)))

Output:

number1: number2: number3: number4: number5: sum: 15

I found the problem and it's quite simple, really

Rename sum to something else like total . Sum actually means something else(it is a keyword)

So your code should look like this-

#prompt for 5 numbers 
x=1
num=0 
while True: 
try: 
    total = 0
    for y in range (1,6,1):
        num = int (input("number:"))
        total += num 
        print("number",x,":",num)
        x += 1 
    print ("Sum of numbers: ", total)

except ValueError: 
    print("Please enter a valid number")
    continue 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM