gpt4 book ai didi

Python编程初学者难点

转载 作者:太空狗 更新时间:2023-10-30 00:26:35 25 4
gpt4 key购买 nike

我正在尝试用 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] 它会卡住并且不会给我结果。

我不知道我做错了什么!

最佳答案

您的 return 语句缩进不正确。您希望在循环结束后 返回,而不是在循环内部

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

此外,对代码进行了一些优化:

def function(a, b):
c = 0
for x in a:
if x > b:
c += 1
return c

或更进一步:

def function(a, b):
return sum(x > b for x in a)

关于Python编程初学者难点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19576658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com