这个简单的python代码有什么问题?

时间:2017-10-26 14:38:32

标签: python

DispatchQueue.main.async {
    // Access UI stuff here
}

预期输出是数字4在列表中出现的次数。无论输入是什么,实际输出都为零。

4 个答案:

答案 0 :(得分:3)

my_list字符串的列表。

>>> '4' != 4
True

字符串'4'不等于整数4

>>> my_list = input("Enter a list of numbers separated by space")
1 42 3 5 4
>>> my_list = my_list.split(' ')
>>> my_list
['1', '42', '3', '5', '4']
>>> for i in my_list:
...     if i == 4:
...         print("It's 4!")
>>> for i in my_list:
...     if int(i) == 4:
...         print("It's 4!")
It's 4!

您需要在支票中将i转换为int,以便与4保持平等。您可以使用函数int执行此操作。

另一种选择是map int在字符串列表上。

>>> for i in map(int, my_list):
...     if i == 4:
...         print("It's 4!")
It's 4!

答案 1 :(得分:1)

正如一些回答者已经指出的那样,你试图将4与4'进行比较。您可以选择以下选项:

1)i投射到字符串。但请确保,如果用户输入非整数值,您的脚本不会崩溃:

my_list = input("Enter a list of numbers separated by space")
my_list = my_list.split(' ')
counter = 0
for i in my_list:
    try:
        i = int(i)
    except ValueError:
        continue
    if i == 4:
        counter = counter + 1

print('the count is ', counter)

2) 4是硬编码的。您只能使用'4'代替4

my_list = input("Enter a list of numbers separated by space")
my_list = my_list.split(' ')
counter = 0
for i in my_list:
    try:
        i = int(i)
    except ValueError:
        continue
    if i == '4':
        counter = counter + 1

print('the count is ', counter)hth

3)您真的不需要for循环来计算符号:

my_list = input("Enter a list of numbers separated by space")
my_list = my_list.split(' ')
counter = my_list.count('4')

print('the count is ', counter)hth

或者即便如此,但对'a4a 4'

等案例的结果有所不同
input_value = input("Enter a list of numbers separated by space")

print('the count is ', input_value.count('4'))

答案 2 :(得分:0)

它们都是字符串,因此您需要将它们转换为整数

答案 3 :(得分:0)

第 5 行。您应该输入 '4' 而不是 4,因为 4 是整数并且列表由字符串组成。所以你不能指望程序会在字符串“group”中查找整数。