【Python笔记】2020年7月22日练习=[定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程的两个解]

学习教程:廖雪峰-Python教程-函数-函数定义

学习记录:[定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程的两个解]

学习心得:

1、对问题进行判断分析后再下手。

一元二次方程需分析根的情况,当△大于零时,有两个根;当△等于零时,有一个根;当△小于零时,无解。

需三种情况进行判断,再进行计算,再打印输出结果。

2、在原题基础之上我增加的问题

①用户输入a,b,c三个值,更加人性化

②对返回的根进行判断,判断根为整数(int)还是浮点数(float)。若为整数则直接返回打印输出,若为浮点数则强制保留2位小数点。

3、额外吸收内容

①bool类型可直接用 int() 强制转换为0和1

1 a = 1/3
2 Tex = int(isinstance(a, float))

以上打印结果为 1。

isinstance() 是Python内置的数据类型检查函数

②round() 函数:返回浮点数x的四舍五入值

a = 1/3
print(round(a, 2))

以上打印结果为 0.33

 

以下是我的练习代码:

 1 # 定义一个函数quadratic(a, b, c),接收3个参数
 2 # 返回一元二次方程 ax^2 + bx +c = 0 的两个解
 3 import math
 4 
 5 # 求根函数
 6 def quadratic(a, b, c):
 7         # 求△
 8         det = b**2-4*a*c
 9         # 判断△ 大于零
10         if det > 0:
11             x1 = (-b+math.sqrt(det))/(2*a)
12             x2 = (-b-math.sqrt(det))/(2*a)
13             return x1, x2
14         # 判断△ 等于零 只有一个解
15         elif det == 0:
16             x1 = x2 = (-b+math.sqrt(det)) / (2*a)
17             return x1, x2
18         # 判断△ 小于零 无解
19         else:
20             print('测试失败!')
21 
22 # 判断根的数据类型,为int还是float,若为float则保留2位小数
23 def q_float(nx):
24     Tex = int(isinstance(nx, float))
25     if Tex == 1:
26         return round(nx, 2)
27     else:
28         return int(nx)
29 
30 # 输入abc
31 a = int(input("请输入第一个数:"))
32 b = int(input("请输入第二个数:"))
33 c = int(input("请输入第三个数:"))
34 
35 # 接收根的值
36 nx1, nx2 = quadratic(a, b, c)
37 
38 # 调用函数,直接打印输出
39 print("Quadratic(a, b, c)=", q_float(nx1), q_float(nx2))

 

posted @ 2020-07-22 23:46  _Turbo  阅读(1000)  评论(0编辑  收藏  举报