Iteration · Итерация
Repeat with iteration
- Iteration means doing the same steps again and again.
- Loops save you from writing the same line many times.
- AP CSP cares about loops because they let a little code do a lot of work.
Повторение с помощью итерации
- Итерация означает повторение одних и тех же шагов снова и снова.
- Циклы избавляют вас от необходимости писать одну и ту же строку много раз.
- AP CSP重视 циклы, потому что они позволяют небольшому коду выполнять большую работу.
Count with for and range
for i in range(n):repeats the bodyntimes.range(5)gives0, 1, 2, 3, 4(it stops before 5).- The loop body is indented, like an
if.
Подсчет с помощью for и range
for i in range(n):повторяет тело циклаnраз.range(5)выводит0, 1, 2, 3, 4(останавливается перед 5).- Тело цикла отступает, подобно блоку
if.
for i in range(5):
print(i)
Build a total (accumulation)
- An accumulator is a variable that grows inside a loop.
- Start it at
0before the loop. - Add to it each pass to build a running total.
Построить сумму (накопление)
- Аккумулятор — это переменная, которая растет внутри цикла.
- Начните его со значения
0перед циклом. - Добавляйте к нему при каждой итерации для построения накопленной суммы.
total = 0
for n in range(1, 6):
total = total + n
print(total)
Loop until a condition with while
- A
whileloop repeats as long as its condition isTrue. - Something inside must move toward making it
False. - Use it when you do not know the count in advance.
Цикл до выполнения условия с помощью while
- Цикл
whileповторяется пока его условие истинно (True). - Что-то внутри должно двигаться toward making it
False. - Используйте его, когда вы не знаете количество заранее.
count = 3
while count > 0:
print(count)
count = count - 1
Loop over a list (for-each)
for item in mylist:visits each item in turn.- The loop variable holds one item per pass.
- This is the clean way to process every value.
Обход списка (for-each)
for item in mylist:посещает каждый элемент по очереди.- Переменная цикла хранит один элемент за итерацию.
- Это чистый способ обработать каждое значение.
scores = [10, 20, 30]
for s in scores:
print(s)
In AP CSP pseudocode
- CB has three loop shapes that match Python loops.
REPEAT n TIMES= a fixed count;REPEAT UNTIL(cond)= loop until true.FOR EACH x IN list= a for-each loop.DISPLAY= print,←==,MOD=%.
Псевдокод в AP CSP
- В CB есть три формы циклов, соответствующие циклам Python.
REPEAT n TIMES= фиксированное количество;REPEAT UNTIL(cond)= цикл до истинности.FOR EACH x IN list= цикл for-each.DISPLAY= print,←==,MOD=%.
REPEAT 5 TIMES
{
DISPLAY "hi"
}
count ← 3
REPEAT UNTIL (count = 0)
{
DISPLAY count
count ← count - 1
}
FOR EACH s IN scores
{
DISPLAY s
}
Common mistakes
range(n)runs0ton - 1.- Change the condition inside a
while, or it never stops.
Распространенные ошибки
range(n)выполняется от0доn - 1.- Измените условие внутри
while, иначе он никогда не остановится.
Now you try
- Use a loop in each task.
- Press Check answer to test your code.
Теперь попробуйте сами
- Используйте цикл в каждом задании.
- Нажмите Check answer (Проверить ответ), чтобы протестировать свой код.
Iteration repeats the body · Цикл повторяет тело кода
A loop repeats; a counter and a total change each pass. · В цикле происходит повторение; счетчик и сумма изменяются при каждом проходе.
Use a for loop with range(...) to add the whole numbers 1 through 10. Store the result in total. (It should be 55.) · Используйте цикл for с переменной range(...) для суммирования целых чисел от 1 до 10. Сохраните результат в переменную total. (Должно получиться 55.)
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.
Use a while loop to print the numbers 5, 4, 3, 2, 1, each on its own line, then print Go. Start from n = 5. · Используйте цикл while, чтобы распечатать числа от 5, 4, 3, 2, 1, каждое на новой строке, затем распечатайте ⟨Go⟩. Начните со значения n = 5.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.
nums is [3, 6, 7, 8, 10, 11]. Loop over it with a for-each loop and count how many values are even (use % 2 == 0). Store the count in evens. (It should be 3.) · nums равен [3, 6, 7, 8, 10, 11]. Пройдитесь по нему циклом for-each и подсчитайте, сколько значений являются четными (используйте % 2 == 0). Сохраните счетчик в evens. (Он должен быть равен 3.)
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.