2017-06-25 35 views
-1

這裏是我的代碼:我追加命令不起作用蟒蛇

letters = ['a','b','c'] 
print("here are the letters you already searched",letters) 
letter = input("please enter a letter") 
print(letter) 
letters = letters.append(letter) 

它不會把它添加到列表中。我也試過這樣:

letters = ['a','b','c'] 
print("here are the letters you already searched",letters) 
letter = input("please enter a letter") 
print(letter) 
letters.append(letter) 
+0

什麼是錯的第二個? – depperm

+0

我不知道,但它不會追加它 –

+2

這裏的第一個例子不會工作,因爲append返回無(它附加「in-place」)。第二個例子工作正常(只是測試它)。也許你可以分享更多的代碼,或者告訴我們你想要達到的目標是什麼? (編輯澄清追加的返回值)。 – wphicks

回答

1

因爲你使用letters = letters.append=試圖重新分配的字母變你的第一個例子是行不通的,你的第二個例子是正確的,但是......

...你可能會尋找一個循環,這樣就可以源源不斷地輸入字母,while True:是創建一個循環的一種方式:

letters = ['a','b','c'] 
while True: 
    print("here are the letters you already searched",letters) 
    letter = input("please enter a letter: ") 
    letters.append(letter) 

有一個選項,跳出循環使用的0

letters = ['a','b','c'] 
while True: 
    print("here are the letters you already searched",letters) 
    print("type '_done_' to finish") 
    letter = input("please enter a letter: ") 
    if letter == "_done_": 
     break 
    letters.append(letter) 
0

使用raw_input(與你的第二個例子),而不是:

letter = raw_input("please enter a letter") 
letters.append(letter) 

當問input,而實際上應該是你很可能進入像d"d"(將正確追加) 。 raw_input將始終將您的信件轉換爲字符串,因此您可以輸入它,如d。請閱讀以上的差:

input()解釋並評估輸入,這意味着如果用戶輸入的整數,整數將被返回,如果用戶輸入的字符串,則返回字符串。

raw_input()正好是用戶鍵入的內容並將其作爲字符串傳回。它不解釋用戶輸入。即使輸入了10的整數值或輸入了一個列表,它的類型也只是字符串。

Source