python解一元二次方程序分享

2021-08-02 04:57:51 字數 1859 閱讀 4469

琢磨了一下,自己寫了一段**關於解一元二次方程序。分享給大夥,個人感覺很渣,有不合適的地方還請大家多多指教。

#!/usr/bin/env python

#coding:utf-8

#351-01.py(計算一元二次方程序)

"""solving a quadratic equation

"""import math #呼叫標準庫 math

def equ(a1,b1,c1):#定義答案輸出函式

qqq=(b1*b1)-(4*a1*c1)

if qqq<0:

return false

elif qqq==0:

return -(b1/2*a1)

else:

qqqq=math.sqrt(qqq)

x1=(-b1+qqqq)/(2*a1)

x2=(-b1-qqqq)/(2*a1)

return x1,x2

def funcq(z):#此函式主要解決使用者終端輸入字元檢查,判斷是否為整數。

try:

z=int(z)

return isinstance(z,int)

except valueerror:

return false

aa=0

bb=0

cc=0

print"first you must establish a equation like this\n","ax^2+bx+c=0\n"

while true:#利用while迴圈,不限使用者輸入次數,輸入錯誤則重新輸入!

a=raw_input("please input a \n")

aa+=1

if __name__=="__main__":

if funcq(a) == false:

print"please input a number!\n"

continue

elif int(a)==0:

print"a!=0,please input again!\n"

continue

else:

a2=int(a)

break

while true:

b=raw_input("please input b \n")

bb+=1

if __name__=="__main__":

result1=funcq(b)

if result1==false:

print"please input b number!/n"

continue

else:

b2=int(b)

break

while true:

c=raw_input("please input c \n")

cc+=1

if __name__=="__main__":

result2=funcq(c)

if result2==false:

print"please input c number!/n"

continue

else:

c2=int(c)

break

print"the equation is %dx^2+%dx+%d=0\n"%(int(a),int(b),int(c))

if __name__=="__main__":

answer=equ(a2,b2,c2)

print "the answer is ",answer,"\n it is over!"

總結一下:

個人認為**中用了三個while才解決使用者輸入的問題,假如使用者輸入的常數有很多,那我這個解決方案就很麻煩了,還請大神幫忙指教,謝謝!

Python 解一元二次方程

請定義乙個函式quadratic a,b,c 接收3個引數,返回一元二次方程 ax2 bx c 0的兩個解。coding utf 8 可將quadratic a,b,c 單獨寫為b.py,之後在a.py中通過from b import quadratic呼叫這個函式 import math def ...

Python 解一元二次方程

今天看到廖雪峰老師的python3,看到函式後面的練習 如何解一元二次方程 感覺蠻簡單的就開啟text sblime去試試 糟糕 竟然忘了怎麼求一元二次方程!查資料 終於查好了!開始動手 1,匯入math模組 2.定義函式def n d return math.sqrt d def quadrati...

python解一元二次方程

剛開始碰到這個問題,習慣性地想要用迭代的方式來做,居然忘記了解方程的公式.思路 公式法解方程即可,先計算delta b 2 4ac 若delta 0,則判斷方程無解 為方便起見,忽略複數解 若delta 0,則 import math def quadratic a,b,c delta b 2 4 ...