Задачи на строки в Python для начинающих
Строка в Python это текст в кавычках. Знак + склеивает строки, а * повторяет строку нужное число раз. Каждую задачу можно решить и проверить прямо на странице.
Задача 1 · Напиши программу
Линия из знаков равно
Напиши программу, которая выводит линию из 20 знаков =.
Используй команду print и знак *.
====================Подсказка
- Знак
=в кавычках это текст. Текст можно повторить звёздочкой. - После звёздочки стоит число без кавычек: сколько раз повторить.
- Получится
print("=" * ...): вместо точек число.
Разбор
print("=" * 20)Звёздочка повторила текст = двадцать раз. Знаки не нужно считать по одному: для линии длиннее хватит поменять число.
Задача 2 · Напиши программу
Узор из пар знаков
Напиши программу, которая выводит узор из трёх строк. В каждой строке пара знаков повторяется 6 раз.
Используй знак * в каждой строке.
<><><><><><>
><><><><><><
<><><><><><>Подсказка
- Звёздочка повторяет весь текст в кавычках, даже если в нём два знака.
- Посмотри, с какого знака начинается вторая строка. Какая пара в ней повторяется?
- Вторая строка:
print("><" * 6).
Разбор
print("<>" * 6)
print("><" * 6)
print("<>" * 6)Звёздочка повторяет пару знаков целиком. Во второй строке пара стоит наоборот, ><, поэтому соседние строки узора не совпадают.
Задача 3 · Напиши программу
Умножение полосками
Напиши программу, которая выводит полосками таблицу умножения на 4: от 2 * 4 до 5 * 4. В каждой полоске столько знаков #, сколько получается в примере. Ответы в уме не считай: пусть их посчитает Python.
Используй звёздочку два раза в каждой строке: в примере и для повтора знака.
########
############
################
####################Подсказка
- С числами звёздочка умножает, с текстом повторяет. Здесь нужно и то и другое.
- Сколько раз повторить, можно написать примером, а не готовым числом. Поставь пример в круглых скобках после звёздочки.
- Первая строка:
print("#" * (2 * 4)). В остальных меняется только первое число примера.
Разбор
print("#" * (2 * 4))
print("#" * (3 * 4))
print("#" * (4 * 4))
print("#" * (5 * 4))Python сначала считает пример в скобках: 2 * 4 даёт 8. Потом звёздочка повторяет знак # восемь раз. Строки отличаются одной цифрой, поэтому считать ответы самому не нужно.
Задача 4 · Почини программу
Линия под заголовком
Почини программу: она должна вывести заголовок и линию под ним.
Список дел
==========print("Список дел")
print("=" * "10")Подсказка
- Запусти программу и прочитай перевод под красной надписью.
- Повторить текст можно только число раз. А
"10"в кавычках это текст, а не число. - Сотри кавычки вокруг 10:
print("=" * 10).
Разбор
print("Список дел")
print("=" * 10)Число в кавычках Python считает текстом, и сколько раз повторять, он не понял. Без кавычек 10 снова число, и звёздочка повторяет знак = десять раз.
Задача 5 · Напиши программу
Банка и кабан
Напиши программу, которая выводит два слова, каждое на своей строке. Оба слова склей плюсом из одних и тех же кусков: бан и ка.
Используй знак + в каждой строке.
банка
кабанПодсказка
- Каждое слово это свой
print. Плюс склеивает куски вплотную, без пробела. - Посмотри, с какого куска начинается каждое слово.
- Первая строка:
print("бан" + "ка"). Во второй куски стоят наоборот.
Разбор
print("бан" + "ка")
print("ка" + "бан")Плюс склеивает куски в том порядке, в каком они написаны. С числами порядок не важен: 2 + 3 и 3 + 2 дают одно и то же. С текстом важен: куски те же, а слово другое.
Задача 6 · Почини программу
Уровень пройден
Почини программу: она должна вывести сообщение о пройденном уровне.
Уровень 5 пройденprint("Уровень " + 5 + " пройден")Подсказка
- Запусти программу и прочитай перевод под красной надписью.
- Плюс склеивает только текст с текстом. Поставь
5через запятую или сделай его текстом: возьми в кавычки. - Запятая сама ставит пробелы:
print("Уровень", 5, "пройден"). С кавычками получитсяprint("Уровень " + "5" + " пройден").
Разбор
print("Уровень " + "5" + " пройден")Число без кавычек плюсом к тексту не приклеить. В кавычках 5 становится текстом, и плюс склеивает три куска в одну строку. Запятая тоже подходит: она ставит число рядом с текстом и сама добавляет пробелы.
Задача 7 · Напиши программу
Пять слогов через дефис
Напиши программу, которая выводит слог ля пять раз через дефис.
Используй звёздочку и плюс.
ля-ля-ля-ля-ляПодсказка
- Посмотри на конец строки: после последнего
лядефиса нет. Что будет, если повторитьля-пять раз? - Повтори
ля-четыре раза, а последнийляприклей плюсом. - Получится
print("ля-" * 4 + "ля").
Разбор
print("ля-" * 4 + "ля")Сначала звёздочка повторила ля- четыре раза, потом плюс приклеил последний слог без дефиса. Дефисов на один меньше, чем слогов.
Задача 8 · Напиши программу
Полоска загрузки
Напиши программу, которая выводит полоску загрузки в квадратных скобках. В полоске 10 клеток: 6 заполнены знаком =, 4 пустые.
Используй звёздочку для знаков = и пробелов, а плюс для склейки.
[====== ]Подсказка
- Пустая клетка это пробел. Пробел тоже текст, и его можно повторить звёздочкой.
- Полоска склеена плюсами из четырёх кусков: скобка, знаки
=, пробелы и скобка. - Получится
print("[" + "=" * 6 + " " * ... + "]"): вместо точек число.
Разбор
print("[" + "=" * 6 + " " * 4 + "]")Звёздочка повторила и знаки =, и пробелы, а плюсы склеили их со скобками. Скобки нужны, чтобы пустые клетки было видно.
Задача 9 · Напиши программу
Лавка в игре
Напиши программу, которая выводит цены в лавке из игры. В каждой строке ровно 16 знаков вместе с буквами и цифрами, поэтому цены стоят столбиком.
Используй звёздочку для точек и плюс для склейки.
Меч...........45
Шлем..........30
Арбалет.......80Подсказка
- Слова разной длины, а цены стоят друг под другом. Значит, точек в каждой строке своё число.
- Считай так: от 16 отними буквы товара и две цифры цены. В слове
Меч3 буквы: выходит 11 точек. - Первая строка:
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)Подсказка
- Запусти программу. Красной надписи нет, но поезд не тот. Что повторилось три раза?
- Звёздочка считается раньше плюса и берёт только кусок рядом с ней:
"]". А повторить нужно весь вагон. - С текстом круглые скобки работают так же, как с числами. Вагон в скобках:
("[" + "=" * 4 + "]") * 3, а паровоз оставь снаружи.
Разбор
print("<##" + ("[" + "=" * 4 + "]") * 3)Звёздочка считается раньше плюса, поэтому программа повторила только квадратную скобку. То, что в круглых скобках, Python считает первым: вагон склеился целиком, и звёздочка повторила весь вагон. Паровоз стоит снаружи скобок, поэтому он один.
Задача 11 · Напиши программу
Слово в рамке
Напиши программу, которая выводит слово Python в рамке шириной 16 знаков. Слово стоит посередине.
Используй звёздочку для линий и пробелов вокруг слова, а плюс для склейки.
================
| Python |
================Подсказка
- Верхняя и нижняя линии одинаковые: 16 знаков
=. - Средняя строка тоже из 16 знаков: две палочки по краям, слово из 6 букв и пробелы. Сколько пробелов остаётся на каждую сторону?
- Средняя строка:
print("|" + " " * 4 + "Python" + " " * 4 + "|").
Разбор
print("=" * 16)
print("|" + " " * 4 + "Python" + " " * 4 + "|")
print("=" * 16)Средняя строка склеена из частей: 1 + 4 + 6 + 4 + 1, всего 16 знаков. Поэтому она такой же ширины, как линии сверху и снизу.
Задача 12 · Напиши программу
Пирамида из кубиков
Напиши программу, которая выводит пирамиду из четырёх рядов кубиков [].
Используй звёздочку для кубиков и пробелов слева, а плюс для склейки.
[]
[][]
[][][]
[][][][]Подсказка
- Нижняя строка без пробелов. В каждой строке выше на один кубик меньше и на один пробел слева больше.
- Пробелы слева повторяет звёздочка, кубики тоже. Плюс склеивает пробелы с кубиками.
- Вторая строка:
print(" " * 2 + "[]" * 2).
Разбор
print(" " * 3 + "[]")
print(" " * 2 + "[]" * 2)
print(" " + "[]" * 3)
print("[]" * 4)Пробелы слева и кубики повторяет звёздочка, а плюс склеивает их. Кубик занимает два знака, а пробел один. Поэтому каждый пробел сдвигает строку на полкубика, и пирамида выходит ровной.