【Python實踐-1】求一元二次方程的兩個解


知識點:
  • import sys, sys模塊包含了與Python解釋器和它的環境有關的函數。 “sys”是“system”的縮寫。sys.exit() 中途退出程序, (注:0是正常退出,其他為不正常,可拋異常事件供捕獲!)
  • from math import *,這樣聲明,可以直接使用math()函數;如果聲明為import math,則需math.sqrt()
  • input()輸入是字符串類型,split()以空格分割字符串
  • 判斷是否為數字類型,否則拋出異常,中止程序執行
  • 函數返回多個值,其實是一種假象,返回的是一個tuple,在語法上,返回一個tuple可以省略括號,而多個變量可以同時接收一個tuple,按位置賦給對應的值,所以,Python的函數返回多值其實就是返回一個tuple。
  • 函數體內部可以用return隨時返回函數結果;函數執行完畢也沒有return語句時,自動return None
# -*- coding: utf-8 -*-
#定義一個函數求一元二次方程的兩個解
from math import *
import sys
#參數a,b,c需均為整數或浮點數,(b**2)-(4*a*c)應大於0
def quadratic(a,b,c):
    x1=(-b+sqrt((b**2)-(4*a*c)))/(2*a)
    x2=(-b-sqrt((b**2)-(4*a*c)))/(2*a)
    return x1,x2
#檢查參數a,b,c數據類型,否則拋出異常,中止程序
a,b,c=input('請輸入一元二次方程組的a,b,c三個參數,以空格分割:').split()
try:
    a = float(a)
except ValueError:
    print("input is not a float!")
    sys.exit() #退出程序
try:
    b = float(b)
except ValueError:
    print("input is not a float!")
    sys.exit()
try:
    c = float(c)
except ValueError:
    print("input is not a float!")
    sys.exit()
#print('a:%.2f,b:%.2f,c:%.2f'%(a,b,c))
#方程求解
if (b**2)-(4*a*c)>0:
    x1,x2=quadratic(a,b,c)
    print('一元二次方程的兩個解為:','x1:%.2f,x2:%.2f'%(x1,x2))
else:
    print('該方程無實數解')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM