我正在尝试用 Python 编写一个程序,但我被困在这段代码中:
def function():
a=[3,4,5,2,4]
b=1
c=0
for x in range(5):
if a[x-1]>b:
c=c+1
return c
print(function())
它给我的值是 1 而不是 5。实际上我要编写的函数有点复杂,但问题实际上是一样的,它没有给我正确的结果。
def result():
r=[0]*len(y)
a=2
b=an_integer
while b>0:
for x in range(len(y)) :
if y[x-1] > 1/a and b>0:
r[x-1]=r[x-1]+1
b=b-1
a=a+1
return r
print(result())
v 是小于 1 的值的列表,b 有一个整数作为值。如果 v 中的某些值 x 大于 1/a,那么 r 中的值 x 应该变大 1,然后它应该重复 a=a+1 直到 b 变为 0。我希望这个函数给出 ex 类型的结果. [7,6,5,4,3] 其中此列表中元素的总和等于 b。
有时它给了我正确的值,有时没有,当 v 中的元素相等时,例如 v=[0.33333,0.33333,0.33333] 它会卡住并且没有给我结果。
我不知道我做错了什么!