国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Python > 正文

Python中取模運算符——%的用法詳解

2023-04-24 19:21:34
字體:
來源:轉載
供稿:網友

Python中的取模運算符%用于返回兩個數相除時的余數部分。

取模運算符%屬于算術運算符。

Python中的取模運算符

一、語法格式

%運算符的語法格式如下:

res = a % b

這里 的 a 相當于被除數, b 為除數, res 為運算結果,即 a 除以 b 后的余數。

如果 a b 都為整數,則余數也是一個整數。如果 a b 中有一個是浮點數,則運算結果也為浮點數。

二、Python取模運算符示例

下面給出一些具體的例子來了解 % 的使用及輸出結果情況。

1. 整數的取模運算

>>> 8 % 3
2
>>> 3 % 3
0
>>>

2. 浮點數的取模運算

>>> 8 % 3.0
2.0
>>> 9 % 3.0
0.0
>>> 2.1 % 3
2.1
>>> 11 % 3.3
1.1000000000000005
>>> 13.5 % 3.3
0.3000000000000007
>>>

在上面的例子中可以看出,兩個數中有一個數為浮點數時,輸出的結果也為浮點數,最后兩個例子由于精度問題,輸出的值較長,實際上其結果分別為 1.1 和 0.3。

從上面的例子和輸出結果可以看出,當兩個數中有浮點數時,兩個數的商數(應為一個正整數)與被除數b相乘時的結果最接近被除數 a ,但不超過 a ,所得余數即為 a % b 的結果。

3. 負數取模運算

Python中的取模運算符 % 可以運用到負數中,看下面的一些例子。

>>> -4 % 3
2
>>> -4 % -3
-1
>>> -13.5 % 3.3
2.999999999999999
>>> 13.5 % -3.3
-2.999999999999999
>>>

從上面的例子中可以看出,負數的模運算結果的符號總是與除數的符號保持一致。

例子中最后兩個輸出結果的原因是由于精度原因造成的,正確結果分別為3.0和-3.0。

上面的結果可以使用 a - n * b 來推斷,整數 n 的取值要保證使 a - n * b 的結果小于 b 的絕對值, n 的符號應與 a 的符號保持一致。如,對于 -13.5 % 3.3 來說,n的取值為-5, 則:a - n * b = -13.5 - ( - 5) * 3.3 = 3.0;對于 13.5 % -3.3 來說,n = 5,則 a - n * b = 13.5 - 5 * (-3.3) = -3.0

這個規則適用于a,b取值的所有類型情況。

4. 浮點數取模運算的一些問題

在上面浮點數模運算時,我們注意到了一些結果并不令人滿意,如3.0的輸出為:2.999999999999999,這種我們還可以認為是正確的結果。

但當使用 % 對于浮點數進行取模運算時,可能會得到一些意外的結果,如下面的例子:

>>> 9.6 % 3.2
>>> 3.1999999999999993
>>>

我們知道,9.6 % 3.2的結果實際上為 0.0,但使用Python計算結果卻很離譜。

這是由于,在計算機中,使用二進制來表示一個數,但對于小數來說,二進制不能精確的來表示一個小數,比如:1/3,這種情況往往使用一個近似數來表示它。由于這種近似才導致了一些意外的輸出。

上面的結果實際上相當于3.2,但模運算的結果應小于除數的絕對值,所以其實際結果應為0.0才對。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台江县| 隆昌县| 星子县| 高淳县| 毕节市| 攀枝花市| 馆陶县| 花垣县| 平泉县| 江油市| 崇文区| 库伦旗| 肥城市| 马尔康县| 齐齐哈尔市| 富宁县| 南阳市| 杨浦区| 论坛| 集安市| 孟津县| 萍乡市| 阿坝| 屏东市| 三明市| 嘉义市| 孝感市| 延吉市| 安宁市| 保康县| 唐海县| 平昌县| 涿州市| 罗山县| 峡江县| 鸡东县| 平阴县| 安义县| 城市| 马边| 阳原县|