从python中的raw_input以相反的顺序打印结果

时间:2010-09-27 19:58:11

标签: python raw-input

在循环中使用raw_input时,直到键入某个字符(比如'a'),如何在此之前以相反的顺序打印所有输入,而不将输入存储在数据中结构

使用字符串很简单:

def foo():

    x = raw_input("Enter character: ")
    string = ""
    while not (str(x) == "a"):
        string = str(x) + "\n" + string
        x = raw_input("Enter character: ")
    print string.strip()

但是如果没有字符串我怎么能这样做呢?

2 个答案:

答案 0 :(得分:5)

这不是一种实用的方法,但是因为你要求它:

def getchar():
    char = raw_input("Enter character: ")
    if char != 'a':
        getchar()
        print char

getchar()

当然这只意味着我正在使用“隐藏”数据结构,本地命名空间和调用堆栈。

答案 1 :(得分:2)

您必须将结果存储在某些数据结构中。但是,您可以将每个输入存储在列表中并避免所有字符串连接,而不是字符串:

l = []
x = raw_input("Enter character: ")
while not (str(x) == 'a'):
    l.append(x)
    x = raw_input("Enter character: ")

print '\n'.join(l[::-1])