#python #string #printing
#python #строка #печать
Вопрос:
Я пытаюсь создать код, который собирает имя и фамилию пользователя (порядок ввода — последний, первый) и печатает его первым, последним каскадным способом:
J
o
h
n
S
m
i
t
h
Я действительно близок, но мне не нравится, как работает мой код. Я думаю, что есть более простой способ, и я также сталкиваюсь с проблемами, когда я получаю
Ошибка IndexError: строковый индекс выходит за пределы диапазона, если я ввожу имя, которое длиннее, чем количество введенных мной операторов печати. Есть идеи?
вот мой код:
last = raw_input('enter your last name:')
first= raw_input('enter your first name:')
print(first[0])
print('t' first[1])
print('t'*2 first[2])
print('t'*3 first[3])
print('t'*4 first[4])
print('t'*5 first[5])
print('t'*6 first[6])
print(last[0])
print('t' last[1])
print('t'*2 last[2])
print('t'*3 last[3])
print('t'*4 last[4])
print('t'*5 last[5])
Ответ №1:
Вы можете написать универсальную функцию, подобную показанной ниже, и повторно использовать ее для своих строк.
def cascade_name(name):
for i, c in enumerate(name):
print 't'*(i 1), c
вывод:
>>> cascade_name("foo")
f
o
o
В вашем случае вы бы сделали:
last = raw_input('enter your last name:')
first= raw_input('enter your first name:')
cascade_name(last)
cascade_name(first)