0

在循环中使用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()

但是没有字符串我怎么能做同样的事情呢?

4

2 回答 2

5

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

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

getchar()

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

于 2010-09-27T20:17:56.697 回答
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])
于 2010-09-27T20:07:42.470 回答