2016-10-04 59 views
0

我是用Python中的for循環和試驗名單今天早些時候,我有點停留在這一件事情,可能是很簡單的......這裏是我的代碼:的Python項目在計數循環

animals = ["hamster","cat","monkey","giraffe","dog"] 

print("There are",len(animals),"animals in the list") 
print("The animals are:",animals) 

s1 = str(input("Input a new animal: ")) 
s2 = str(input("Input a new animal: ")) 
s3 = str(input("Input a new animal: ")) 

animals.append(s1) 
animals.append(s2) 
animals.append(s3) 

print("The list now looks like this:",animals) 

animals.sort() 
print("This is the list in alphabetical order:") 
for item in animals: 
    count = count + 1 

    print("Animal number",count,"in the list is",item) 

計數變量不管用什麼原因,我試圖尋找這個問題,但找不到任何東西。它說它沒有定義,但如果我把一個正常的數字或字符串它工作得很好。 (我現在還不舒服,所以我想不出來,所以這可能很簡單,我只是沒有抓住它)我需要做一個新的循環?因爲當我這樣做時:

for item in animal: 
    for i in range(1,8): 
     print("Animal number",i,"in the list is",item) 

它只是吐出列表中的每個項目與數字1-7,這是...更好,但不是我想要的。

+0

你忘了定義'count'。在for循環之前添加'count = 0'。 – ozgur

回答

2

您需要定義數第一,如:

count = 0 

另一種更好的方式來實現你想要的僅僅是:

for count, item in enumerate(animals): 
    print("Animal number", count + 1, "in the list is", item) 
0

您正在試圖增加你從來沒有設置一個值:

for item in animals: 
    count = count + 1 

Python抱怨count,因爲你第一次使用它在count + 1count從未設置!

其設爲0循環之前:

count = 0 
for item in animals: 
    count = count + 1 
    print("Animal number",count,"in the list is",item) 

現在執行count + 1表達首次count存在並且count可以與0 + 1結果被更新。

作爲一個更Python的替代,可以使用enumerate() function包括在循環本身的計數器:

for count, item in enumerate(animals): 
    print("Animal number",count,"in the list is",item) 

What does enumerate mean?

0

您需要在循環之前進行初始化count。 否則Python不知道count是什麼,所以它不能評估count + 1

你應該這樣做

... 
count = 0 
for item in animals: 
    count = count + 1 
    ...