Как решить задачу: продублировать строку, пока итоговая длина не превысит 100

name = input("Your name: ")
while len(name) > 100:
    print(name)
    name *=1 

Я так написал, но код неверный.
Мне нужно дублировать имя до 100.

Я не понимаю, нужно чтобы было вот так:

#1 Маша 
#2 МашаМаша
#3 МашаМашаМаша
#так далее я не понимаю как написать код. 

Ответы (3 шт):

Автор решения: Medvedev

len(name) - считает количество символов в имени, для этой задачи это неправильно

# будет выполняться пока количество букв в name больше 100
# то есть цикл не рабочий изначально
while len(name) > 100: 
    # просто выводит имя
    print(name)
    # can only concatenate str (not "int") to str
    name +=1 

Корректное решение

Через while:

count = 1
while count < 100:
    print(name * count)
    count += 1

Через for:

for count in range(100):
    print(name * count)
→ Ссылка
Автор решения: u111
N = 100 # Предел повторений строки
input_string = input('Введите имя')
if input_string:
    for repeat in range(1, N // len(input_string) + 1):
        print(f'#{repeat} {repeat * input_string}')
else:
    print('Ошибка! Имя не может быть пустым!')
→ Ссылка
Автор решения: Eugene X

Задачка весьма забавная. Она отучает Python разработчиков от ненужной итерации.

Мне нужно дублировать имя до 100. Превысит 100, то-есть будет длиннее 100. Например 101 подойдет.

В этой задаче цикл вовсе не нужен, он только нагромождает код!

Я хоть и очень плохо знаю py, но решил-бы её например вот так.

Имя повторять пока (100 делить на длину имени) и добавить 1 что-бы было больше ста.
Если конечно длинна есть?
Иначе "Пусто!"
name = input("Your name: ")
print(name * int(100/len(name)+1) if len(name) > 0 else "Пусто!")

Если всё-же нужен каждый шаг итерации, то можно и развернуть пример:

name = input("Your name: ")
if len(name) > 0:
    for i in range(1, int(100/len(name))+1):
        print(i, name * i)
    i += 1
    print(i, name * i)
else:
    print("Пусто!")
→ Ссылка