Задача 10: Повторение строки с заданным разделителем

Вам нужно написать программу, которая принимает строку s, число n, и строку sep для разделителя. Выведите строку s n раз, разделяя каждый вывод строкой sep.

Пример:

Входные данные:

Hello
3
-

Выходные данные:

Hello-Hello-Hello

1

Комментарии

artom_avatar
artom
,
10 месяцев, 22 дня назад
Написал такой код s = input() n = int(input()) sep = str(input()) print (s * n, sep=sep) Подскажите, где ошибся, подозреваю, что где-то ошибка в print(), или???
0
perminoff_avatar
perminoff
,
10 месяцев, 22 дня назад
artom, Если мы просто умножаем строку n раз, то не будет подставлен разделитель sep. Тут правильно складывать строку с разделителем и умножать ее print((s + sep) * (n - 1) + s)
3
alexkor_avatar
alexkor
,
5 месяцев, 20 дней назад

perminoff, а зачем для переменной sep указывать вначале, что это строка: sep = str(input())? Ведь если для переменной мы пишем sep = input(), то уже понимаем, что это строковое значение. Да и идеальным вообще было бы использование метода .join, который будет далее, поэтому может подумать над изменением этой задачи, ведь по идее, в перспективе, наверно. так правильнее:
s = input()
n = int(input())
sep = input()
print(sep.join([s]*n))

0
admin_avatar
admin
,
5 месяцев, 20 дней назад

alexkor, Так это 2 модуль, в котором ещё не разбираются методы, но тут наглядно показано, как можно зная базовые принципы арифметики, формировать строку должным образом, использование str() в данном случае и правда необязательно, но вы можете его и не использовать)

1
Laid_avatar
Laid
,
4 месяца, 26 дней назад

perminoff, Доброго часа. А откуда -1 взялось? И зачем?

0
perminoff_avatar
perminoff
,
4 месяца, 26 дней назад

Laid, Мы выводим s строку с sep разделителем n - 1 раз, и в конце выводим еще раз строку, но уже без разделителя.

0
perminoff_avatar
perminoff
,
10 месяцев, 22 дня назад
artom, Если мы просто умножаем строку n раз, то не будет подставлен разделитель sep. Тут правильно складывать строку с разделителем и умножать ее print((s + sep) * (n - 1) + s)
3
perminoff_avatar
perminoff
,
10 месяцев, 22 дня назад
artom, Если мы просто умножаем строку n раз, то не будет подставлен разделитель sep. Тут правильно складывать строку с разделителем и умножать ее print((s + sep) * (n - 1) + s)
3
artom_avatar
artom
,
10 месяцев, 21 день назад
ОК, спасибо!
0
Ksaynes_avatar
Ksaynes
,
24 дня назад

Задача очень хорошая, позволяет углубить понимание, но вы предоставили не все данные в теории для решения данной задачи, у меня в начале получилось то же что и artoma:

s = input()

n = int(input())

sep = (input())

print (s * n, sep=sep)

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

print("Сложно" + "подчинённый") # Сложноподчинённый

и только после этого я понял что мне необходимо сложить s+sep и умножить на n, а дальше пришлось думать как избавиться от последнего sep в конце вывода)

Получается задача с "перчиком" в основном из-за малой информации о возможностях в теоретической части параграфа.

0
admin_avatar
admin
,
23 дня назад

Ksaynes, Ну вот первый перчик так сказать, просто мы захотели показать как можно раньше по курсу, что в курсах есть задачи которые требуют не только теоретическую базу, но и мышление.

1
Ksaynes_avatar
Ksaynes
,
19 дней назад

admin, получилось неплохо.

0

Вы должны Войти или Зарегистрироваться чтобы оставлять комментарии