在循环中使用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()
但是如果没有字符串我怎么能这样做呢?
答案 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])