在" cascade"中打印用户输入人物?

时间:2016-10-19 01:39:26

标签: python string printing

我正在尝试创建代码来收集用户的名字和姓氏(输入顺序是最后一个,然后是第一个)并首先打印出来,最后以层叠方式打印:

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])

我非常接近,但我不喜欢我的代码的工作方式。我认为这是一种更简单的方法,而且我也遇到了问题 IndexError:如果我输入的名称长于我输入的打印语句数,则字符串索引超出范围。任何想法?

这是我的代码:

{{1}}

1 个答案:

答案 0 :(得分: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)