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 に答える