How to sum in a for loop in Python

avatar

Borislav Hadzhiev

Last updated: Jul 3, 2022

banner

Check out my new book

Sum in a for loop in Python #

To sum in a for loop in Python:

  1. Declare a new variable and set it to 0.
  2. Use a for loop to iterate over a sequence of numbers.
  3. Reassign the variable to its value plus the current number.
main.py
my_list = [2, 4, 6, 8] # ✅ sum using a for loop total = 0 for num in my_list: total += num print(total) # 👉️ 20 # ---------------------- # ✅ sum numbers in range using a for loop total_2 = 0 for num in range(1, 5): total_2 += num print(total_2) # 👉️ 10 print(list(range(1, 5))) # 👉️ [1, 2, 3, 4] # ---------------------- # ✅ sum numbers taken from user input using a for loop # 👇️ user enters 1 2 3 4 user_input = input('Enter space-separated numbers:') my_list = list(map(int, user_input.split())) print(my_list) # 👉️ [1, 2, 3, 4] total_3 = 0 for num in my_list: total_3 += num print(total_3) # 👉️ 10

We used a for loop to sum the numbers in a list.

The first step is to declare a new variable and initialize it to 0.

On each iteration, we use the += operator to reassign the variable to its current value plus the current number.

The following 2 lines of code achieve the same result:

  • total += num
  • total = total + num

Here is an example that uses the longer reassignment syntax.

main.py
my_list = [2, 4, 6, 8] total = 0 for num in my_list: total = total + num print(total) # 👉️ 20

If you need to add the numbers in a certain range using a for loop, create the range with the range() class.

main.py
total_2 = 0 for num in range(1, 5): total_2 += num print(total_2) # 👉️ 10 print(list(range(1, 5))) # 👉️ [1, 2, 3, 4]

The range class is commonly used for looping a specific number of times in for loops and takes the following parameters:

NameDescription
startAn integer representing the start of the range (defaults to 0)
stopGo up to, but not including the provided integer
stepRange will consist of every N numbers from start to stop (defaults to 1)

If you need to sum numbers taken from user input in a for loop, use the input() function.

main.py
# 👇️ user enters 1 2 3 4 user_input = input('Enter space-separated numbers:') my_list = list(map(int, user_input.split())) print(my_list) # 👉️ [1, 2, 3, 4] total_3 = 0 for num in my_list: total_3 += num print(total_3) # 👉️ 10

The input function takes an optional prompt argument and writes it to standard output without a trailing newline.

The input() function is guaranteed to return a string even if the user enters a number.

We ued the str.split() function to split the string on each space.

The str.split() method splits the original string into a list of substrings using a delimiter.

The method takes the following 2 parameters:

NameDescription
separatorSplit the string into substrings on each occurrence of the separator
maxsplitAt most maxsplit splits are done (optional)

If the separator is not found in the string, a list containing only 1 element is returned.

We used a whitespace separator in the example, but you use any other separator that suits your use case.

Here is an example that splits the user-provided string on each comma.

main.py
# 👇️ user enters 1,2,3,4 user_input = input('Enter comma-separated numbers:') my_list = list(map(int, user_input.split(','))) print(my_list) # 👉️ [1, 2, 3, 4] total_3 = 0 for num in my_list: total_3 += num print(total_3) # 👉️ 10

After splitting the string, we get a list of strings, so we used the map() function to convert each string in the list to an integer.

main.py
# 👇️ user enters 1,2,3,4 user_input = input('Enter comma-separated numbers:') # 👇️ ['1', '2', '3', '4'] print(user_input.split(','))

The map() function takes a function and an iterable as arguments and calls the function with each item of the iterable.

The map() function passes each string to the int() class and converts it to an integer.

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.
book cover
You can use the search field on my Home Page to filter through all of my articles.