Умножить каждый символ строки на его порядковый номер
Нужно строки, содержащие символы строки s умножать на их порядковый номер.
s = str(input())
for i in range(len(s)-len(s[:3])):
print(s[i])
print(s[i+1]*2)
print(s[i+2]*3)
print(s[i+3]*4)
У меня получился такой код, но главная загвоздка в том, что слово может быть любой длины, и я уже долго не могу додуматься как это сделать. Помогите, пожалуйста!
Пример:
Sample Input:
back
Sample Output:
b
aa
ccc
kkkk
Ответы (5 шт):
Кроме комментаторов, ответ никто не дал, поэтому внесу свои 5 копеек:
s = str(input())
n = 0
for i in s:
n += 1
print(i*n)
Всё равно цикл проходит поочерёдно по символам, поэтому можно прибавлять значение переменной после каждой итерации и число будет равно порядковому номеру буквы в слове.
s = str(input())
for i in range(len(s)):
print(i*s[i]+s[i])
s = input() # Не надо применить str() т.к. input() возвращает строку
for i, char in enumerate(s, start=1):
print(i * char)
Объяснение:
Стандартная функция enumerate() нумерует символы строки, возвращая пары типа (порядковый_номер_символа, символ).
Например, enumerate("Мама") выдает постепенно пары
(0, "М")
(1, "а")
(2, "м")
(1, "а")
Чтобы начать нумерование не нулей, а с числа 1, нужно добавить параметр start=1.
Рекурсия:
def f(word, times=1):
if len(word) == 0:
return
print(word[0] * times)
f(word[1:], times+1)
f("back")