Python math.remainder

Trước khi bạn nghĩ đây là một hàm số dư đơn giản tìm số dư khi một số chia cho số kia, hãy dừng lại và đọc trước. Đây không phải là những gì bạn nghĩ

Tìm phần còn lại khi một số được chia cho một số khác là tầm thường. Nó có thể được thực hiện bằng cách sử dụng toán tử mô-đun (mô-đun) (

a = 10.5
b = 3.1
print(math.remainder(a,b))

m = abs(math.remainder(a,b))
n = 0.5*abs(b)
print(m <= n)
1) nhưng toán tử mô-đun luôn trả về một số dương (giá trị mô-đun thực) khiến nó không phù hợp nếu chúng ta phải sử dụng toán tử này với các số âm

Trăn 3. 7 đã giới thiệu một phương pháp số dư mới có thể tìm thấy trong thư viện toán học


Cú pháp của phương thức a = 10.5 b = 3.1 print(math.remainder(a,b)) m = abs(math.remainder(a,b)) n = 0.5*abs(b) print(m <= n)2

Sau đây là cú pháp của phương thức còn lại

math.remainder(number_one, number_two)

Ở đây

a = 10.5
b = 3.1
print(math.remainder(a,b))

m = abs(math.remainder(a,b))
n = 0.5*abs(b)
print(m <= n)
3 đề cập đến số chia và
a = 10.5
b = 3.1
print(math.remainder(a,b))

m = abs(math.remainder(a,b))
n = 0.5*abs(b)
print(m <= n)
4 đề cập đến cổ tức

Đầu vào

Phương thức còn lại có 2 đầu vào (chúng có thể là kiểu số nguyên hoặc kiểu float)

đầu ra

Nó trả về phần còn lại của phép chia khi số đầu tiên được chia cho số thứ hai. Kiểu trả về là một giá trị dấu phẩy động, có nghĩa là nó cũng có thể là một phân số

Khi cả tham số thứ nhất và thứ hai đều hữu hạn và khác 0, hàm này sẽ tính toán đầu ra là

a = 10.5
b = 3.1
print(math.remainder(a,b))

m = abs(math.remainder(a,b))
n = 0.5*abs(b)
print(m <= n)
5 thay vì chỉ chia hai số và lấy phần còn lại làm đầu ra. Ở đây
a = 10.5
b = 3.1
print(math.remainder(a,b))

m = abs(math.remainder(a,b))
n = 0.5*abs(b)
print(m <= n)
6 là giá trị nguyên gần nhất với thương số thực của
a = 10.5
b = 3.1
print(math.remainder(a,b))

m = abs(math.remainder(a,b))
n = 0.5*abs(b)
print(m <= n)
7


Thời gian cho một ví dụ

Giả sử số thứ nhất là 17 và số thứ hai là 6

Người ta mong đợi đầu ra là 5. Nhưng thật ngạc nhiên, với hàm số dư, đầu ra là -1

Điều này là do 17 có thể chia 6 hai lần để lại số dư là 5, nhưng thay vì 17, nếu số bị chia là 18, nó có thể chia hết cho 6. Điều này có nghĩa là 17 gần với 18 hơn nhiều so với 12 (6 nhân với 2). Do đó, đầu ra sẽ là -1 chỉ ra rằng số bị chia chỉ cách số bị chia hết cho số chia một số

Ngoài ra, hàm

a = 10.5
b = 3.1
print(math.remainder(a,b))

m = abs(math.remainder(a,b))
n = 0.5*abs(b)
print(m <= n)
8 luôn thỏa mãn điều kiện dưới đây

abs(nhắc nhở) <= 0. 5 * cơ bụng (số_hai)

Hãy lấy một ví dụ và xem,

a = 10.5
b = 3.1
print(math.remainder(a,b))

m = abs(math.remainder(a,b))
n = 0.5*abs(b)
print(m <= n)

đầu ra

a = 10.5
b = 3.1
print(math.remainder(a,b))

m = abs(math.remainder(a,b))
n = 0.5*abs(b)
print(m <= n)
0

Hãy lấy một ví dụ để xem hoạt động của hàm

a = 10.5
b = 3.1
print(math.remainder(a,b))

m = abs(math.remainder(a,b))
n = 0.5*abs(b)
print(m <= n)
9

a = 10.5
b = 3.1
print(math.remainder(a,b))

m = abs(math.remainder(a,b))
n = 0.5*abs(b)
print(m <= n)
2

đầu ra

a = 10.5
b = 3.1
print(math.remainder(a,b))

m = abs(math.remainder(a,b))
n = 0.5*abs(b)
print(m <= n)
3

Các trường hợp đặc biệt với phương thức a = 10.5 b = 3.1 print(math.remainder(a,b)) m = abs(math.remainder(a,b)) n = 0.5*abs(b) print(m <= n)9

#1. Khi tham số thứ hai (số chia) là một giá trị vô hạn (trong thư viện toán học, nó có thể được truy cập bằng cách sử dụng

a = 10.5
b = 3.1
print(math.remainder(a,b))

m = abs(math.remainder(a,b))
n = 0.5*abs(b)
print(m <= n)
01) và tham số đầu tiên là bất kỳ số hữu hạn, khác 0 nào, nó sẽ trả về tham số đầu tiên dưới dạng đầu ra

a = 10.5
b = 3.1
print(math.remainder(a,b))

m = abs(math.remainder(a,b))
n = 0.5*abs(b)
print(m <= n)
6

đầu ra

a = 10.5
b = 3.1
print(math.remainder(a,b))

m = abs(math.remainder(a,b))
n = 0.5*abs(b)
print(m <= n)
7

#2. Khi tham số thứ hai là 0 và tham số đầu tiên là bất kỳ số hữu hạn, khác 0 nào, nó sẽ tăng

a = 10.5
b = 3.1
print(math.remainder(a,b))

m = abs(math.remainder(a,b))
n = 0.5*abs(b)
print(m <= n)
02

a = 10.5
b = 3.1
print(math.remainder(a,b))

m = abs(math.remainder(a,b))
n = 0.5*abs(b)
print(m <= n)
9

đầu ra

math.remainder(number_one, number_two)
0

#3. Tương tự, khi tham số đầu tiên là vô hạn và tham số thứ hai là một giá trị hữu hạn, khác không, nó sẽ tăng một giá trị

a = 10.5
b = 3.1
print(math.remainder(a,b))

m = abs(math.remainder(a,b))
n = 0.5*abs(b)
print(m <= n)
02

math.remainder(number_one, number_two)
2

đầu ra

math.remainder(number_one, number_two)
0

Trên các nền tảng có giá trị dấu phẩy động nhị phân, kết quả của phép toán còn lại luôn được hiển thị chính xác, không xảy ra lỗi làm tròn


Phần kết luận

Đây là phần giới thiệu mới trong Python 3. 7 và khá khác so với toán tử mô đun truyền thống được sử dụng để tìm phần dư cho đến nay. Chức năng này mở rộng phạm vi hoạt động của phần còn lại