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

课程 3. FOR cycle

难度:

任务«相邻元素»

💻 Python

工厂安装了一台新的包裹扫描仪。它逐个检查批次中的包裹。你是一名程序员,被指示为其编写程序。

rn

程序首先接收批次中的包裹数量(n)。然后,它开始逐个接收每个包裹的整数代码。

rn

扫描仪按照以下规则工作:

rn
    rn
  1. 如果包裹代码是负数,则视为扫描错误。此类包裹必须忽略,显示消息“错误代码,跳过。”并立即处理下一个包裹。
  2. rn
  3. 如果包裹代码能被13整除(例如0, 13, 26, ...),则该包裹被视为危险包裹。必须立即停止整个检查,显示消息“发现危险包裹,代码:
    [代码]!检查已停止。”并结束程序。
  4. rn
  5. 如果包裹代码是普通的非负数且不能被13整除,则将其值(数值)添加到所有已检查包裹的总值中。
  6. rn
  7. 如果整个批次检查完毕且未发现任何危险包裹,程序应显示消息“检查完成。包裹总价值:
    [总和]。”
  8. rn

输入格式

第一行包含一个整数 n (1 ≤ n ≤ 100) — 表示包裹的总数。
接下来的 n 行每行包含一个整数 — 表示下一个包裹的代码。

输出格式

程序根据包裹代码显示一条或多条消息:

  • 当代码为负数时: 错误代码,跳过。
  • 当检测到危险包裹时: 发现危险包裹,代码为:[code]!审计已停止。  (其中
    [code] — 即代码本身)。
  • 如果验证成功完成: 检查完成。包裹总价值:[sum]。  (其中
    [sum] — 价值的总金额)。

示例

输入

5
10
-5
20
15
2

输出

不正确的代码,通过。
检查已完成。包裹总价值:47。

提示

Basics of the forcycle

The for loop in Python is your main tool for iterating through elements in any sequence. Imagine that you have a box with different items. The for loop allows you to take one item at a time, do something with it, and move on to the next until the items in the box run out.

It is used to iterate over sequences such as lists, strings, tuples, sets, or even keys in a dictionary. The same block of code is executed for each element of the sequence.

Syntax:

for element in sequence:
    # a block of code that will be executed for each element
    # IMPORTANT: this block must be indented!

Here, the element is a temporary variable that is assigned a different value from the sequence at each iteration. You can name this variable any way you want, but it's better to choose a meaningful name (for example, fruit for a list of fruits or letter for a string).

Iterating through the list

A list is an ordered collection of items. The for loop will run through it from the first element to the last.

fruits = ['apple', 'banana', 'cherry']
for fruit in fruit:
    print(fruit)

Conclusion:

apple
banana
cherry

Iterating over the line

A string is, in fact, a sequence of characters. Therefore, the for loop can iterate over it just as easily.

word = "Python"
for a letter in a word:
    print(letter)

Conclusion:

P
y
t
h
o
n

Cycle control: break and continue

Sometimes you don't have to go through the whole cycle to the end. There are special operators for this.

The break operator

The break operator is used to immediately and completely terminate the loop. As soon as the program encounters a break, it immediately exits the loop and continues execution from the next line of code after it.

A useful tip: break is indispensable when you are looking for something. Once you've found what you're looking for, there's no point in continuing the search.

Example: We have a list of numbers, and we want to find the first even number and stop the loop as soon as it is found.

numbers = [1, 3, 5, 6, 7, 9, 10]
for num in numbers:
    if num % 2 == 0: # Check for parity
        print(f"The first even number is found: {num}")
break # Immediately exit the loop
print("The loop is completed.")

Conclusion:

The first even number was found: 6
The cycle is completed.

Please note that the numbers 7, 9, and 10 were not checked, as the cycle was interrupted by the number 6.

The continue operator

The continue operator is used to skip the current iteration and immediately move on to the next one. All the code that is in the loop after continue will not be executed for the current element.

A useful tip: continue is very convenient for "filtering" data inside a loop. If the current item doesn't suit you by some criterion, you just skip it and move on to the next one.

Example: We have a list of numbers, and we want to output all the numbers except the even ones.

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for num in numbers:
    if num % 2 == 0: # Check for parity
        continue # If the number is even, skip print() and go to the next number.
    print(num)

Conclusion:

1
3
5
7
9

When num was equal to 2, 4, 6, etc., the if condition was met, continue skipped the print(num) command, and the loop immediately started a new iteration.

The difference between break and continue is in a nutshell

  • break: "Stop, car!". Stops the cycle completely.
  • continue: "This one doesn't fit, let's do the next one!". Skips only the current step.

The else block in the for

loop

The for loop may have an optional else block. This block is executed only if the loop has completed all its iterations naturally, that is, it has not been interrupted by the break operator.

A useful tip: It is a very powerful tool for search tasks. The else block makes it easy to handle a situation where the search has ended but nothing has been found.

Example 1: The loop ended normally

for number in range(3):
print(number)
else:
    print("The cycle is completed without interruptions.")

Conclusion:

0
1
2
The cycle is completed without interruptions.

Example 2: The loop is interrupted by the break

operator
for number in range(3):
if number == 1:
        print("We found 1, we break the loop.")
break
    print(number)
else:
    # This block will not be executed because there was a break
    print("The cycle is completed without interruptions.")

Conclusion:

0
We found 1, we interrupt the cycle.

Practical examples

The sum of all the numbers in the list

This is a classic task for understanding how to work with a cycle and accumulate results.

numbers = [1, 2, 3, 4, 5]
amount = 0 # Initialize the variable to store the amount BEFORE the loop
for a number in numbers:
    sum += number # At each iteration, we add the current number to the total
print(f' Sum: {sum}') # Output the final result AFTER the loop

Conclusion: Amount: 15

A useful tip: Although this method perfectly demonstrates how the loop works, in real code it is better to use the built-in sum() function to find the sum of the list elements: print(sum(numbers)). It's shorter and more efficient.

Finding the maximum number in the list

Here we assume that the first element is the maximum, and then in the loop we compare it with all the others.

numbers = [1, 7, 3, 9, 5]
maximum = numbers[0] # We take the first element as the temporary maximum
for a number in numbers:
    if the number is > maximum: # If we find a number greater than our maximum...
maximum = number # ...then we update the maximum
print(f' Maximum: {maximum}')

Conclusion: Maximum: 9

A useful tip: As with the sum, Python has a built-in function max() for this task: print(max(numbers)). Knowing these functions saves time, but understanding how they work using the for loop is a key skill for a programmer.

main.py
测试 1
测试 2
测试 3
测试 4
测试 5
测试 6
测试 7
测试 8
测试 9
测试 10
开发者解答
# Сначала считываем количество посылок в партии
num_packages = int(input())

# Инициализируем переменную для хранения общей ценности
total_value = 0

# Запускаем цикл for, который будет выполняться num_packages раз
for _ in range(num_packages):
    # Считываем код очередной посылки
    package_code = int(input())

    # 1. Проверяем на ошибку сканирования (отрицательный код)
    if package_code < 0:
        print("Неверный код, пропуск.")
        # Пропускаем остаток кода и переходим к следующей итерации
        continue

    # 2. Проверяем, не является ли посылка опасной
    if package_code % 13 == 0:
        print(f"Обнаружена опасная посылка с кодом: {package_code}! Проверка остановлена.")
        # Немедленно выходим из цикла
        break

    # 3. Если посылка обычная, добавляем ее ценность к общей сумме
    total_value = total_value + package_code

# 4. Этот блок выполнится, только если цикл for завершился без break
else:
    print(f"Проверка завершена. Общая ценность посылок: {total_value}.")

🎉 恭喜! 🎉

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

AD

广告

red-snake blue-snake green-snake

正在运行代码...

AI助手

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