2015-02-17 120 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 

問題是即使在用戶鍵入'done'後也會出現「輸入股票代碼:」,我該如何獲取無限循環以終止此時?我試着用break,但它沒有提供結果我一直在尋找的while loop not ended

+0

你在輸入「done」還是「done」?如果您沒有包含引號,則不會觸發中斷條件。 – Tom 2015-02-17 22:10:08

+0

你使用Python 2.7嗎? – 2015-02-17 22:21:14

+0

這很奇怪,我只是跑了一遍,似乎沒關係。這個問題出現在我沒有提供的代碼中的「main()」函數中。謝謝。 – bulltrue 2015-02-17 22:30:46

回答

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版本:你可能想raw_input() 2.7+

0

,因爲input()實際上會嘗試評估它返回的表達式。