n = int(input("Enter a number:"))
while i != n:
if i>n:
print(S)
else:
if i % 2 == 0:
S -= 1 / i
i = 1
else:
S = 1 / i
i = 1
print(S)
我需要解決 S = 1 - 1/2 1/3 - 1/4 ... 1/n,但是當我輸入 n 為 5 時,輸出應該是 0.783,而是列印 0.583
uj5u.com熱心網友回復:
這是解決此問題的更 Pythonic 的方法,首先使用您的系列創建一個生成器,然后使用sum().
您的系列采用以下形式 -

需要的步驟:
- 為上述表單創建一個生成器
- 對生成器使用求和
i: 0 -> n
n = int(input('Enter a number: '))
S = sum((1/(i 1))*(-1)**i for i in range(n))
print(S)
Enter a number: 5
0.7833333333333332
繪制函式
import matplotlib.pyplot as plt
#In function form
def f(n): return sum((1/(i 1))*(-1)**i for i in range(n))
#Plotting
y = [f(i 1) for i in range(100)]
plt.plot(y)

uj5u.com熱心網友回復:
這是一個更簡潔的版本:
n = int(input("Enter a number:"))
S = 0
for j in range(1,n 1):
if j % 2 == 0:
S -= 1/j
else:
S = 1/j
# print(j)
# print(S)
print(S)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/367306.html
上一篇:三角形邊長計算
下一篇:數值計算總和的正確方法
