2017-06-14 45 views
-2

我正在一個練習中,我應該有一個列表和字典,並打印出一個指定的消息,如果列表中的值不在字典中有人可以幫忙嗎?出於某種原因,它只打印出else語句,但不打印if。我相信,我失去了一些東西結合for循環和if語句與Python中的字典

poll_takers = ['angel', 'jana', 'murad', 'adel', 'joe', 'jake'] 

favorite_language = { 
    'angel': 'python', 
    'jana': 'c++', 
    'murad': 'python', 
    'adel': 'swift', 
} 

for name in poll_takers: 
    if name == favorite_language: 
     print(name.title() + ", thank you for taking the poll.") 
    else: 
     print(name.title() + ", please take the poll.") 
+5

你覺得'name == favorite_language'是什麼意思? – mkrieger1

+0

正如mkrieger的評論所指出的那樣 - 你需要考慮爲什麼它只會碰到其他的東西 - 爲什麼名字是!= favourite_language?如果它有幫助,你可以打印出每個這些變量來做一些你自己的快速調試! –

+1

'=='測試*相等*。看看左邊是什麼,右邊是什麼。每種類型的*類型*是什麼。打印出來,看看它究竟是什麼比較。 – idjaw

回答

1

你的條件應該是

if name in favorite_language 

,檢查是否有鍵在字典中,否則

if name == favorite_language 

總是計算爲false,因爲字符串名稱不等於字典,因爲==測試相等,這就是爲什麼else語句不斷被觸發

+6

如果您要回答它,請正確回答。解釋他們做錯了什麼。 – idjaw

+0

編輯了答案 –