Hướng dẫn why division in python gives float? - tại sao phân chia trong python lại cho float?

Trong bài đăng này, bạn sẽ học Python 3 Division, cũng như một số điều kỳ quặc 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à sàn, cũng như cách diễn giải một số kết quả ít được mong đợi của nó.

Phân khu Python - Những cách khác nhau

Python có hai toán tử phân chia khác nhau, ///. 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ử Slash / đơn lẻ được gọi là Phân chia Float, trả về giá trị điểm nổi.floating point value.
  • Mặt khác, nhà điều hành chém gấp đôi // trả về giá trị nổi, cụ thể là một số nguyên hoặc giá trị điểm nổi.floored integer or floating point value.

Phân chia sàn Python, sử dụng toán tử //, hoạt động bằng cách trả lại giá trị nổi của thương số của nó. Điều này hoạt động khác với phân 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ả lại giá trị sàn.floor value.

Hãy cùng xem cách thức hoạt động của nó trong hành động, 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 các 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 (tức là, đứng), có nghĩa là trong khi chúng ta có thể mong đợi nó bằng

>> -7.0 // 3
-3.0
1, được làm tròn xuống, giá trị là chính xác
>> -7.0 // 3
-3.0
2.

Phân chia phao Python

Phân chia Float Python sử dụng toán tử / và trả về, tốt, một giá trị điểm nổi. Điều này, có lẽ, nhiều hơn là cách bạn mong đợi sự phân chia sẽ hoạt động. Hãy cùng xem xét một vài ví dụ nữa:

# 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 có phân chia số nguyên, phao hay sự pha trộn của cả hai.

Sự kết luận

Chia trong Python cung cấp các cách khác nhau để chia số. Có một sự hiểu biết vững chắc về các nhà khai thác này làm cho bạn trở thành một lập trình viên tốt hơn nhiều bằng cách hiểu rõ về những điều cơ bản. Để tìm hiểu thêm về những điều này, hãy xem các tài liệu chính thức.

Kiểm tra một số hướng dẫn Python khác ở đây.

Để tìm hiểu thêm về các chủ đề liên quan, hãy xem các hướng dẫn dưới đây:

  • Pandas Mô tả: Thống kê mô tả về DataFrame của bạn
  • Sử dụng gấu trúc cho số liệu thống kê mô tả trong Python
  • Tạo các lô cặp trong Seaborn với cặp SNS

Hàm phân chia trong Python có hai biến thể:

  • Phân chia phao: đưa ra một câu trả lời thập phân.: gives a decimal answer.

  • Phân chia số nguyên: Đưa ra câu trả lời trong các số toàn bộ (kết quả phân chia được làm tròn đến tổng số gần nhất).: gives the answer in whole numbers (the division result is rounded to the nearest whole number).

Phân chia phao ( /)

Hoạt động phân chia float / được sử dụng khi bạn muốn kết quả phân chia chính xác hơn, vì nó không làm tròn giá trị cho toàn bộ số.

Cần lưu ý rằng đối với các giá trị thập phân định kỳ, có giới hạn về số lượng biến

>> -7.0 // 3
-3.0
5 có thể lưu trữ, do đó không phải lúc nào cũng có thể lưu trữ giá trị chính xác.

Giá trị trả về cho toán tử phân chia float luôn thuộc loại

>> -7.0 // 3
-3.0
5, ngay cả khi các toán hạng của toán tử không phải là các biến
>> -7.0 // 3
-3.0
5.

Hành vi này của nhà điều hành phân chia phao bắt đầu với sự ra đời của Python3, như trong Python2, toán tử bộ phận float sẽ trả về giá trị số nguyên nếu cả hai toán hạng là số nguyên.

Ví dụ phân chia float

Ví dụ về mã sau đây cho thấy rằng bất kể loại dữ liệu số của bạn là gì, câu trả lời của bạn luôn ở loại

>> -7.0 // 3
-3.0
5 nếu bạn sử dụng toán tử phân chia float.

# initializing two floats

my_float1 = 10.0

my_float2 = 10.0

print ("Result of float division of two floats: ", my_float1/my_float2)

# initializing two integers

my_int1 = 10

my_int2 = 10

print ("Result of float division of two integers: ", my_int1/my_int2)

Phân chia số nguyên (//)

Hoạt động phân chia số nguyên // được sử dụng khi bạn muốn câu trả lời của mình có số lượng. Vì điều rất phổ biến cho kết quả chia hai số nguyên là một giá trị thập phân, trong các số nguyên Python3, phân chia kết quả cho giới hạn dưới được gọi là sàn kết quả.

Giá trị trả về cho toán tử phân chia số nguyên thuộc loại

# 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
0 nếu cả hai toán tử đều là số nguyên. Ngược lại, nó trả về giá trị
>> -7.0 // 3
-3.0
5 nếu một trong các toán hạng là một chiếc phao.

Toán tử phân chia số nguyên đã được giới thiệu trong Python3, vì vậy đối với các hệ thống chạy Python2, người dùng phải nhập mô -đun

# 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
2 để sử dụng nó.

Ví dụ phân chia số nguyên

Ví dụ mã sau đây cho thấy sự phân chia của hai số nguyên để tạo ra kết quả số nguyên.

# initializing two integers

my_int1 = 10

my_int2 = 10

print ("Result of integer division of two integers: ", my_int1//my_int2)

Ví dụ sau đây chứng minh rằng nếu một trong các toán hạng (hoặc cả hai) là

>> -7.0 // 3
-3.0
5, thì câu trả lời cũng là một
>> -7.0 // 3
-3.0
5, nhưng được làm tròn đến số toàn bộ giới hạn dưới gần nhất.

# initializing two floats

my_float1 = 4

my_float2 = 3.0

print ("Result of integer division of floats and integers: ", my_float1//my_float2)

# initializing two floats

my_float3 = 4.0

my_float4 = 3

print ("Result of integer division of floats and integers ", my_float3//my_float4)

Lưu ý làm thế nào kết quả là giá trị loại

>> -7.0 // 3
-3.0
5, nhưng cũng như đối với phân chia số nguyên thông thường mà chúng ta đã thấy trước đó, kết quả vẫn còn được. Điều này có nghĩa là chỉ phần thương số được giữ từ câu trả lời nổi ban đầu, trong khi mọi thứ đến sau khi số thập phân bị loại bỏ và được biểu thị bằng 0.

Bản quyền © 2022 Giáo dục, Inc. Tất cả quyền được bảo lưu

Tại sao sự phân chia trong Python trở lại một chiếc phao?

Toán tử phân chia sàn (//) chủ yếu được sử dụng khi bạn yêu cầu một số nguyên hoặc cần trả về số nguyên nhỏ nhất nhỏ hơn hoặc bằng đầu vào. Nếu các toán hạng là cả hai số nguyên, thì đầu ra sẽ là một số nguyên. Nếu một trong hai toán hạng là một float thì đầu ra sẽ là một float.If either operand is a float then the output will be a float.

Bộ phận có tạo ra một chiếc phao trong Python không?

Trong Python 3, "/" Đồng đều hoạt động như một toán tử phân chia nổi.Vì vậy, nó luôn trả về loại float: 10/3 trả về 3.333333 thay vì 3, 6/3 trả về 2.0 thay vì 2."/" uniformly works as a float division operator. So, it always returns the float type: 10/3 returns 3.333333 instead of 3, 6/3 returns 2.0 instead of 2.

Bộ phận có dẫn đến một chiếc phao không?

Phân chia float trả về một xấp xỉ điểm nổi của kết quả của một bộ phận.Ví dụ, .Chỉ có một số giá trị nhất định sau khi thập phân có thể được lưu trữ, do đó không thể lưu trữ một biểu diễn nhị phân chính xác của nhiều số điểm nổi.. For example, . Only a certain number of values after the decimal can be stored, so it is not possible to store an exact binary representation of many floating point numbers.

Làm thế nào để Python xử lý sự phân chia?

Trong Python, có hai loại toán tử phân chia: /: chia số bên trái cho số bên phải của nó và trả về giá trị điểm nổi.//: Chia số ở bên trái cho số bên phải của nó, làm tròn câu trả lời và trả về một số toàn bộ.