2015-06-04 139 views
-3

我正在嘗試使用Python的對分方法,當我嘗試運行它時,什麼也沒有發生。 下面是我使用的代碼:Python:我輸入的代碼沒有做任何事

import math 
a=0 
b=1  
def f(x):  
    return math.sqrt(x)-math.cos(x) 
while b-a>0.0001:  
    c=(a+b)/2 
    if f(a)*f(c)>0:   
     a=c 
else: 
     b=c 
print(c) 
+2

請修復您的縮進。我試圖糾正它。回滾並編輯它 –

+3

它正在做一件好事...永遠。使用調試器來找出什麼。 –

+0

我建議在你的'a = b'和'b = c'之後添加打印語句以排除*實際正在看到的*值。 – localhost

回答

0
  1. 的其他屬於一段時間。
  2. c是在內部定義的
  3. 它似乎是你推c值下來?
+0

我會補充說,在while中定義的'c'不是一個問題,實際上它只是'a'或'b',應該在每次迭代時修改(此時,'c'被「重新定義」 )。在這種情況下,'c'在while循環中的位置被定義(即沒有'NameError')。但是,#1和#3肯定是**問題。 – localhost

+0

「推低C值」是什麼意思? –