我正在努力提高自己的编码技能,并通过创建可以解决数学问题的功能来实现这一目标。
我正在尝试建立一个简单的方程:S = 1 / n其中n可以是任何大于0的整数。我已经设置了代码,以便输出显示结果列表。
def Sup(n):
list = []
for n in range (1,n+1):
Sup = (1/n)
list.append(Sup)
print (list)
Sup(4)
[1.0]
[1.0, 0.5]
[1.0, 0.5, 0.3333333333333333]
[1.0, 0.5, 0.3333333333333333, 0.25]
我设法做到了,但是,我只想得到一个列表,显示当n = 1,2,3,4时的结果。最终列表是我想要的,而不是前面的3个列表。为什么我会得到多个列表?
答案 0 :(得分:1)
将print (list)
移出循环:
def Sup(n):
list = []
for n in range (1,n+1):
Sup = (1/n)
list.append(Sup)
print (list)
答案 1 :(得分:1)
您需要将最后一个打印语句移出循环。现在,它为每次迭代打印了循环,但是如果您只希望打印一次,请删除缩进,以便仅在循环结束后才打印:
def Sup(n):
list = []
for n in range (1,n+1):
Sup = (1/n)
list.append(Sup)
# Move this print statement down
print (list)
答案 2 :(得分:1)
您可以打印许多列表,因为循环中有print
语句 。因此,每个列表都会被打印出来。要仅打印最终列表,请对print
语句进行缩排,使其不在循环中。
def Sup(n):
list = []
for n in range (1,n+1):
Sup = (1/n)
list.append(Sup)
print (list) # out-dented!
Sup(4)
答案 3 :(得分:0)
您在print()
循环的for
内部 中调用,导致print()
在每次迭代中都被调用。如果您想用Google搜索更多详细信息,则遇到范围问题。如果您将对print()
的调用缩进一级,则它将在函数作用域而不是循环作用域中,并且仅在循环完成后才被调用。