Trong bài đăng này, bạn sẽ tìm hiểu Python 3 phép chia, cũng như một số điều bất ngờ của nó. Bạn sẽ học cách sử dụng cả phương pháp số nguyên và phương pháp sàn, cũng như cách diễn giải một số kết quả ít được mong đợi của phương pháp này
Mục lục
- Bộ phận Python – Những cách khác nhau
- Bộ phận tầng Python
- Bộ phận nổi Python
- Sự kết luận
Bộ phận Python – Những cách khác nhau
Python có hai toán tử chia khác nhau,
# Two integers >> 7 / 3 2.33 # One floating point value >> 7.0 / 3 2.33 # Two floating point values >> 7.0 / 3.0 2.337 và
# Two integers >> 7 / 3 2.33 # One floating point value >> 7.0 / 3 2.33 # Two floating point values >> 7.0 / 3.0 2.338. Cái nào bạn sử dụng phụ thuộc vào kết quả mà bạn muốn đạt được
- Toán tử dấu gạch chéo đơn
# Two integers >> 7 / 3 2.33 # One floating point value >> 7.0 / 3 2.33 # Two floating point values >> 7.0 / 3.0 2.33
7 được gọi là phép chia float, trả về một giá trị dấu phẩy động - Mặt khác, toán tử dấu gạch chéo kép
# Two integers >> 7 / 3 2.33 # One floating point value >> 7.0 / 3 2.33 # Two floating point values >> 7.0 / 3.0 2.33
8 trả về một giá trị số sàn, cụ thể là số nguyên số sàn hoặc giá trị dấu phẩy động
Bộ phận tầng Python
Phép chia sàn trong Python, sử dụng toán tử
# Two integers >> 7 / 3 2.33 # One floating point value >> 7.0 / 3 2.33 # Two floating point values >> 7.0 / 3.0 2.338, hoạt động bằng cách trả về giá trị sàn của thương số của nó. Điều này hoạt động khác với phép chia số nguyên sẽ làm tròn số. Thay vào đó, điều này hoạt động bằng cách trả về giá trị sàn
Hãy xem cách điều này hoạt động trong thực tế, bằng cách xem xét một vài ví dụ
# Two float values >> 7.0 // 2.0 3.0 # A single float value >> 7 // 2.0 3.0 # Two integers >> 7 // 2 3
Một lưu ý thú vị về điều này là những gì xảy ra với số âm
>> -7.0 // 3 -3.0
Về mặt logic, điều này có ý nghĩa. Kết quả sẽ được làm tròn xuống [i. e. , sàn], có nghĩa là mặc dù chúng tôi có thể mong đợi nó bằng với
>>>5/5 1.0 >>>10/2 5.0 >>>-10/2 -5.0 >>>20.0/2 10.02, nhưng được làm tròn xuống, giá trị chính xác là
>>>5/5 1.0 >>>10/2 5.0 >>>-10/2 -5.0 >>>20.0/2 10.03
Bộ phận nổi Python
Phép chia float trong Python sử dụng toán tử
# Two integers >> 7 / 3 2.33 # One floating point value >> 7.0 / 3 2.33 # Two floating point values >> 7.0 / 3.0 2.337 và trả về một giá trị dấu phẩy động. Đây có lẽ là cách bạn mong đợi bộ phận hoạt động. Hãy xem xét thêm một số ví dụ
# Two integers >> 7 / 3 2.33 # One floating point value >> 7.0 / 3 2.33 # Two floating point values >> 7.0 / 3.0 2.33
Như bạn có thể thấy, kết quả trả về các giá trị mà bạn mong đợi, bất kể bạn đang chia số nguyên, số thực hay kết hợp cả hai
Sự kết luận
Phép chia trong Python cung cấp nhiều cách khác nhau để chia số. Có hiểu biết chắc chắn về các toán tử này giúp bạn trở thành một lập trình viên giỏi hơn nhiều nhờ hiểu biết vững chắc về những điều cơ bản. Để tìm hiểu thêm về những điều này, hãy xem tài liệu chính thức
Phép chia cho phép bạn chia hai số và trả về một thương số, i. e. , số đầu tiên hoặc số ở bên trái được chia cho số hoặc số thứ hai ở bên phải và trả về thương.
Có hai loại toán tử chia.
[i] Phân chia nổi.
Thương số trả về bởi toán tử này luôn là một số float, bất kể hai số có phải là số nguyên hay không. Ví dụ
>>>5/5 1.0 >>>10/2 5.0 >>>-10/2 -5.0 >>>20.0/2 10.0
[ii] Phép chia số nguyên [Phép chia tầng].
Thương số được trả về bởi toán tử này phụ thuộc vào đối số được truyền. Nếu bất kỳ số nào ở dạng float, nó sẽ trả về đầu ra ở dạng float. Nó còn được gọi là Phép chia sàn bởi vì, nếu bất kỳ số nào âm, thì đầu ra sẽ được chia sàn. Ví dụ
>>>5//5 1 >>>3//2 1 >>>10//3 3
Hãy xem xét các câu lệnh dưới đây trong Python
Python3
>>>5/5 1.0 >>>10/2 5.0 >>>-10/2 -5.0 >>>20.0/2 10.05
>>>5/5 1.0 >>>10/2 5.0 >>>-10/2 -5.0 >>>20.0/2 10.06
>>>5/5 1.0 >>>10/2 5.0 >>>-10/2 -5.0 >>>20.0/2 10.07
>>>5/5 1.0 >>>10/2 5.0 >>>-10/2 -5.0 >>>20.0/2 10.08____39
>>>5//5 1 >>>3//2 1 >>>10//3 30
>>>5//5 1 >>>3//2 1 >>>10//3 30
>>>5//5 1 >>>3//2 1 >>>10//3 32
>>>5//5 1 >>>3//2 1 >>>10//3 33
>>>5/5 1.0 >>>10/2 5.0 >>>-10/2 -5.0 >>>20.0/2 10.07
>>>5/5 1.0 >>>10/2 5.0 >>>-10/2 -5.0 >>>20.0/2 10.08____46
>>>5/5 1.0 >>>10/2 5.0 >>>-10/2 -5.0 >>>20.0/2 10.09
>>>5//5 1 >>>3//2 1 >>>10//3 30
>>>5//5 1 >>>3//2 1 >>>10//3 30
>>>5//5 1 >>>3//2 1 >>>10//3 32
>>>5//5 1 >>>3//2 1 >>>10//3 33
đầu ra
>> -7.0 // 3 -3.04
Đầu ra đầu tiên là tốt, nhưng đầu ra thứ hai có thể ngạc nhiên nếu chúng ta đến với thế giới Java/C++. Trong Python, toán tử “//” hoạt động như phép chia sàn cho các đối số số nguyên và số float. Tuy nhiên, toán tử chia '/' luôn trả về giá trị float
Ghi chú. Toán tử “//” được sử dụng để trả về giá trị số nguyên gần nhất nhỏ hơn hoặc bằng một biểu thức hoặc giá trị đã chỉ định. Vì vậy, từ đoạn mã trên, 5//2 trả về 2. Bạn biết rằng 5/2 là 2. 5 và số nguyên gần nhất nhỏ hơn hoặc bằng là 2[5//2]. [nó nghịch đảo với toán bình thường, trong toán bình thường giá trị là 3]
Thí dụ
Python3
>> -7.0 // 3 -3.042
>> -7.0 // 3 -3.043
>>>5/5 1.0 >>>10/2 5.0 >>>-10/2 -5.0 >>>20.0/2 10.07
>>>5/5 1.0 >>>10/2 5.0 >>>-10/2 -5.0 >>>20.0/2 10.08____146
>>>5//5 1 >>>3//2 1 >>>10//3 30
>>>5//5 1 >>>3//2 1 >>>10//3 32
>>>5//5 1 >>>3//2 1 >>>10//3 33
>>>5/5 1.0 >>>10/2 5.0 >>>-10/2 -5.0 >>>20.0/2 10.07
>>>5/5 1.0 >>>10/2 5.0 >>>-10/2 -5.0 >>>20.0/2 10.08____46
>> -7.0 // 3 -3.046
>>>5//5 1 >>>3//2 1 >>>10//3 30
>>>5//5 1 >>>3//2 1 >>>10//3 32
>>>5//5 1 >>>3//2 1 >>>10//3 33
Đầu ra
# Two integers >> 7 / 3 2.33 # One floating point value >> 7.0 / 3 2.33 # Two floating point values >> 7.0 / 3.0 2.336
Toán tử chia tầng thực sự là “//”. Nó trả về giá trị sàn cho cả đối số số nguyên và dấu phẩy động