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

发布于 2024-09-24 19:44:12 字数 380 浏览 4 评论 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()

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

When using raw_input in a loop, until a certain character is typed (say 'a'), how can I print all the inputs before that, in reverse order, without storing the inputs in a data structure?

Using a string is simple:

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

but how could I do the same without a string?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

绾颜 2024-10-01 19:44:12

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

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

getchar()

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

This is not a practical approach, but since you asked for it:

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

getchar()

Of course this only means that I'm using "hidden" data structures, the local namespace and the call stack.

堇年纸鸢 2024-10-01 19:44:12

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

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

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

You have to store the results in some data structure. Instead of a string, however, you could store each input in a list and avoid all the string concatenation:

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

print '\n'.join(l[::-1])
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文