2010-09-27 5 views
0

При использовании raw_input в цикле до ввода определенного символа (например, 'a'), как я могу распечатать все входы до этого в обратном порядке, не сохраняя входы в структура данных?Печать результатов в обратном порядке из raw_input в python

Используя строку проста:

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

, но как я мог бы сделать то же самое без строки?

+1

* без хранения входов в структуре данных *, почему это так? это домашнее задание? – SilentGhost

+0

Почему вы отредактировали почти весь контент вопроса? – BoltClock

+0

'без хранения входов в структуре данных' вы даже знаете, что такое структура данных? – Falmarri

ответ

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]) 
5

Это не практический подход, но так как вы просили об этом:

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

getchar() 

Конечно, это означает, что я использую «скрытые» структуры данных, локальное пространство имен и стек вызовов.

+0

+1 для ненужных сложностей – Falmarri

Смежные вопросы