亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么不用擔心參數和返回值被識別成了int呢?

我看到參考答案的公式里是直接使用的整數,傳進來的參數也是整數,為什么不會造成計算時按照整除計算之類的問題?有沒有必要計算時專門使用浮點數來進行計算?

正在回答

2 回答

這次的參考答案是比較省略的,所以忽略了這些問題。

參考答案里面傳回的參數都是使用了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


1 回復 有任何疑惑可以回復我~
#1

人間世支離疏

下面重新傳了代碼
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

? ? ? ??


5 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
初識Python
  • 參與學習       758398    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

為什么不用擔心參數和返回值被識別成了int呢?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號