Hướng dẫn python division only whole number - python chỉ chia số nguyên

Có một lợi ích khi sử dụng cái này hơn cái kia? Trong Python 2, cả hai dường như trả về cùng một kết quả:

>>> 6/3
2
>>> 6//3
2

Hướng dẫn python division only whole number - python chỉ chia số nguyên

Georgy

11.1k7 Huy hiệu vàng62 Huy hiệu bạc70 Huy hiệu đồng7 gold badges62 silver badges70 bronze badges

Hỏi ngày 8 tháng 10 năm 2008 lúc 17:16Oct 8, 2008 at 17:16

1

Trong Python 3.x,

print (2/3)  ----> 0                   Python 2.7
print (2/3)  ----> 0.6666666666666666  Python 3.5
2 sẽ trả về
print (2/3)  ----> 0                   Python 2.7
print (2/3)  ----> 0.6666666666666666  Python 3.5
3 và
print (2/3)  ----> 0                   Python 2.7
print (2/3)  ----> 0.6666666666666666  Python 3.5
4 sẽ trả về
print (2/3)  ----> 0                   Python 2.7
print (2/3)  ----> 0.6666666666666666  Python 3.5
5. Cái trước là phân chia điểm nổi, và cái sau là phân chia sàn, đôi khi còn được gọi là phân chia số nguyên.floor division, sometimes also called integer division.

Trong Python 2.2 trở lên trong dòng 2.x, không có sự khác biệt cho các số nguyên trừ khi bạn thực hiện

print (2/3)  ----> 0                   Python 2.7
print (2/3)  ----> 0.6666666666666666  Python 3.5
6, điều này khiến Python 2.x áp dụng hành vi 3.x.

Bất kể nhập khẩu trong tương lai,

print (2/3)  ----> 0                   Python 2.7
print (2/3)  ----> 0.6666666666666666  Python 3.5
7 sẽ trả lại
print (2/3)  ----> 0                   Python 2.7
print (2/3)  ----> 0.6666666666666666  Python 3.5
8 vì đó là kết quả phân chia sàn của hoạt động.

Bạn có thể tìm thấy một mô tả chi tiết tại PEP 238: Thay đổi toán tử phân chia.

Hướng dẫn python division only whole number - python chỉ chia số nguyên

Đã trả lời ngày 8 tháng 10 năm 2008 lúc 17:21Oct 8, 2008 at 17:21

Eli Courtwrighteli CourtwrightEli Courtwright

Phim thương hiệu vàng 180K6666 gold badges209 silver badges256 bronze badges

6

Python 2.x làm rõ:

Để làm rõ cho dòng Python 2.x,

print (2/3)  ----> 0                   Python 2.7
print (2/3)  ----> 0.6666666666666666  Python 3.5
9 không phải là phân chia sàn cũng không phân chia thực sự.

print (2/3)  ----> 0                   Python 2.7
print (2/3)  ----> 0.6666666666666666  Python 3.5
9 là phân chia sàn khi cả hai ARG là
print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
1, nhưng là sự phân chia thực sự khi một trong hai ARG là
print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
2.both args are
print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
1, but is true division when either of the args are
print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
2.

Tomerikoo

16.8K15 Huy hiệu vàng39 Huy hiệu bạc57 Huy hiệu đồng15 gold badges39 silver badges57 bronze badges

Đã trả lời ngày 22 tháng 7 năm 2012 lúc 21:50Jul 22, 2012 at 21:50

YichunyichunYichun

1.1809 huy hiệu bạc14 Huy hiệu đồng9 silver badges14 bronze badges

print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
3 thực hiện "phân chia sàn", bất kể loại của bạn. Vì vậy,
print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
4 sẽ cho
print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
5, nhưng cả
print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
6,
print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
7 và
print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
8 sẽ cung cấp
print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
9.

Xem PEP 238: Thay đổi toán tử phân chia để biết chi tiết.

Hướng dẫn python division only whole number - python chỉ chia số nguyên

Đã trả lời ngày 8 tháng 10 năm 2008 lúc 17:19Oct 8, 2008 at 17:19

KenakenaKena

6.8815 huy hiệu vàng35 huy hiệu bạc46 Huy hiệu đồng5 gold badges35 silver badges46 bronze badges

2

/ → phân chia điểm nổi → Floating point division

// → phân chia sàn → Floor division

Hãy cùng xem một số ví dụ trong cả Python 2.7 và trong Python 3.5.

Python 2.7.10 so với Python 3.5

print (2/3)  ----> 0                   Python 2.7
print (2/3)  ----> 0.6666666666666666  Python 3.5

Python 2.7.10 so với Python 3.5

print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5

Bây giờ nếu bạn muốn có (trong Python 2.7) cùng đầu ra như trong Python & NBSP; 3.5, bạn có thể làm như sau:

Python 2.7.10

from __future__ import division
print (2/3)  ----> 0.6666666666666666   # Python 2.7
print (4/2)  ----> 2.0                  # Python 2.7

Trong khi đó, không có bất kỳ sự khác biệt nào giữa phân chia sàn trong cả Python 2.7 và trong Python 3.5.

138.93//3 ---> 46.0        # Python 2.7
138.93//3 ---> 46.0        # Python 3.5
4//3      ---> 1           # Python 2.7
4//3      ---> 1           # Python 3.5

Hướng dẫn python division only whole number - python chỉ chia số nguyên

Đã trả lời ngày 24 tháng 7 năm 2016 lúc 12:39Jul 24, 2016 at 12:39

N Randhawan RandhawaN Randhawa

8.1833 huy hiệu vàng42 Huy hiệu bạc47 Huy hiệu đồng3 gold badges42 silver badges47 bronze badges

4

Như mọi người đã trả lời,

print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
3 là phân chia sàn.

Tại sao điều này quan trọng là

print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
3 là phân chia sàn rõ ràng, trong tất cả các phiên bản Python từ 2.2, bao gồm các phiên bản Python 3.x.

Hành vi của

print (2/3)  ----> 0                   Python 2.7
print (2/3)  ----> 0.6666666666666666  Python 3.5
9 có thể thay đổi tùy thuộc vào:

  • Hoạt động
    from __future__ import division
    print (2/3)  ----> 0.6666666666666666   # Python 2.7
    print (4/2)  ----> 2.0                  # Python 2.7
    
    3 Nhập hay không (Mô-đun-Local)
  • Tùy chọn dòng lệnh Python,
    from __future__ import division
    print (2/3)  ----> 0.6666666666666666   # Python 2.7
    print (4/2)  ----> 2.0                  # Python 2.7
    
    4 hoặc
    from __future__ import division
    print (2/3)  ----> 0.6666666666666666   # Python 2.7
    print (4/2)  ----> 2.0                  # Python 2.7
    
    5

Đã trả lời ngày 9 tháng 11 năm 2009 lúc 23:55Nov 9, 2009 at 23:55

u0b34a0f6aeu0b34a0f6aeu0b34a0f6ae

46.6K14 Huy hiệu vàng89 Huy hiệu bạc100 Huy hiệu đồng14 gold badges89 silver badges100 bronze badges

>>> print 5.0 / 2
2.5

>>> print 5.0 // 2
2.0

Đã trả lời ngày 18 tháng 3 năm 2014 lúc 18:23Mar 18, 2014 at 18:23

1

Python 2.7 và các phiên bản Python sắp tới khác:

  • Bộ phận (
    print (2/3)  ----> 0                   Python 2.7
    print (2/3)  ----> 0.6666666666666666  Python 3.5
    
    9)

Chia toán hạng tay trái cho toán hạng bên phải

Ví dụ:

from __future__ import division
print (2/3)  ----> 0.6666666666666666   # Python 2.7
print (4/2)  ----> 2.0                  # Python 2.7
7

  • Phân chia sàn (
    print (4/2)  ----> 2         Python 2.7
    print (4/2)  ----> 2.0       Python 3.5
    
    3)

Sự phân chia các toán hạng trong đó kết quả là thương số trong đó các chữ số sau khi điểm thập phân được loại bỏ. Nhưng nếu một trong các toán hạng là âm, kết quả được đưa ra, tức là, làm tròn từ số không (về phía vô cực âm):

Ví dụ:

from __future__ import division
print (2/3)  ----> 0.6666666666666666   # Python 2.7
print (4/2)  ----> 2.0                  # Python 2.7
9 và
138.93//3 ---> 46.0        # Python 2.7
138.93//3 ---> 46.0        # Python 3.5
4//3      ---> 1           # Python 2.7
4//3      ---> 1           # Python 3.5
0,
138.93//3 ---> 46.0        # Python 2.7
138.93//3 ---> 46.0        # Python 3.5
4//3      ---> 1           # Python 2.7
4//3      ---> 1           # Python 3.5
1,
138.93//3 ---> 46.0        # Python 2.7
138.93//3 ---> 46.0        # Python 3.5
4//3      ---> 1           # Python 2.7
4//3      ---> 1           # Python 3.5
2

Cả hai bộ phận

print (2/3)  ----> 0                   Python 2.7
print (2/3)  ----> 0.6666666666666666  Python 3.5
9 và nhà điều hành phân chia tầng
print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
3 đều hoạt động theo kiểu tương tự.

Hướng dẫn python division only whole number - python chỉ chia số nguyên

Đã trả lời ngày 5 tháng 2 năm 2017 lúc 14:27Feb 5, 2017 at 14:27

Hướng dẫn python division only whole number - python chỉ chia số nguyên

0

Slash đôi,

print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
3, là phân chia sàn:

>>> 7//3
2

Suy nghĩStiff

64.3K30 Huy hiệu vàng144 Huy hiệu bạc238 Huy hiệu đồng30 gold badges144 silver badges238 bronze badges

Đã trả lời ngày 8 tháng 10 năm 2008 lúc 17:19Oct 8, 2008 at 17:19

KenakenaMark Roddy

6.8815 huy hiệu vàng35 huy hiệu bạc46 Huy hiệu đồng19 gold badges66 silver badges71 bronze badges

/ → phân chia điểm nổi

Hướng dẫn python division only whole number - python chỉ chia số nguyên

Đã trả lời ngày 8 tháng 10 năm 2008 lúc 17:19Oct 8, 2008 at 17:19

KenakenaAdam Bellaire

6.8815 huy hiệu vàng35 huy hiệu bạc46 Huy hiệu đồng19 gold badges148 silver badges162 bronze badges

/ → phân chia điểm nổi

>>> int(755349677599789174 / 2) # Wrong answer
377674838799894592
>>> 755349677599789174 // 2     # Correct answer
377674838799894587

Hướng dẫn python division only whole number - python chỉ chia số nguyên

// → phân chia sànJun 6, 2019 at 2:27

Hướng dẫn python division only whole number - python chỉ chia số nguyên

Hãy cùng xem một số ví dụ trong cả Python 2.7 và trong Python 3.5.

>>>print 5//2
2
>>> print 5.0//2
2.0
>>>print 5//2.0
2.0
>>>print 5.0//2.0
2.0

Python 2.7.10 so với Python 3.5Jun 3, 2015 at 15:26

G.AntG.AntG.Ant

Bây giờ nếu bạn muốn có (trong Python 2.7) cùng đầu ra như trong Python & NBSP; 3.5, bạn có thể làm như sau:3 bronze badges

Python 2.7.10

Trong khi đó, không có bất kỳ sự khác biệt nào giữa phân chia sàn trong cả Python 2.7 và trong Python 3.5.

Đã trả lời ngày 24 tháng 7 năm 2016 lúc 12:39

N Randhawan Randhawa

  • 8.1833 huy hiệu vàng42 Huy hiệu bạc47 Huy hiệu đồngfloor division. As in:

    math.floor(a/b)

  • Như mọi người đã trả lời,

    print (4/2)  ----> 2         Python 2.7
    print (4/2)  ----> 2.0       Python 3.5
    
    3 là phân chia sàn.int division. As in:

    int(a/b)

  • Tại sao điều này quan trọng là

    print (4/2)  ----> 2         Python 2.7
    print (4/2)  ----> 2.0       Python 3.5
    
    3 là phân chia sàn rõ ràng, trong tất cả các phiên bản Python từ 2.2, bao gồm các phiên bản Python 3.x.round to 0 float division. As in:

    round(a/b,0)

Hành vi của

print (2/3)  ----> 0                   Python 2.7
print (2/3)  ----> 0.6666666666666666  Python 3.5
9 có thể thay đổi tùy thuộc vào:

Hoạt động

from __future__ import division
print (2/3)  ----> 0.6666666666666666   # Python 2.7
print (4/2)  ----> 2.0                  # Python 2.7
3 Nhập hay không (Mô-đun-Local)

math.floor(1/2)

Tùy chọn dòng lệnh Python,

from __future__ import division
print (2/3)  ----> 0.6666666666666666   # Python 2.7
print (4/2)  ----> 2.0                  # Python 2.7
4 hoặc
from __future__ import division
print (2/3)  ----> 0.6666666666666666   # Python 2.7
print (4/2)  ----> 2.0                  # Python 2.7
5

math.floor(-1/2)

Đã trả lời ngày 9 tháng 11 năm 2009 lúc 23:55Feb 13, 2021 at 20:25

46.6K14 Huy hiệu vàng89 Huy hiệu bạc100 Huy hiệu đồngvillamejia

3311 Huy hiệu vàng6 Huy hiệu bạc15 Huy hiệu đồng1 gold badge6 silver badges15 bronze badges

Python 3

Hoạt độngKết quảGhi chú
138.93//3 ---> 46.0        # Python 2.7
138.93//3 ---> 46.0        # Python 3.5
4//3      ---> 1           # Python 2.7
4//3      ---> 1           # Python 3.5
9
chỉ số của x và y
>>> print 5.0 / 2
2.5

>>> print 5.0 // 2
2.0
0
chỉ số của x và y(1)

Notes:

  1. Cũng được gọi là bộ phận số nguyên. Giá trị kết quả là toàn bộ số nguyên, mặc dù loại kết quả không nhất thiết là int. Kết quả luôn được làm tròn về phía trừ vô cực:
    print (4/2)  ----> 2         Python 2.7
    print (4/2)  ----> 2.0       Python 3.5
    
    7 là
    print (4/2)  ----> 2         Python 2.7
    print (4/2)  ----> 2.0       Python 3.5
    
    9,
    >>> print 5.0 / 2
    2.5
    
    >>> print 5.0 // 2
    2.0
    
    3 là
    >>> print 5.0 / 2
    2.5
    
    >>> print 5.0 // 2
    2.0
    
    4,
    >>> print 5.0 / 2
    2.5
    
    >>> print 5.0 // 2
    2.0
    
    5 là
    >>> print 5.0 / 2
    2.5
    
    >>> print 5.0 // 2
    2.0
    
    4 và
    >>> print 5.0 / 2
    2.5
    
    >>> print 5.0 // 2
    2.0
    
    7 là
    print (4/2)  ----> 2         Python 2.7
    print (4/2)  ----> 2.0       Python 3.5
    
    9.

Python 2

Hoạt độngKết quảGhi chú
138.93//3 ---> 46.0        # Python 2.7
138.93//3 ---> 46.0        # Python 3.5
4//3      ---> 1           # Python 2.7
4//3      ---> 1           # Python 3.5
9
chỉ số của x và y(1)
>>> print 5.0 / 2
2.5

>>> print 5.0 // 2
2.0
0
chỉ số của x và y(1)

Notes:

Cũng được gọi là bộ phận số nguyên. Giá trị kết quả là toàn bộ số nguyên, mặc dù loại kết quả không nhất thiết là int. Kết quả luôn được làm tròn về phía trừ vô cực:

print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
7 là
print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
9,
>>> print 5.0 / 2
2.5

>>> print 5.0 // 2
2.0
3 là
>>> print 5.0 / 2
2.5

>>> print 5.0 // 2
2.0
4,
>>> print 5.0 / 2
2.5

>>> print 5.0 // 2
2.0
5 là
>>> print 5.0 / 2
2.5

>>> print 5.0 // 2
2.0
4 và
>>> print 5.0 / 2
2.5

>>> print 5.0 // 2
2.0
7 là
print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
9.

Python 2

(Sloowed) Thương số của X và Y

(4) (5)Mar 27, 2021 at 19:01

Hướng dẫn python division only whole number - python chỉ chia số nguyên

1. Đối với phân chia số nguyên (đơn giản hoặc dài), kết quả là một số nguyên. Kết quả luôn được làm tròn về phía trừ vô cực: 1/2 là 0, (-1)/2 là -1, 1/(-2) là -1 và (-1)/(-2) là 0. Lưu ý rằng Kết quả là một số nguyên dài nếu một trong hai toán hạng là một số nguyên dài, bất kể giá trị số.iacob

4. Không dùng nữa kể từ phiên bản 2.3: Toán tử phân chia sàn, toán tử modulo và hàm

>>> 7//3
2
1 không còn được xác định cho các số phức. Thay vào đó, hãy chuyển đổi thành số điểm nổi bằng hàm
>>> 7//3
2
2 nếu thích hợp.5 gold badges73 silver badges103 bronze badges

5. còn được gọi là bộ phận số nguyên. Giá trị kết quả là toàn bộ số nguyên, mặc dù loại kết quả không nhất thiết là int.

  • Đã trả lời ngày 27 tháng 3 năm 2021 lúc 19:01EXACT integer division
  • IacobiacobINEXACT integer division (but almost correct)
  • 16.2k5 Huy hiệu vàng73 Huy hiệu bạc103 Huy hiệu đồng

Bản tóm tắt

print (2/3)  ----> 0                   Python 2.7
print (2/3)  ----> 0.6666666666666666  Python 3.5
0

x // y: phân chia số nguyên chính xác

int (x/y) hoặc math.floor (x/y): phân chia số nguyên không chính xác (nhưng gần như chính xác)
At first, Python evaluate the expression

>>> 7//3
2
4 and get INEXACT floating number z.
Second, Python evaluate the expression
>>> 7//3
2
5.
We get a wrong result when the loss of significance cannot be ignored.

X/Y: Phân chia điểm nổi (có mất ý nghĩa)Jul 29, 2021 at 15:43

Kết quả tính toán đáng chú ýnaoki fujita

Sự xem xét1 gold badge7 silver badges13 bronze badges

2

  • Tôi nghĩ về việc đánh giá
    >>> 7//3
    2
    
    3. Lúc đầu, Python đánh giá biểu thức
    >>> 7//3
    2
    
    4 và nhận được số nổi không chính xác z. Thứ hai, Python đánh giá biểu thức
    >>> 7//3
    2
    
    5. Chúng tôi nhận được một kết quả sai khi mất ý nghĩa không thể bị bỏ qua.
  • Đã trả lời ngày 29 tháng 7 năm 2021 lúc 15:43

Naoki Fujitanaoki Fujita

print (2/3)  ----> 0                   Python 2.7
print (2/3)  ----> 0.6666666666666666  Python 3.5
1

Hướng dẫn python division only whole number - python chỉ chia số nguyên

6691 Huy hiệu vàng7 Huy hiệu bạc13 Huy hiệu đồngMar 23, 2019 at 19:15

2

print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
3 là phân chia sàn. Nó sẽ luôn cung cấp cho bạn giá trị sàn của kết quả.return type of the return value from
print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
3 operator follows Python coercion (type casting) rules.

Và một cái khác,

print (2/3)  ----> 0                   Python 2.7
print (2/3)  ----> 0.6666666666666666  Python 3.5
9, là bộ phận nổi.

Hướng dẫn python division only whole number - python chỉ chia số nguyên

Sau đây là sự khác biệt giữa

print (2/3)  ----> 0                   Python 2.7
print (2/3)  ----> 0.6666666666666666  Python 3.5
9 và
print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5
3; Tôi đã chạy các hoạt động số học này trong Python 3.7.2.Nov 9, 2018 at 22:27

0

Sự khác biệt giữa '/' và trong Python là gì?

Câu trả lời của chuyên gia.Trả lời: '/' là nhà điều hành bộ phận. '//' là nhà điều hành phân chia sàn.'/' is the division operator. '//' is the floor division operator.

Division có làm tròn ở Python không?

Nhà điều hành phân chia sàn của Python, còn gọi là nhà điều hành bộ phận số nguyên, giống như toán học.Phương pháp sàn ().Nó chia số thứ nhất cho số thứ hai và sau đó làm tròn kết quả đến số nguyên thấp nhất gần nhất.It divides the first number by the second and then rounds down the result to the nearest lower integer.

Liệu Python có cắt bộ phận không?

Toán tử phân chia cắt ngắn (còn được gọi là phân chia sàn) cắt ngắn kết quả thành một số nguyên và hoạt động với cả số nguyên và số điểm nổi.... Hoạt động trên các số ..

Sự khác biệt giữa phân chia sàn và phân chia trong Python là gì?

Với một bộ phận thông thường, -10 / 3 sẽ trả lại -3,33, nhưng với một phân chia sàn, con số này được làm tròn xuống số nguyên âm gần nhất, nghĩa là -4.