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)
=-=-=-=-