Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python—一个系列中添加的最大项数,即总和<;5._Python - Fatal编程技术网

Python—一个系列中添加的最大项数,即总和<;5.

Python—一个系列中添加的最大项数,即总和<;5.,python,Python,嗨,有人问我以下问题: 以这个系列为例 总计=1/1+1/2+1/3+1/4+1/5….+1/N 使总数小于5.0的最大添加项数(即N值)是多少? (写几行Python代码,当总和刚好小于5.0时停止) 到目前为止,我就是这么做的: m = 5 n= 0 u = 1 sum_serie = 0 for u in range(1,100): u = 1/(n+1) n= n+1 while u < m: sum_serie = sum_serie + u

嗨,有人问我以下问题:

以这个系列为例 总计=1/1+1/2+1/3+1/4+1/5….+1/N 使总数小于5.0的最大添加项数(即N值)是多少? (写几行Python代码,当总和刚好小于5.0时停止)

到目前为止,我就是这么做的:

m = 5
n= 0
u = 1
sum_serie = 0

for u in range(1,100):
   u = 1/(n+1)
   n= n+1

   while u < m:

     sum_serie = sum_serie + u

   print(sum_serie)
   print(n)
m=5
n=0
u=1
总和=0
对于范围(1100)内的u:
u=1/(n+1)
n=n+1
而u
它不起作用。有人能解释一下吗?有没有更简单的方法?
谢谢

这可能是正确的版本:

m = 5
n = 0
sum_series = 0

while sum_series < m:
  u = 1. / (n + 1)
  sum_series = sum_series + u
  n = n + 1

print(sum_series)
print(n)

首先,您的
while
循环应该具有条件
sum\u serie
和parts
u=1(n+1)
n=n+1
应在该循环内,如图所示。
for
循环无法执行您需要的操作,因此它已被删除。

要循环到刚好低于限制的数字,只需将限制作为循环条件进行检查(此处在a
while
中),并更改循环内的值。有点像

limit = 5
n = 0
sum_serie = 0

while sum_serie + 1./(n+1) < limit:
  sum_serie += 1./(n+1)
  n += 1

print(sum_serie)
print(n)

len(list(itertools.takewhile(lambda n:n<5.0,itertools.accumulate(itertools.count(1),lambda x,y:x+1/y)))
BOOM~~只是想知道u=1时1处的点的用途是什么(n+1)?@Hannah它使它成为一个
浮点
。如果它说
1.0
可能更清楚,但它的意思是在较新版本的Python中
1/2
0.5
,但较旧版本的
1/2
0
。点使分子成为浮点数,因此
1./2
0.5
。为什么结果>5?难道不是吗
limit = 5
n = 0
sum_serie = 0

while sum_serie + 1./(n+1) < limit:
  sum_serie += 1./(n+1)
  n += 1

print(sum_serie)
print(n)
4.9900200799090815
82