HI我正在運行一個簡單的程序,一個組件是使用二次公式的二次函數求解器。我使用cmath模塊的sqrt()方法來計算判別式的sqrt,即使判別式是正數,它仍然返回一個複數。儘管當我在tkinter標籤中顯示答案時,我使用%.3f作爲浮點數,但它表示它不會接受它,因爲它是一個複數。還有一個複數的佔位符嗎?python String Concatenation中的佔位符
def quad(a,b,c):
global answers
print a,b,c
disc=b**2
ac4=4*a*c
disc-=ac4
sdisc=sqrt(disc)
b*=-1
a2=a*2
answer=[]
print a
if a!=0:
ans1=(b+sdisc)/a2
ans2=(b-sdisc)/a2
if ans1==ans2:
answer.append(ans1)
print type(ans1)
answers.config(text='%.3f' %ans1)
else:
answer.append(ans1)
answer.append(ans2)
answers.config(text='%.3f , %.3f' %(ans1,ans2))
elif a==0:
answers.config(text='Not a Quadratic Function.')
它返回複數如果爲1,B,C = 0,0 ...是否CMATH無論什麼返回複數?
熟悉python,雖然是複雜的數字,剛開始學習它們。
編輯: 我現在使用數學模塊和特殊情況負輸入,但是當我使用%.3f時,它不會允許我,因爲它很複雜。 (我做了負數的負數的sqrt以獲得積極的sqrt並乘以1j)是否有佔位符來做到這一點? (如%C 23) 感謝
我現在正在使用數學模塊和特例負輸入,但是當我使用%.3f時,它不會允許我,因爲它很複雜。 (我做了負數的負數的sqrt以獲得積極的sqrt並乘以1j)是否有佔位符來做到這一點? (如%c) – user2658538
@ user2658538:...所以,你建立了一個複雜的號碼嗎?這種做法違背了切換到非複雜數學模塊的目的。沒有複雜數字的格式說明符;您必須分別格式化「真實」和「圖像」組件。它看起來像你想John1024的答案。 – user2357112
但cmath總是返回複雜的,我想顯示覆雜和真實的數字都取決於答案是什麼。如果有2個實數解或2個虛數數,我想顯示它們。 – user2658538