Python 2-“;“用于计数循环”;

Python 2-“;“用于计数循环”;,python,for-loop,Python,For Loop,我正在用python 2为学校做一个项目,我遇到了很多问题: 编写一个计算以下总和的程序: 总和=1.0/1+1.0/2+1.0/3+1.0/4+1.0/5+1.0/N N是用户输入的整数限制 我目前编写的代码是: NumOfN = int(input("What is N? : ")) total = 0 for i in range (NumOfN): NextNum = 1.0/(NumOfN) total = NextNum NumOfN = NumOfN-1 print "

我正在用python 2为学校做一个项目,我遇到了很多问题:

编写一个计算以下总和的程序: 总和=1.0/1+1.0/2+1.0/3+1.0/4+1.0/5+1.0/N N是用户输入的整数限制

我目前编写的代码是:

NumOfN = int(input("What is N? : "))
total = 0
for i in range (NumOfN):
  NextNum = 1.0/(NumOfN)
  total = NextNum
  NumOfN = NumOfN-1
print "the sum is", total
然而,每当我运行此程序时,我都会得到一个输出“1.0”,非常感谢您的帮助


-谢谢。

您并没有用自身和下一次的
来增加
total
。我将
total=NextNum
更改为
total+=NextNum

NumOfN = int(input("What is N? : "))
total = 0
for i in range(NumOfN):
  NextNum = 1.0/(NumOfN)
  total += NextNum
  NumOfN = NumOfN-1
print "the sum is ", total
或者更简单地说:

NumOfN = int(input("What is N? : "))
runningTab = []
for i in range(NumOfN, -1, -1):
    if i != 0:
        runningTab.append(1.0/(i))

print "the sum is ", sum(runningTab)

最好在末尾使用列表和总和,而不是保持连续的数字计数。

for循环的第二行:

total = NextNum
变量
total
应该添加
NextNum
,而不仅仅是重新赋值。这是因为必须通过将
NextNum
添加到自身来反复添加
total
。让我们将其更改为:

total = total + NextNum
这意味着:
total
需要将
NextNum
添加到自身中,因此我们将它们添加到一起,以便新的
total
现在等于旧的
total+NextNum

旁注:

您可能已经注意到@heinst在他的代码行中使用了
+=
total+=NextNum
。这与
total=total+NextNum
相同,但类似于缩写。您可以使用
+=
-=
*=
/=
执行此操作。所有这些都是缩短代码行的方法,在对变量执行一些算术运算后,代码行将重新分配变量

话虽如此,以下代码行:

NumOfN = NumOfN-1
可以成为:

NumOfN -= 1

这是一个缩写。

这可以通过列表理解和
sum
一行完成
total=sum([1.0/x代表范围内的x(1,numof n+1)])
@erip你可以用python做的事情:)我从来都不知道我可以这样做
numof-=1
,这会让生活更轻松,谢谢没有问题:D@TheRIProgrammer@erip它确实减少了使用的变量数量,并改进了一些事情。简化的代码更少
NumOfN -= 1