我在Jupyter notebook中有以下代码,它打印radiuslist,但只迭代结果列表的第一个结果。
def areacirclelist(radiuslist):
for oneradius in radiuslist:
resultlist = []
resultlist.append(math.pi*oneradius*oneradius)
return resultlist
radiuslist = [1,2,4,8,21,80]
arealist = areacirclelist(radiuslist)
print ('For the circle with radii of ', radiuslist, 'the areas are', arealist)非常感谢你的帮助!
发布于 2020-10-15 10:01:18
你应该把resultlist = []和返回语句放在循环之外。
def areacirclelist(radiuslist):
resultlist = []
for oneradius in radiuslist:
resultlist.append(math.pi*oneradius*oneradius)
return resultlist发布于 2020-10-15 06:57:27
您需要在for循环之外定义resultlist = []。你会在每次迭代中覆盖它。
编辑:您还需要将返回语句移出循环。
def areacirclelist(radiuslist):
resultlist = []
for oneradius in radiuslist:
resultlist.append(math.pi * oneradius * oneradius)
return resultlist
radiuslist = [1, 2, 4, 8, 21, 80]
arealist = areacirclelist(radiuslist)
print('For the circle with radii of ', radiuslist, 'the areas are', arealist)发布于 2020-10-15 10:12:50
resultlist只包含一个数字,因为它是在for循环中初始化的,所以每次迭代都会将其设置为[]。
您可以通过将初始化移到for循环之外来简单地修复它。
def areacirclelist(radiuslist):
resultlist = [] # initialize HERE
for oneradius in radiuslist:
resultlist.append(math.pi * oneradius * oneradius)
return resultlist但是,您可以用一种更简单、更易读的方式来编写它:
def areacirclelist(radiuslist):
return [math.pi * oneradius * oneradius for oneradius in radiuslist]https://stackoverflow.com/questions/64362583
复制相似问题