Задачи на строки в Python для начинающих

Строка в Python это текст в кавычках. Знак + склеивает строки, а * повторяет строку нужное число раз. Каждую задачу можно решить и проверить прямо на странице.

Задача 1 · Напиши программу

Линия из знаков равно

Напиши программу, которая выводит линию из 20 знаков =.

Используй команду print и знак *.

Должно получиться
====================
Подсказка
  1. Знак = в кавычках это текст. Текст можно повторить звёздочкой.
  2. После звёздочки стоит число без кавычек: сколько раз повторить.
  3. Получится print("=" * ...): вместо точек число.
Разбор
print("=" * 20)

Звёздочка повторила текст = двадцать раз. Знаки не нужно считать по одному: для линии длиннее хватит поменять число.

Задача 2 · Напиши программу

Узор из пар знаков

Напиши программу, которая выводит узор из трёх строк. В каждой строке пара знаков повторяется 6 раз.

Используй знак * в каждой строке.

Должно получиться
<><><><><><>
><><><><><><
<><><><><><>
Подсказка
  1. Звёздочка повторяет весь текст в кавычках, даже если в нём два знака.
  2. Посмотри, с какого знака начинается вторая строка. Какая пара в ней повторяется?
  3. Вторая строка: print("><" * 6).
Разбор
print("<>" * 6)
print("><" * 6)
print("<>" * 6)

Звёздочка повторяет пару знаков целиком. Во второй строке пара стоит наоборот, ><, поэтому соседние строки узора не совпадают.

Задача 3 · Напиши программу

Умножение полосками

Напиши программу, которая выводит полосками таблицу умножения на 4: от 2 * 4 до 5 * 4. В каждой полоске столько знаков #, сколько получается в примере. Ответы в уме не считай: пусть их посчитает Python.

Используй звёздочку два раза в каждой строке: в примере и для повтора знака.

Должно получиться
########
############
################
####################
Подсказка
  1. С числами звёздочка умножает, с текстом повторяет. Здесь нужно и то и другое.
  2. Сколько раз повторить, можно написать примером, а не готовым числом. Поставь пример в круглых скобках после звёздочки.
  3. Первая строка: print("#" * (2 * 4)). В остальных меняется только первое число примера.
Разбор
print("#" * (2 * 4))
print("#" * (3 * 4))
print("#" * (4 * 4))
print("#" * (5 * 4))

Python сначала считает пример в скобках: 2 * 4 даёт 8. Потом звёздочка повторяет знак # восемь раз. Строки отличаются одной цифрой, поэтому считать ответы самому не нужно.

Задача 4 · Почини программу

Линия под заголовком

Почини программу: она должна вывести заголовок и линию под ним.

Должно получиться
Список дел
==========
Код для старта
print("Список дел")
print("=" * "10")
Подсказка
  1. Запусти программу и прочитай перевод под красной надписью.
  2. Повторить текст можно только число раз. А "10" в кавычках это текст, а не число.
  3. Сотри кавычки вокруг 10: print("=" * 10).
Разбор
print("Список дел")
print("=" * 10)

Число в кавычках Python считает текстом, и сколько раз повторять, он не понял. Без кавычек 10 снова число, и звёздочка повторяет знак = десять раз.

Задача 5 · Напиши программу

Банка и кабан

Напиши программу, которая выводит два слова, каждое на своей строке. Оба слова склей плюсом из одних и тех же кусков: бан и ка.

Используй знак + в каждой строке.

Должно получиться
банка
кабан
Подсказка
  1. Каждое слово это свой print. Плюс склеивает куски вплотную, без пробела.
  2. Посмотри, с какого куска начинается каждое слово.
  3. Первая строка: print("бан" + "ка"). Во второй куски стоят наоборот.
Разбор
print("бан" + "ка")
print("ка" + "бан")

Плюс склеивает куски в том порядке, в каком они написаны. С числами порядок не важен: 2 + 3 и 3 + 2 дают одно и то же. С текстом важен: куски те же, а слово другое.

Задача 6 · Почини программу

Уровень пройден

Почини программу: она должна вывести сообщение о пройденном уровне.

Должно получиться
Уровень 5 пройден
Код для старта
print("Уровень " + 5 + " пройден")
Подсказка
  1. Запусти программу и прочитай перевод под красной надписью.
  2. Плюс склеивает только текст с текстом. Поставь 5 через запятую или сделай его текстом: возьми в кавычки.
  3. Запятая сама ставит пробелы: print("Уровень", 5, "пройден"). С кавычками получится print("Уровень " + "5" + " пройден").
Разбор
print("Уровень " + "5" + " пройден")

Число без кавычек плюсом к тексту не приклеить. В кавычках 5 становится текстом, и плюс склеивает три куска в одну строку. Запятая тоже подходит: она ставит число рядом с текстом и сама добавляет пробелы.

Задача 7 · Напиши программу

Пять слогов через дефис

Напиши программу, которая выводит слог ля пять раз через дефис.

Используй звёздочку и плюс.

Должно получиться
ля-ля-ля-ля-ля
Подсказка
  1. Посмотри на конец строки: после последнего ля дефиса нет. Что будет, если повторить ля- пять раз?
  2. Повтори ля- четыре раза, а последний ля приклей плюсом.
  3. Получится print("ля-" * 4 + "ля").
Разбор
print("ля-" * 4 + "ля")

Сначала звёздочка повторила ля- четыре раза, потом плюс приклеил последний слог без дефиса. Дефисов на один меньше, чем слогов.

Задача 8 · Напиши программу

Полоска загрузки

Напиши программу, которая выводит полоску загрузки в квадратных скобках. В полоске 10 клеток: 6 заполнены знаком =, 4 пустые.

Используй звёздочку для знаков = и пробелов, а плюс для склейки.

Должно получиться
[======    ]
Подсказка
  1. Пустая клетка это пробел. Пробел тоже текст, и его можно повторить звёздочкой.
  2. Полоска склеена плюсами из четырёх кусков: скобка, знаки =, пробелы и скобка.
  3. Получится print("[" + "=" * 6 + " " * ... + "]"): вместо точек число.
Разбор
print("[" + "=" * 6 + " " * 4 + "]")

Звёздочка повторила и знаки =, и пробелы, а плюсы склеили их со скобками. Скобки нужны, чтобы пустые клетки было видно.

Задача 9 · Напиши программу

Лавка в игре

Напиши программу, которая выводит цены в лавке из игры. В каждой строке ровно 16 знаков вместе с буквами и цифрами, поэтому цены стоят столбиком.

Используй звёздочку для точек и плюс для склейки.

Должно получиться
Меч...........45
Шлем..........30
Арбалет.......80
Подсказка
  1. Слова разной длины, а цены стоят друг под другом. Значит, точек в каждой строке своё число.
  2. Считай так: от 16 отними буквы товара и две цифры цены. В слове Меч 3 буквы: выходит 11 точек.
  3. Первая строка: print("Меч" + "." * 11 + "45"). В других строках другое слово, другое число точек и другая цена.
Разбор
print("Меч" + "." * 11 + "45")
print("Шлем" + "." * 10 + "30")
print("Арбалет" + "." * 7 + "80")

Звёздочка повторила точки, а плюсы склеили их с товаром и ценой. Точек в строках разное число, но знаков всегда 16: 3 + 11 + 2, 4 + 10 + 2 и 7 + 7 + 2. Поэтому цены стоят ровно друг под другом.

Задача 10 · Почини программу

Поезд из вагонов

Почини программу: она должна вывести паровоз и три одинаковых вагона.

Используй круглые скобки, остальной код не меняй.

Должно получиться
<##[====][====][====]
Код для старта
print("<##" + "[" + "=" * 4 + "]" * 3)
Подсказка
  1. Запусти программу. Красной надписи нет, но поезд не тот. Что повторилось три раза?
  2. Звёздочка считается раньше плюса и берёт только кусок рядом с ней: "]". А повторить нужно весь вагон.
  3. С текстом круглые скобки работают так же, как с числами. Вагон в скобках: ("[" + "=" * 4 + "]") * 3, а паровоз оставь снаружи.
Разбор
print("<##" + ("[" + "=" * 4 + "]") * 3)

Звёздочка считается раньше плюса, поэтому программа повторила только квадратную скобку. То, что в круглых скобках, Python считает первым: вагон склеился целиком, и звёздочка повторила весь вагон. Паровоз стоит снаружи скобок, поэтому он один.

Задача 11 · Напиши программу

Слово в рамке

Напиши программу, которая выводит слово Python в рамке шириной 16 знаков. Слово стоит посередине.

Используй звёздочку для линий и пробелов вокруг слова, а плюс для склейки.

Должно получиться
================
|    Python    |
================
Подсказка
  1. Верхняя и нижняя линии одинаковые: 16 знаков =.
  2. Средняя строка тоже из 16 знаков: две палочки по краям, слово из 6 букв и пробелы. Сколько пробелов остаётся на каждую сторону?
  3. Средняя строка: print("|" + " " * 4 + "Python" + " " * 4 + "|").
Разбор
print("=" * 16)
print("|" + " " * 4 + "Python" + " " * 4 + "|")
print("=" * 16)

Средняя строка склеена из частей: 1 + 4 + 6 + 4 + 1, всего 16 знаков. Поэтому она такой же ширины, как линии сверху и снизу.

Задача 12 · Напиши программу

Пирамида из кубиков

Напиши программу, которая выводит пирамиду из четырёх рядов кубиков [].

Используй звёздочку для кубиков и пробелов слева, а плюс для склейки.

Должно получиться
   []
  [][]
 [][][]
[][][][]
Подсказка
  1. Нижняя строка без пробелов. В каждой строке выше на один кубик меньше и на один пробел слева больше.
  2. Пробелы слева повторяет звёздочка, кубики тоже. Плюс склеивает пробелы с кубиками.
  3. Вторая строка: print(" " * 2 + "[]" * 2).
Разбор
print(" " * 3 + "[]")
print(" " * 2 + "[]" * 2)
print(" " + "[]" * 3)
print("[]" * 4)

Пробелы слева и кубики повторяет звёздочка, а плюс склеивает их. Кубик занимает два знака, а пробел один. Поэтому каждый пробел сдвигает строку на полкубика, и пирамида выходит ровной.