課程
/后端開發
/Python
/初識Python
我看到參考答案的公式里是直接使用的整數,傳進來的參數也是整數,為什么不會造成計算時按照整除計算之類的問題?有沒有必要計算時專門使用浮點數來進行計算?
2019-04-17
源自:初識Python 7-4
正在回答
這次的參考答案是比較省略的,所以忽略了這些問題。
參考答案里面傳回的參數都是使用了math.sqrt(x),這會自動把整數x平方后的數變為浮點數。做下print math.sqrt(4)的實驗就可以知道。
如果一般計算,為了避免python整數除法運算自動取整,可以先把傳進來的參數浮點化float()
這次參考答案還忽視了,傳進的a參數是不能為0的,不然會報錯,還有當
??,就是b**2-4*a*c的結果小于0
時,方程無實數根
import?mathdef?quadratic_equation(a,?b,?c):????if?a==0:????????if?b==0:????????????return?None????????else:????????????x=float(-c)/b#避免整數相除取整????????return?x????else:????????r=b**2-4*a*c????????if?r>=0:????????????x1=(-b+math.sqrt(r))/(2*a)????????????x2=(-b-math.sqrt(r))/(2*a)????????????return?x1,?x2????????else:????????????return?None
人間世支離疏
import math
def quadratic_equation(a, b, c):
? ? if a==0:
? ? ? ? if b==0:
? ? ? ? ? ? return None
? ? ? ? else:
? ? ? ? ? ? x=float(-c)/b#避免整數相除取整
? ? ? ? return x
? ? else:
? ? ? ? r=b**2-4*a*c
? ? ? ? if r>=0:
? ? ? ? ? ? x1=(-b+math.sqrt(r))/(2*a)
? ? ? ? ? ? x2=(-b-math.sqrt(r))/(2*a)
? ? ? ? ? ? return x1, x2
? ? ? ??
舉報
學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-04-18
這次的參考答案是比較省略的,所以忽略了這些問題。
參考答案里面傳回的參數都是使用了math.sqrt(x),這會自動把整數x平方后的數變為浮點數。做下print math.sqrt(4)的實驗就可以知道。
如果一般計算,為了避免python整數除法運算自動取整,可以先把傳進來的參數浮點化float()
這次參考答案還忽視了,傳進的a參數是不能為0的,不然會報錯,還有當
?
?,就是b**2-4*a*c的結果小于0
時,方程無實數根
2019-04-18
import math
def quadratic_equation(a, b, c):
? ? if a==0:
? ? ? ? if b==0:
? ? ? ? ? ? return None
? ? ? ? else:
? ? ? ? ? ? x=float(-c)/b#避免整數相除取整
? ? ? ? return x
? ? else:
? ? ? ? r=b**2-4*a*c
? ? ? ? if r>=0:
? ? ? ? ? ? x1=(-b+math.sqrt(r))/(2*a)
? ? ? ? ? ? x2=(-b-math.sqrt(r))/(2*a)
? ? ? ? ? ? return x1, x2
? ? ? ? else:
? ? ? ? ? ? return None
? ? ? ??