Python 2-“;“用于计数循环”;
我正在用python 2为学校做一个项目,我遇到了很多问题: 编写一个计算以下总和的程序: 总和=1.0/1+1.0/2+1.0/3+1.0/4+1.0/5+1.0/N N是用户输入的整数限制 我目前编写的代码是: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 "
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