Code Basics logo

Python: Передача нескольких аргументов

Аргументов может быть несколько. В таком случае в определении функции мы делаем то же самое, что в вызове: просто указываем аргументы через запятую.

Полный пример определения функции с несколькими аргументами и её вызова:

def show_date(month, day):
    print('Today is: {} {}'.format(month, day))

show_date('January', '29')
Today is: January 29

Главное — помнить про порядок: в каком порядке аргументы стоят при определении функции, в таком же порядке они должны передаваться при вызове.

В Python, как и в большинистве языков, при вызове функции нужно обязательно передать столько же аргументов, сколько было указано при её определении. Иначе программа выдаст ошибку:

show_date('January')
# => TypeError: show_date() missing 1 required positional argument: 'day'

show_date()
# => TypeError: show_date() missing 2 required positional arguments: 'month' and 'day'

Задание

Сэм составляет множество карт, и ему часто нужно выводить на экран повторяющиеся символы для визуализации маршрутов. Например, так Сэм иллюстрирует узкие дороги между городами:

Meereen =-=-=-=- Myr

А так иллюстрирует широкие трассы:

Vaes Dothrak ======== Vahar

Строки в Python — это последовательности (списки, наборы) символов в нужном порядке. В документации Python приведены операции, общие для всех последовательностей. Так, любую последовательность — в том числе и строку — можно повторить несколько раз, умножив оную на число (это не будет нарушением типизации, ведь именно такое сочетание типов — последовательность слева и число справа — предусмотрено создателями языка для операции умножения):

print('=-' * 4)
=-=-=-=-

Сэм не очень доволен. Ему нужно нарисовать сотни маршрутов разной длины с разными символами. Неудобно размножать строки сотни раз и сотни раз вызывать print.

Напишите для Сэма функцию print_seq(), которая сама выводит на экран получившиеся повторения. Она принимает два аргумента — строку и число, и выводит повторяющуюся строку на экран. Для генерации строки используйте "размножение" строк.

Вот пример того, как Сэм будет использовать написанную вами print_seq():

print_seq('=-', 4)
=-=-=-=-

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном сообществе