Logo
Книга для начинающих
ВходРегистрация
/
Программирование
/
Курс Python
/

Цикл for и функция range

Python: Цикл for и функция range

Представьте, что у нас есть ряд чисел от 0 до 9. Мы хотим сложить эти числа. Мы могли бы сделать это так:

sum = 0
i = 0

while i < 10:
    sum += i
    i += 1

print(sum) # => 45

Такой код мы можем переписать на цикл for + range()

sum = 0

for i in range(10):
    sum += i

print(sum) # => 45

Функция range в Python создает последовательность чисел внутри определенного диапазона. Ее можно использовать в цикле for для контроля количества итераций.

Она поддерживает несколько вариантов вызова. Форма range(stop) создает последовательность от 0 до stop - 1. Форма range(start, stop) создает последовательность от start до stop - 1. Форма range(start, stop, step) создает последовательность из чисел от start до stop - 1 с шагом step.

Наглядно варианты range() выглядят так.

range(1, 5)  →  1, 2, 3, 4
range(0, 3)  →  0, 1, 2
range(5)     →  0, 1, 2, 3, 4
                 └── начало с 0, конец не включен

Пример с одним конечным значением мы рассмотрели выше. Рассмотрим другой - распечатаем на экран числа от 1 до 3:

for i in range(1, 4):
    print(i)

# => 1
# => 2
# => 3

Теперь попробуем вывести числа в обратном порядке

for i in range(3, 0, -1):
    print(i)

# => 3
# => 2
# => 1

На примерах выше мы видим, что итерация завершается до конечного значения.

Задание

FizzBuzz — одно из самых известных заданий на собеседованиях для начинающих программистов. Его дают, чтобы проверить умение работать с циклами и условиями. Реализуйте функцию fizzbuzz(n), которая возвращает строку с числами от 1 до n.

При этом:

  • если число делится на 3, вместо него подставляется слово "Fizz",
  • если число делится на 5 — слово "Buzz",
  • если делится и на 3, и на 5 — слово "FizzBuzz".

Все элементы должны соединяться пробелом.

Это задание нередко встречается на собеседованиях для программистов, поэтому полезно уметь его решать.

Пример вызова функции:

fizzbuzz(15)
# 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz

Алгоритм

Задание можно решить различными способами. Пример алгоритма:

  1. Объявить нейтральный элемент агрегации (пустая строка)
  2. Использовать цикл с числами от 1 до n
  3. Проверять число на условия деления
  4. Результат каждой итерации добавить в итоговый результат с помощью пробела.
Коммерческий опыт и Трудоустройство

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Если вы зашли в тупик, то самое время поговорить с нашим асситентом Тота во вкладке "ИИ-помощник":

Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.

Это нормально 🙆, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи. В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.

Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в обратной связи нашего сообщества

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
/
Программирование
/
Курс Python
/

Цикл for и функция range

Python: Цикл for и функция range

Представьте, что у нас есть ряд чисел от 0 до 9. Мы хотим сложить эти числа. Мы могли бы сделать это так:

sum = 0
i = 0

while i < 10:
    sum += i
    i += 1

print(sum) # => 45

Такой код мы можем переписать на цикл for + range()

sum = 0

for i in range(10):
    sum += i

print(sum) # => 45

Функция range в Python создает последовательность чисел внутри определенного диапазона. Ее можно использовать в цикле for для контроля количества итераций.

Она поддерживает несколько вариантов вызова. Форма range(stop) создает последовательность от 0 до stop - 1. Форма range(start, stop) создает последовательность от start до stop - 1. Форма range(start, stop, step) создает последовательность из чисел от start до stop - 1 с шагом step.

Наглядно варианты range() выглядят так.

range(1, 5)  →  1, 2, 3, 4
range(0, 3)  →  0, 1, 2
range(5)     →  0, 1, 2, 3, 4
                 └── начало с 0, конец не включен

Пример с одним конечным значением мы рассмотрели выше. Рассмотрим другой - распечатаем на экран числа от 1 до 3:

for i in range(1, 4):
    print(i)

# => 1
# => 2
# => 3

Теперь попробуем вывести числа в обратном порядке

for i in range(3, 0, -1):
    print(i)

# => 3
# => 2
# => 1

На примерах выше мы видим, что итерация завершается до конечного значения.

Задание

FizzBuzz — одно из самых известных заданий на собеседованиях для начинающих программистов. Его дают, чтобы проверить умение работать с циклами и условиями. Реализуйте функцию fizzbuzz(n), которая возвращает строку с числами от 1 до n.

При этом:

  • если число делится на 3, вместо него подставляется слово "Fizz",
  • если число делится на 5 — слово "Buzz",
  • если делится и на 3, и на 5 — слово "FizzBuzz".

Все элементы должны соединяться пробелом.

Это задание нередко встречается на собеседованиях для программистов, поэтому полезно уметь его решать.

Пример вызова функции:

fizzbuzz(15)
# 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz

Алгоритм

Задание можно решить различными способами. Пример алгоритма:

  1. Объявить нейтральный элемент агрегации (пустая строка)
  2. Использовать цикл с числами от 1 до n
  3. Проверять число на условия деления
  4. Результат каждой итерации добавить в итоговый результат с помощью пробела.
Коммерческий опыт и Трудоустройство

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Если вы зашли в тупик, то самое время поговорить с нашим асситентом Тота во вкладке "ИИ-помощник":

Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.

Это нормально 🙆, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи. В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.

Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в обратной связи нашего сообщества

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
← ПредыдущийСледующий →
← ПредыдущийСледующий →
← ПредыдущийСледующий →

Ваше упражнение проверяется по этим тестам

from solution import fizzbuzz


def test():
    assert fizzbuzz(1) == "1"
    assert fizzbuzz(3) == "1 2 Fizz"
    assert fizzbuzz(5) == "1 2 Fizz 4 Buzz"
    assert fizzbuzz(15) == "1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz"
← ПредыдущийСледующий →

Решение учителя откроется через:

20:00

waiting_clock
← ПредыдущийСледующий →