Python-定义函数.练习题.求一元二次方程解

*声明:
我写此文的目的是帮助和我一样在廖雪峰老师官网上学习Python3的同学更好的理解和学习Python的知识,所以本博文及后续文章会跟着我的学习进度来走,主要内容是廖雪峰老师官网Python资料中每节知识点后的复习题的答案和解析,有一些是我自己原创的,有一些是网上整理的大神写的简洁但对新手并不是很明了的答案,我会尽可能的给出我的解析。*

题目:
请定义一个函数 ’quadratic(a,b,c)‘,接收三个参数,返回一元二次方程:
ax² + bx + c = 0
的两个解。(提示:计算平方根可以调用math.sqrt()函数)

答案:

#/usr/local/env python
#-*- coding:utf-8 -*-
import math
def quadratic(a, b, c):
	if not isinstance(a, (int, float)):
		raise TypeError('a is not number')
	if not isinstance(b, (int, float)):
		raise TypeError('b is not number')
	if not isinstance(c, (int, float)):
		raise TypeError('c is not number')
	d=b*b - 4*a*c
	if a == 0:
		if b == 0:
			if c == 0:
				return '方程根为全体实数'
			else:
				return '方程无根'
		else:
			x1=-c/b
			x2=x1
			return x1,x2
	else:
		if d<0:
			return '方程无根'
		else:
			x1 = (-b + math.sqrt(d))/2*a
			x2 = (-b - math.sqrt(d))/2*a
			return x1,x2
print(quadratic(2,3,1))
print(quadratic(1,3,-4))

 

解析:
这道题,并不难,只要对求根公式和求根条件掌握的比较清楚就可以写出来,首先 代码第一行 ’ import math ’ 表示导入 math 包。不光是Python,在其他编程语言里也有包这个概念,这就好比你在生活中会用到方方面面的工具一样,厨房用具放在‘’厨房包‘’里,修家具的放在‘’家具包‘’ 里等等,这里我们要用到计算平方根函数 ‘’sqrt()‘’,而这个函数又放在在‘’math‘’这个包里,所以我们导入这个包。
代码3-8行是廖雪峰老师在 定义函数 知识点里讲到的参数检查,因为 quadratic(a,b,c)要接收a,b,c三个参数,所以要对这三个参数分别做检查,确保这三个数是符合一元二次方程的整数(int)或浮点数(float)。
代码第九行是为了使代码简洁所以定义了 d 这个变量。
代码10-26行 是利用条件判断做的关于一元二次方程求根的主体运算,你要对每层条件判断有一个清晰地逻辑关系,学习呢,就是接受知识和独立思考的过程,所以我希望小伙伴们可以先独立思考一下,如果真的想不明白,OK!不要浪费过多时间,可以把本文中提供的答案中的不理解的地方写在本文的评论里,虽然我也只是一个知之很少的人,但是我会尽可能的为你提供帮助。

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:番茄网 » Python-定义函数.练习题.求一元二次方程解

分享到: 生成海报

评论 抢沙发

  • QQ号
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

像番茄一样 表里如一

表里如一表里如一
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活