Discuss / Python / 定义函数-作业

定义函数-作业

Topic source

Edward_Mu

#1 Created at ... [Delete] [Delete and Lock User]

Quadratic Euation Solutions

import math

def quadratic(a,b,c):

DEL = pow(b,2) - 4 * a * c

if DEL > 0:
    x1 = (-b + math.sqrt(DEL)) / (2 * a)
    x2 = (-b - math.sqrt(DEL)) / (2 * a)
    return x1, x2
elif DEL < 0:
    x = -b / 2*a
    return x
else:
    return('No Solution')

测试:

print('quadratic(2, 3, 1) =', quadratic(2, 3, 1)) print('quadratic(1, 3, -4) =', quadratic(1, 3, -4)) print('quadratic(1, 2, 1) =', quadratic(1, 2, 1)) print('quadratic(2, 1, 1) =', quadratic(2,1,1))

if quadratic(2, 3, 1) != (-0.5, -1.0): print('测试失败') elif quadratic(1, 3, -4) != (1.0, -4.0): print('测试失败') elif quadratic(1, 2, 1) != ('No Solution'): print('测试失败') elif quadratic(2, 1, 1) != (-1.0): print('测试失败') else: print('测试成功')

Edward_Mu

#2 Created at ... [Delete] [Delete and Lock User]

备注1: 最开始把赋值全部写在前面(如下代码),导致运行报错:math domain err.后分析原因为:当delta等于0时,对x1赋值的语句会对delta开平方,造成不符合数学运算规则。 DEL = pow(b,2) - 4 a c x1 = (-b + math.sqrt(DEL)) / (2 a) x2 = (-b - math.sqrt(DEL)) / (2 a) x = -b / 2*a

if DEL > 0: return x1, x2 elif DEL < 0: return x else: return('No Solution')

备注2: 现在写的是公式文件,用途是在后续进行调用,所以不需要input。

备注3: 如何对a,b,c进行参数类型验证?待实验!

-半片葉

#3 Created at ... [Delete] [Delete and Lock User]

elif DEL = 0: return x

Edward_Mu

#4 Created at ... [Delete] [Delete and Lock User]

-半片葉

#3 Created at 8小时前

elif DEL = 0:

return x

是的,是的!谢谢指正!

Edward_Mu

#5 Created at ... [Delete] [Delete and Lock User]

作业更正! 感谢-半片葉的指正!希望各路大神多多指教!

Quadratic Euation Solutions

import math

def quadratic(a,b,c):

DEL = pow(b,2) - 4 * a * c

if DEL > 0:
    x1 = (-b + math.sqrt(DEL)) / (2 * a)
    x2 = (-b - math.sqrt(DEL)) / (2 * a)
    return x1, x2
elif DEL == 0:
    x = -b / 2*a
    return x
else:
    return('No Solution')

测试:

print('quadratic(2, 3, 1) =', quadratic(2, 3, 1)) print('quadratic(1, 3, -4) =', quadratic(1, 3, -4)) print('quadratic(1, 2, 1) =', quadratic(1, 2, 1)) print('quadratic(2, 1, 1) =', quadratic(2,1,1))

if quadratic(2, 3, 1) != (-0.5, -1.0): print('测试失败') elif quadratic(1, 3, -4) != (1.0, -4.0): print('测试失败') elif quadratic(1, 2, 1) != (-1.0): print('测试失败') elif quadratic(2, 1, 1) != ('No Solution'): print('测试失败') else: print('测试成功')


  • 1

Reply