2016-03-27 25 views
-2

我必須使用while循環來查找列表中數字的位置。如果該號碼不在列表中,則應打印「不在列表中」。這是我迄今爲止,但輸入一個數字後,沒有打印它是否在列表中。使用while循環查找列表中的位置

myList = [1,3,5,7,9,11,13,15,17,19] 
i = 0 
x = input("Enter a number") 
while i < len(myList): 
    if i == x: 
     print("In position: ",i) 
    else: 
     i == i+1 
+0

爲什麼你必須爲此使用循環?這不是完成這項任務的正確方法。 – TigerhawkT3

+0

然後,一旦它找到索引,它仍然是無限的:) – schwobaseggl

+0

我知道如何使用for循環做到這一點,但對於我的課,我們應該使用while循環來幫助瞭解它們。不要問爲什麼! –

回答

4

在代碼中有多個問題。首先,你很困惑i,你的計數器,我假設你試圖用索引myList,與元素本身。你不是在任何地方索引myList。其次,您從不將輸入轉換爲數字,並且myList中的所有內容都是數字。第三,您正在比較ii+1==,而不是重新分配=

myList = [1,3,5,7,9,11,13,15,17,19] 
i = 0 
x = int(input("Enter a number")) 
while i < len(myList): 
    if myList[i] == x: 
     print("In position: ", i) 
    else: 
     i = i+1 # i += 1 

中最突出的問題,但問題在於,這是找到一個list對象走錯了路。使用index方法:

myList = [1,3,5,7,9,11,13,15,17,19] 
x = int(input("Enter a number")) 
try: 
    print("In position: ", myList.index(x)) 
except ValueError: 
    pass 
+0

如果OP只想找到第一個實例,一旦找到,他就可以從循環中分離出來。你也想要一些'找到'標誌,所以在遍歷列表後,你想檢查是否打印找不到的消息。 – Reti43