• 1
    数据输入输出
    • 任务
  • 2
    条件语句
    • 任务
  • 3
    for循环
    • 任务
  • 4
    字符串
    • 任务
  • 5
    while循环
    • 任务
  • 6
    列表
    • 任务
  • 7
    二维数组
    • 任务
  • 8
    字典
    • 任务
  • 9
    集合
    • 任务
  • 10
    函数与递归
    • 任务
  • к

课程 3. FOR cycle

难度:

任务«糖果的总和»

💻 Python

想象一下,你在万圣节去挨家挨户收集糖果。居民们非常慷慨且有条理!在第一栋房子里,你得到了1颗糖果,在第二栋房子里——2颗,在第三栋房子里——3颗,以此类推。每经过一栋新房子,给你的糖果数量就会增加一颗。

编写一个程序,计算如果你走访了给定数量的房子,你总共会有多少颗糖果。如果你没有进入任何房子(输入0或负数),那么你当然没有糖果。

目标: 计算糖果的总数。

输入格式

你走访过的房屋数量(一个整数)。

输出格式

收集到的糖果总数(一个整数)。

示例

输入

5

输出

15

提示

Diving into cycles: for and range()

The for loop is one of the most powerful and frequently used tools in Python. It allows you to repeat (or, as programmers say, iterate) a certain block of code a set number of times. His main idea is to sequentially iterate over elements from a collection (for example, a list of numbers, characters in a string, etc.) and perform the same action for each element.

The basic syntax looks like this:

for element in sequence:
    # a block of code that will be repeated

Here, the sequence can be not only numbers, but also, for example, a list of strings or just a string.

# Example of iterating through a list
for fruit in ["apple", "banana", "cherry"]:
print(fruit)

# Example of line iteration
for letter in "Python":
print(letter)

Generating sequences with range()

We often need to execute the code a certain number of times. The range() function is ideal for this, which creates a sequence of numbers. For example, range(5) creates a sequence from 0 to 4 (i.e. 0, 1, 2, 3, 4).

Combining for and range(), we get a classic construction for repetitions.:

for i in range(number):
    # code block

Let's analyze this construction:

  • for is the keyword that tells Python that we are starting a cycle.
  • i is a counter variable. At each step of the cycle, it will take the next value from the sequence. A useful tip: the variable name can be anything (i, j, k - these are generally accepted conventions for simple counters), but if you are going over something specific, it is better to give a meaningful name. for example for student in students:.
  • in is the keyword that binds the counter variable and the sequence.
  • range(number) calling a function that creates a sequence of integers from 0 to number - 1. It is important to remember that the upper bound is not included.
  • The code block (indented) is the commands that you want to execute for each number in the sequence.

Practical examples

Output of numbers from 0 to 4

for i in range(5):
    print(i)
# output: 0
# output: 1
# output: 2
# output: 3
# output: 4
  • range(5) creates an invisible sequence for us: 0, 1, 2, 3, 4.
  • The for loop assigns each of these values to the i variable in turn.
  • print(i) prints the current value of i at each step.

Re-executing the code 5 times

for i in range(5):
print("Hello world!")
# output: Hello world!
# conclusion: Hello, world!
# conclusion: Hello, world!
# conclusion: Hello, world!
# conclusion: Hello, world!
  • range(5) creates the sequence again 0, 1, 2, 3, 4.
  • The for loop goes through each of these numbers, but in this case we don't use the value of the i variable inside the loop. We just use the loop as a counter to run print("Hello, world!") exactly 5 times.

Summation of numbers from 0 to 4

amount = 0 # 1. Creating a "piggy bank" for the amount
for i in range(5):
    #2. At each step, we add the current number to the piggy bank
    sum += i
print(sum) # 3. We show what has accumulated in the end
# output: 10
  • amount = 0 initialize the variable amount. This is a critical step.
  • range(5) creates a sequence 0, 1, 2, 3, 4.
  • The for loop runs through each number. In the first step, the sum becomes 0 + 0 = 0. On the second one, 0 + 1 = 1. On the third one, 1 + 2 = 3. On the fourth floor, 3 + 3 = 6. On the fifth - 6 + 4 = 10.
  • sum +=i is a shortened and more "pythonic" notation for sum = sum + i. It increases the value of sum by the current value of i.
  • print(amount) outputs the total amount after the cycle is completely completed.

Flexibility range(): parameters start, stop, step

The range() function can take up to three parameters: start (start), stop (end) and step (step).

  • range(stop): creates a sequence from 0 to stop - 1.
  • range(start, stop): creates a sequence from start to stop - 1.
  • range(start, stop, step): creates a sequence from start to stop - 1 in step increments.

A useful tip: The step may be negative. This allows you to generate sequences in reverse order. In this case, the start value should be greater than stop.

  • range(5) -> 0, 1, 2, 3, 4
  • range(2, 6) -> 2, 3, 4, 5
  • range(1, 10, 2) -> 1, 3, 5, 7, 9
  • range(5, 0, -1) -> 5, 4, 3, 2, 1

What are increment and decrement?

An increment is simply an increase in the value of a variable, usually by 1. A decrement is a decrease in the value of a variable, usually by 1.

Some programming languages have special operators ++ and --, but Python does not have them. Instead, more explicit and flexible assignment operators with the operation are used.

Increment in Python: operator +=

We can easily increase the value of a variable using +=.

number = 5
# Increasing the value of the variable by 1
number += 1
print(number) # will output 6
  • the number = 5 sets the initial value.
  • number += 1 is an elegant shorthand for number = number + 1. She says, "take the current value of the number, add 1 to it, and write the result back to the number."

Decrement in Python: operator -=

Similar to increment, the -= operator is used for decrement.

number = 5
# Reducing the value of a variable by 1
number -= 1
print(number) # will output 4
  • the number = 5 sets the initial value.
  • number -= 1 is an abbreviation for number = number - 1.

Other useful operators

This principle works with all basic mathematical operations in Python. Instead of the number on the right, there may be another variable (a +=b).

a = 10
a += 5 # Equivalent to a = a + 5 (a will become 15)
a -= 3 # Equivalent to a = a - 3 (a will become 12)
a *= 2 # Equivalent to a = a * 2 (a will become 24)
a /= 4 # Is equivalent to a = a / 4 (a will become 6.0)
a %= 5 # Is equivalent to a = a %5 (a will become 1.0, the remainder of dividing 6 by 5)
a //= 3 # Is equivalent to a = a // 3 (a will become 0.0, integer division of 1 by 3)

Key ideas and useful tips

  • The for loop is designed to iterate through elements in any sequence (lists, strings, range, etc.).
  • The range() function is your main tool for creating sequences of numbers for loops. Remember that it does not include an upper bound!
  • Increment (+=) and decrement (-=) are the standard and preferred way to change numeric variables in Python.
  • Meaningful names. Give the loop variables understandable names (for book in books:), it makes the code much more readable.
  • Practice is the key to success! Try writing loops to solve different problems: find the sum of even numbers, print the multiplication table, and print a ladder of symbols.
main.py
测试 1
测试 2
测试 3
测试 4
测试 5
测试 6
测试 7
测试 8
测试 9
测试 10
开发者解答
# Получаем от пользователя количество домов, которое он обошел
# и сразу превращаем строку в целое число с помощью int()
number_of_houses = int(input())

# Проверяем, что количество домов больше нуля.
# Если зайти в 0 или -5 домов, конфет не собрать.
if number_of_houses > 0:
    # Создаем переменную для хранения общего количества конфет, начальное значение - 0
    total_candies = 0
    
    # Запускаем цикл, который перебирает числа от 1 до количества домов (включительно).
    # range(1, number_of_houses + 1) сгенерирует последовательность: 1, 2, 3, ..., number_of_houses
    for current_house_candies in range(1, number_of_houses + 1):
        # На каждой итерации добавляем к общей сумме количество конфет из текущего дома
        total_candies = total_candies + current_house_candies
        
    # После завершения цикла выводим итоговую сумму
    print(total_candies)
else:
    # Если количество домов было 0 или отрицательным, просто выводим 0
    print(0)
    

🎉 恭喜! 🎉

你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。

AD

广告

red-snake blue-snake green-snake

正在运行代码...

AI助手

你好!我是你的编程助手。随时向我提问关于 Python 的问题——我可以解释函数、方法,并帮助你完成当前任务!