DispatchQueue.main.async {
// Access UI stuff here
}
预期输出是数字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”中查找整数。