2015-02-17 7 views
0
def getStocks(): 
    stockNames = [] 
    stockPrices = [] 
    done = 0 
    while done != 1: 
     stock = input('Enter Stock symbol: ') 
     if stock == 'done': 
      done = 1 

     else: 
      price = int(input('Enter Price of Stock: ')) 
      print("") 
      stockNames.append(stock) 
      stockPrices.append(price) 
    return stockNames, stockPrices 

Проблема в том, что «Enter Stock symbol:» появляется даже после того, как пользователь набирает «done», как я могу получить бесконечный цикл для завершения в этот момент? Я попытался с помощью перерыв, но он не представил результаты, которые я искалПока цикл не заканчивается

+0

Вы вводите '' done'' или 'done'? Если у вас нет включенных кавычек, это не вызовет условия перерыва. – Tom

+0

Вы используете python 2.7? –

+0

Это странно, я просто запустил его снова, и, похоже, все в порядке. Проблема была в моей функции «main()» в коде, которую я не предоставлял. Спасибо. – bulltrue

ответ

1

вместо input использование raw_input будет решить эту проблему

def getStocks(): 
    stockNames = [] 
    stockPrices = [] 
    done = 0 
    while done != 1: 
     stock = raw_input('Enter Stock symbol: ') 
     if stock == 'done': 
      done = 1 

     else: 
      price = int(input('Enter Price of Stock: ')) 
      print("") 
      stockNames.append(stock) 
      stockPrices.append(price) 
     return stockNames, stockPrices 

версия Python: 2.7+

0

вы, вероятно, хотите raw_input(), поскольку input() на самом деле попытается оценить выражение, которое оно возвращает.