簡體   English   中英

Python 2 和 Python 3 中的整數除法

[英]Integer division in Python 2 and Python 3

如何在 Python 2.7 中將兩個數字相除並得到小數的結果?

我不明白為什么會有區別:

在 Python 3 中:

>>> 20/15
1.3333333333333333

在 Python 2 中:

>>> 20/15
1

這實際上不是模數嗎?

在 Python 2.7 中,如果輸入是整數,則/運算符是整數除法。

如果你想要浮點除法(這是我一直喜歡的),只需使用這個特殊的導入:

from __future__ import division

在這里看到它:

>>> 7 / 2
3
>>> from __future__ import division
>>> 7 / 2
3.5
>>>

整數除法是使用//實現的,模數是使用%實現的:

>>> 7 % 2
1
>>> 7 // 2
3
>>>

正如user2357112所評論的,此導入必須在任何其他正常導入之前完成。

在 Python 3 中, /是浮點除法

在 Python 2 中, /是整數除法(假設int輸入)

在 23 中, //都是整數除法

(要在 Python 2 中獲得浮點除法,需要任一操作數為浮點數,如20.float(20)

在 Python 2.x 中,請確保在float中至少有一個除法操作數。 您可以通過多種方式實現此目的,例如以下示例:

20. / 15
20 / float(15)

“/”在 Python 2 中是整數除法,所以它會四舍五入到整數。 如果您想返回小數,只需將其中一個輸入的類型更改為浮點數:

float(20)/15 #1.33333333

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM