for循环中的Python项目计数

时间:2016-10-04 12:10:19

标签: python loops count

我今天早些时候在Python中尝试使用for循环和列表,而且我有点卡在这一点上,这可能非常简单......这是我的代码:

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)

count变量因任何原因都不起作用,我试图搜索这个问题但找不到任何东西。它说它没有定义,但是如果我放一个普通数字或一个字符串就可以完美地运行。 (我现在也病了,所以我不能正常思考,所以这可能非常简单,我只是没有抓住它)我是否必须制作一个新的for循环?因为我这样做的时候:

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

它只是用数字1-7吐出列表中的每个项目,这是......更好,但不是我想要的。

3 个答案:

答案 0 :(得分:2)

您需要首先定义计数:

count = 0

另一种实现目标的更好方法是:

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

答案 1 :(得分:1)

您正在尝试增加您从未设置的值:

for item in animals:
    count = count + 1

Python抱怨count,因为您第一次在count + 1中使用它时,count从未设置过!

在循环前将其设置为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结果进行更新。

作为更多Pythonic替代方案,您可以使用enumerate() function在循环中包含一个计数器:

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

请参阅What does enumerate mean?

答案 2 :(得分:1)

您需要在循环之前初始化count。 否则Python不知道count是什么,因此无法评估count + 1

您应该执行类似

的操作
...
count = 0
for item in animals:
    count = count + 1
    ...