我在python和一般编程方面都是新手,我需要帮助。我需要编写一个将给定列表与整数进行比较的函数。最后,函数计算该数字比列表中元素大多少倍。它还不应考虑负数。我写了代码,但没有给出正确的答案:
def count_smaller(input_list: List[int], compared_number: int) -> int:
a = -1
for i in input_list:
if compared_number <= 0:
continue
elif compared_number > i:
a += 1
return a
else:
a = 0
return a
c = count_smaller([-1, 0, 1, 2, 3], 2)
print(c)
这段代码给了我1,但明显的答案是2。我真的很努力地完成这项任务,希望有人能帮助我。
因此,您的代码中存在两个问题:
a = -1
是完全没有用的(您是否想过特别声明这种方式?)。returns
您将只验证第一个非负数,然后返回结果。compared_number
此处,则您将增加算术运算符compared_number > i
。这应该工作:
def count_smaller(input_list, compared_number):
a = 0
for i in input_list:
if compared_number <= 0:
continue
elif compared_number <= i:
a += 1
return a
c = count_smaller([-1, 0, 1, 2, 3], 2)
print(c)
输出将是:
2
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句