Python 添加使用for循环的术语
计算自然对数,将序列Python 添加使用for循环的术语,python,for-loop,python-3.x,equation,Python,For Loop,Python 3.x,Equation,计算自然对数,将序列1-1/2+1/3-1/4+1/5-。。。1/n其中n为正整数,由用户输入 我的问题似乎在方程式中。或者更确切地说,我不知道如何输入它来添加输入的所有整数,而不仅仅是1或2 def LogEquation(n) n = int(input("Enter an integer: ")) for n in range (1, n+1): log = 1 - 1/n + 1/n+1 print (log) LogEquation() //function
1-1/2+1/3-1/4+1/5-。。。1/n
其中n为正整数,由用户输入
我的问题似乎在方程式中。或者更确切地说,我不知道如何输入它来添加输入的所有整数,而不仅仅是1或2
def LogEquation(n)
n = int(input("Enter an integer: "))
for n in range (1, n+1):
log = 1 - 1/n + 1/n+1
print (log)
LogEquation() //function called
你的公式是错误的——你总是在计算循环中的最后两项——试试这个,你需要确保你总是在日志中添加一些东西。另外,您将“n”用于两种不同的事情—输入变量和循环—这不是一种好的做法
def LogEquation():
n = int(input("Enter an integer: "))
log = 0
sgn = +1 # Do we add or subtract
for a in range (1, n+1):
log = log + sgn * 1.0/a # Use 1.0 so we do floating point arithmetic
sgn = -sgn # We added the last term - so subtract the next
print (log)
LogEquation()
由于您使用的是python3,我认为整数除法没有问题。相反,我认为问题在于,
1/n+1
被解释为(1/n)+1
,而不是1/(n+1)
1/n=0
对于任何整数n
,这可能需要对更改进行更多解释(例如,循环变量)请注意,参数n
是无意义的。n不是无意义的-它是OP用来定义计算精度的…它立即被用户输入所取代。我不确定这个系列计算的是什么-但我不认为它不会计算自然对数。什么是sgn=+1
?