欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【Python实践-1】求一元二次方程的两个解

程序员文章站 2022-11-27 15:42:34
知识点: import sys, sys模块包含了与Python解释器和它的环境有关的函数。 “sys”是“system”的缩写。sys.exit() 中途退出程序, (注:0是正常退出,其他为不正常,可抛异常事件供捕获!) from math import *,这样声明,可以直接使用math()函 ......
知识点:
  • 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('该方程无实数解')