使用for循环在列表内搜索给定号码的用户

时间:2019-05-08 09:13:34

标签: python python-3.x list

代码:

def search_number(list, number):
    count = 0
    for item in list:
        if(item == number):
            count += 1

    print("Count: {0}".format(count))


num = [1,4,2,3,4,5,10,20]
number = input("Enter num: ")

search_number(num, number)

如果我输入一个数字(例如4),则预期输出为2,但是此代码段的输出为0。

4 个答案:

答案 0 :(得分:4)

您的输入是一个字符串,但是您的列表具有整数。 将输入转换为int:

number = int(input("Enter num: "))

答案 1 :(得分:2)

除了@Netware的答案外,Python还提供了一种有效的计数方式:

num = [1,4,2,3,4,5,10,20]
print(num.count(1))

答案 2 :(得分:0)

input()函数返回一个字符串。您正在将字符串与int进行比较。

尝试一下:

number = int(float(input(...)))

答案 3 :(得分:0)

也许您想使用循环,尽管使用Counter()来获取对象计数的另一种方法是:

from collections import Counter

num = [1,4,2,3,4,5,10,20]
number = input("Enter num: ") # 4

print(Counter(num)[int(number)]) # 2

Online Example