Как решить задачу: продублировать строку, пока итоговая длина не превысит 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("Пусто!")