Hướng dẫn how do you find the modulus of a float number in python? - làm thế nào để bạn tìm thấy mô-đun của một số thực trong python?

Trên thực tế, không đúng là

>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
2 là
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
3. Bạn có thể kiểm tra điều này rất dễ dàng:

Show
>>> print(3.5 % 0.1)
0.1
>>> print(3.5 % 0.1 == 0.1)
False

Trong thực tế, trên hầu hết các hệ thống,

>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
2 là
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
5. Nhưng, trên một số phiên bản của Python,
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
6 là
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
3:

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'

Bây giờ, có lẽ bạn đang tự hỏi tại sao

>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
2 là
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
5 thay vì
>>> import math
>>> math.fmod(12.5, 5.5)
1.5

>>> math.fmod(8.5, 2.5)
1.0
0. Đó là vì các vấn đề làm tròn điểm nổi thông thường. Nếu bạn chưa đọc những gì mọi nhà khoa học máy tính nên biết về số học dấu phẩy động, bạn nên hoặc ít nhất là bản tóm tắt wikipedia ngắn gọn về vấn đề cụ thể này.

Cũng lưu ý rằng

>>> import math
>>> math.fmod(12.5, 5.5)
1.5

>>> math.fmod(8.5, 2.5)
1.0
1 không phải là
>>> import math
>>> math.fmod(12.5, 5.5)
1.5

>>> math.fmod(8.5, 2.5)
1.0
2, đó là
>>> import math
>>> math.fmod(12.5, 5.5)
1.5

>>> math.fmod(8.5, 2.5)
1.0
3. Vì vậy,
>>> import math
>>> math.fmod(12.5, 5.5)
1.5

>>> math.fmod(8.5, 2.5)
1.0
4 là
>>> import math
>>> math.fmod(12.5, 5.5)
1.5

>>> math.fmod(8.5, 2.5)
1.0
5, thậm chí không gần với
>>> import math
>>> math.fmod(12.5, 5.5)
1.5

>>> math.fmod(8.5, 2.5)
1.0
6. Đây là khá nhiều cơ bản đối với định nghĩa của mô đun, và nó sai ở Python, và chỉ là mọi ngôn ngữ lập trình khác.

Nhưng Python 3 đến giải cứu ở đó. Hầu hết những người biết về

>>> import math
>>> math.fmod(12.5, 5.5)
1.5

>>> math.fmod(8.5, 2.5)
1.0
7 đều biết rằng đó là cách bạn thực hiện "phân chia số nguyên" giữa các số nguyên, nhưng không nhận ra rằng đó là cách bạn thực hiện phân chia tương thích mô đun giữa bất kỳ loại nào.
>>> import math
>>> math.fmod(12.5, 5.5)
1.5

>>> math.fmod(8.5, 2.5)
1.0
8 là
>>> import math
>>> math.fmod(12.5, 5.5)
1.5

>>> math.fmod(8.5, 2.5)
1.0
9, vì vậy
>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
0 là (ít nhất là trong một lỗi làm tròn nhỏ)
>>> import math
>>> math.fmod(12.5, 5.5)
1.5

>>> math.fmod(8.5, 2.5)
1.0
6. Điều này đã được đặt lại thành 2.x, vì vậy (tùy thuộc vào phiên bản và nền tảng chính xác của bạn), bạn có thể dựa vào điều này. Và, nếu không, bạn có thể sử dụng
>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
2, trả về (trong lỗi làm tròn)
>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
3 tất cả các cách trở lại vào thời gian của thời gian. Tất nhiên bạn vẫn mong đợi điều này là
>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
4, không phải
>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
5, nhưng bạn không thể có điều đó vì lỗi làm tròn.

Nếu bạn đang tìm kiếm một bản sửa lỗi nhanh, hãy xem xét sử dụng loại

>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
6:

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')

Đây không phải là một loại thuốc chữa bách bệnh ma thuật - ví dụ, bạn vẫn phải đối phó với lỗi làm tròn bất cứ khi nào giá trị chính xác của một hoạt động không thể đại diện một cách hữu hạn trong cơ sở 10 - nhưng các lỗi làm tròn phù hợp tốt hơn với các trường hợp trực giác của con người mong đợi có vấn đề. . thời gian. Chỉ là nó không hoàn hảo, bởi vì điều đó là không thể.) Nhưng khi bạn biết trước rằng các số của bạn đều có thể thể hiện chính xác trong cơ sở 10 và chúng không cần nhiều chữ số hơn so với độ chính xác mà bạn đã cấu hình, nó sẽ làm việc.

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem nó cùng với hướng dẫn bằng văn bản để làm sâu sắc thêm sự hiểu biết của bạn: Python Modulo: Sử dụng toán tử % This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Python Modulo: Using the % Operator

Làm thế nào để bạn tìm thấy modulo của một chiếc phao?modulo operator (

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
00), which returns the remainder of dividing two numbers.

Các mô đun về cơ bản là tìm phần còn lại. Đối với điều này, chúng ta có thể sử dụng hàm phần còn lại () trong hàm C. phần còn lại () được sử dụng để tính toán phần còn lại điểm nổi của tử số/mẫu số.

  • Làm thế nào để bạn tìm thấy mô đun của một số trong Python?modulo works in mathematics
  • Biểu tượng % trong Python được gọi là toán tử modulo. Nó trả về phần còn lại của việc chia toán hạng tay trái cho toán hạng bên phải. Nó được sử dụng để có được phần còn lại của một vấn đề phân chia.numeric types
  • Bạn có thể sử dụng mô đun với phao python không?modulo operation
  • Câu trả lời. Có, toán tử modulo Python sẽ hoạt động với số điểm nổi.
    >>> 3.5 % 0.1
    0.099999999999999811
    >>> repr(3.5 % 0.1)
    '0.099999999999999811'
    >>> str(3.5 % 0.1)
    '0.1'
    
    01
    in your classes to use them with the modulo operator
  • Toán tử mô đun có được sử dụng trong phao không?real-world problems

Người vận hành % không thể được sử dụng với số điểm nổi trong C & C ++.

Python hỗ trợ một loạt các toán tử số học mà bạn có thể sử dụng khi làm việc với các số trong mã của mình. Một trong những toán tử này là toán tử modulo (>>> 3.5 % 0.1 0.099999999999999811 >>> repr(3.5 % 0.1) '0.099999999999999811' >>> str(3.5 % 0.1) '0.1' 00), trả về phần còn lại của việc chia hai số.

Trong hướng dẫn này, bạn sẽ học:modulo comes from a branch of mathematics called modular arithmetic. Modular arithmetic deals with integer arithmetic on a circular number line that has a fixed set of numbers. All arithmetic operations performed on this number line will wrap around when they reach a certain number called the modulus.

Cách thức hoạt động của Modulo trong toán học

Cách sử dụng toán tử modulo Python với các loại số khác nhau

Cách Python tính toán kết quả của hoạt động modulo

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5

Cách ghi đè

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
01 trong các lớp của bạn để sử dụng chúng với toán tử modulo

Bây giờ, nếu bạn nghĩ về nó,

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
05 và
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
04 tương đương trong bối cảnh
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
06. Nếu bạn nhìn vào bàn tay giờ lúc 5:00 và 17:00, nó sẽ ở cùng một vị trí. Số học mô -đun có một phương trình để mô tả mối quan hệ này:

Phương trình này đọc được

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
10 và
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
11 là modulo đồng dạng
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
12. Điều này có nghĩa là
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
10 và
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
11 tương đương trong
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
15 vì chúng có cùng phần còn lại khi chia cho
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
12. Trong phương trình trên,
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
12 là mô đun cho cả
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
10 và
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
11. Sử dụng các giá trị
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
05 và
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
04 từ trước, phương trình sẽ trông như thế này:modulus for both
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
10 and
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
11. Using the values
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
05 and
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
04 from before, the equation would look like this:

Điều này đọc được ____ ____105 và

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
04 là modulo đồng dạng
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
24.
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
05 và
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
04 có cùng phần còn lại,
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
04, khi chia cho
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
24. Vì vậy, trong
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
06, các số
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
05 và
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
04 là tương đương.

Bạn có thể xác nhận điều này bằng cách sử dụng bộ phận:

17 / 12 = 1 R 5
5 / 12 = 0 R 5

Cả hai hoạt động đều có cùng phần còn lại,

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
04, vì vậy chúng có thể tương đương với modulo
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
24.

Bây giờ, điều này có vẻ như rất nhiều toán học cho một toán tử Python, nhưng việc có kiến ​​thức này sẽ chuẩn bị cho bạn sử dụng toán tử modulo trong các ví dụ sau trong hướng dẫn này. Trong phần tiếp theo, bạn sẽ xem xét những điều cơ bản của việc sử dụng toán tử modulo Python với các loại số

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
34 và
>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
8.

Nhà điều hành Modulo Python

Toán tử modulo, giống như các toán tử số học khác, có thể được sử dụng với các loại số

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
34 và
>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
8. Như bạn sẽ thấy sau này, nó cũng có thể được sử dụng với các loại khác như
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
38,
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
39 và các lớp học của riêng bạn.

Toán tử modulo với >>> 3.5 % 0.1 0.099999999999999811 >>> repr(3.5 % 0.1) '0.099999999999999811' >>> str(3.5 % 0.1) '0.1' 34

Hầu hết thời gian bạn sẽ sử dụng toán tử modulo với số nguyên. Toán tử modulo, khi được sử dụng với hai số nguyên dương, sẽ trả về phần còn lại của bộ phận Euclide tiêu chuẩn:

>>>

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10

Hãy cẩn thận! Giống như với toán tử phân chia (

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
41), Python sẽ trả lại
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
42 nếu bạn cố gắng sử dụng toán tử modulo với ước số
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
43:

>>>

>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero

Hãy cẩn thận! Giống như với toán tử phân chia (

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
41), Python sẽ trả lại
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
42 nếu bạn cố gắng sử dụng toán tử modulo với ước số
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
43:

Tiếp theo, bạn sẽ xem xét bằng cách sử dụng toán tử modulo với >>> 13.3 % 1.1 0.09999999999999964 >>> import math >>> math.fmod(13.3, 1.1) 0.09999999999999964 8.

Toán tử modulo với

>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
8

>>>

>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0

Hãy cẩn thận! Giống như với toán tử phân chia (

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
41), Python sẽ trả lại
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
42 nếu bạn cố gắng sử dụng toán tử modulo với ước số
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
43:

>>>

>>> import math
>>> math.fmod(12.5, 5.5)
1.5

>>> math.fmod(8.5, 2.5)
1.0

Hãy cẩn thận! Giống như với toán tử phân chia (

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
41), Python sẽ trả lại
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
42 nếu bạn cố gắng sử dụng toán tử modulo với ước số
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
43:

Tiếp theo, bạn sẽ xem xét bằng cách sử dụng toán tử modulo với

>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
8.

>>>

>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964

Hãy cẩn thận! Giống như với toán tử phân chia (

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
41), Python sẽ trả lại
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
42 nếu bạn cố gắng sử dụng toán tử modulo với ước số
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
43:

Tiếp theo, bạn sẽ xem xét bằng cách sử dụng toán tử modulo với >>> 13.3 % 1.1 0.09999999999999964 >>> import math >>> math.fmod(13.3, 1.1) 0.09999999999999964 8.

Toán tử modulo với

>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
8

Tương tự như

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
34, toán tử modulo được sử dụng với
>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
8 sẽ trả về phần còn lại của bộ phận, nhưng như một giá trị
>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
8:dividend (the number being divided) or the sign of the divisor (the number by which the dividend is divided). Different programming languages handle this differently.

Một giải pháp thay thế cho việc sử dụng

>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
8 với toán tử modulo là sử dụng
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
38 để thực hiện các hoạt động modulo trên các giá trị
>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
8:

Các tài liệu Python chính thức đề xuất sử dụng

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
38 so với toán tử modulo Python khi làm việc với các giá trị
>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
8 vì cách
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
38 tính toán kết quả của hoạt động modulo. Nếu bạn sử dụng một toán hạng âm, thì bạn có thể thấy các kết quả khác nhau giữa
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
55 và
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
56. Bạn có thể khám phá bằng cách sử dụng toán tử modulo với các toán hạng tiêu cực chi tiết hơn trong phần tiếp theo.

Cũng giống như các toán tử số học khác, toán tử modulo và

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
38 có thể gặp phải các vấn đề làm tròn và chính xác khi xử lý số học dấu phẩy động:

Nếu duy trì độ chính xác điểm nổi là quan trọng đối với ứng dụng của bạn, thì bạn có thể sử dụng toán tử modulo với

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
39. Bạn sẽ nhìn vào điều này sau trong hướng dẫn này.

Toán tử modulo có toán hạng âm

  1. Tất cả các hoạt động modulo mà bạn đã thấy cho đến thời điểm này đã sử dụng hai toán hạng tích cực và trả về kết quả dự đoán. Khi một toán hạng tiêu cực được giới thiệu, mọi thứ trở nên phức tạp hơn. is the remainder.
  2. Hóa ra, cách máy tính xác định kết quả của hoạt động modulo với toán hạng âm để lại sự mơ hồ về việc liệu phần còn lại có nên lấy dấu cổ tức (số được chia) hoặc dấu hiệu của ước số (số mà cổ tức được chia). Các ngôn ngữ lập trình khác nhau xử lý điều này khác nhau. is the dividend.
  3. >>> 3.5 % 0.1
    0.099999999999999811
    >>> repr(3.5 % 0.1)
    '0.099999999999999811'
    >>> str(3.5 % 0.1)
    '0.1'
    
    12 là ước số.
    is the divisor.

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
68 Trong phương trình này có nghĩa là nó sử dụng phân chia bị cắt ngắn, sẽ luôn làm tròn một số âm về 0. Để làm rõ hơn, hãy xem các bước của hoạt động modulo bên dưới sử dụng
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
60 làm cổ tức và
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
62 làm ước số:truncated division, which will always round a negative number toward zero. For more clarification, see the steps of the modulo operation below using
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
60 as the dividend and
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
62 as the divisor:

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
0

Ở đây bạn có thể thấy làm thế nào một ngôn ngữ như JavaScript có được phần còn lại

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
59. Python và các ngôn ngữ khác trong đó phần còn lại lấy dấu hiệu của ước số sử dụng phương trình sau:

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
72 Trong phương trình này có nghĩa là nó sử dụng phân chia sàn. Với số lượng tích cực, phân chia sàn sẽ trả về kết quả tương tự như bộ phận bị cắt ngắn. Nhưng với số âm, phân chia sàn sẽ làm tròn kết quả, cách xa số không:floor division. With positive numbers, floor division will return the same result as truncated division. But with a negative number, floor division will round the result down, away from zero:

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
1

Ở đây bạn có thể thấy rằng kết quả là

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
61.

Bây giờ bạn đã hiểu sự khác biệt trong phần còn lại đến từ đâu, bạn có thể tự hỏi tại sao điều này quan trọng nếu bạn chỉ sử dụng Python. Vâng, hóa ra, không phải tất cả các hoạt động modulo trong Python đều giống nhau. Trong khi modulo được sử dụng với các loại

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
34 và
>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
8 sẽ lấy dấu hiệu của ước số, các loại khác sẽ không.

Bạn có thể thấy một ví dụ về điều này khi bạn so sánh kết quả của

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
76 và
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
77:

>>>

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
2

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
38 có dấu hiệu của cổ tức bằng cách sử dụng bộ phận bị cắt cụt, trong khi
>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
8 sử dụng dấu hiệu của ước số. Sau đó trong hướng dẫn này, bạn sẽ thấy một loại Python khác sử dụng dấu hiệu của cổ tức,
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
39.

Nhà điều hành Modulo và >>> 3.5 % 0.1 0.099999999999999811 >>> repr(3.5 % 0.1) '0.099999999999999811' >>> str(3.5 % 0.1) '0.1' 81

Python có chức năng tích hợp

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
81, sử dụng nội bộ toán tử modulo.
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
81 lấy hai tham số và trả về một tuple chứa kết quả phân chia sàn và modulo bằng các tham số được cung cấp.

Dưới đây là một ví dụ về việc sử dụng

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
81 với
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
85 và
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
04:

>>>

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
3

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
38 có dấu hiệu của cổ tức bằng cách sử dụng bộ phận bị cắt cụt, trong khi
>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
8 sử dụng dấu hiệu của ước số. Sau đó trong hướng dẫn này, bạn sẽ thấy một loại Python khác sử dụng dấu hiệu của cổ tức,
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
39.

Nhà điều hành Modulo và

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
81

>>>

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
4

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
38 có dấu hiệu của cổ tức bằng cách sử dụng bộ phận bị cắt cụt, trong khi
>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
8 sử dụng dấu hiệu của ước số. Sau đó trong hướng dẫn này, bạn sẽ thấy một loại Python khác sử dụng dấu hiệu của cổ tức,
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
39.

Nhà điều hành Modulo và >>> 3.5 % 0.1 0.099999999999999811 >>> repr(3.5 % 0.1) '0.099999999999999811' >>> str(3.5 % 0.1) '0.1' 81

Python có chức năng tích hợp

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
81, sử dụng nội bộ toán tử modulo.
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
81 lấy hai tham số và trả về một tuple chứa kết quả phân chia sàn và modulo bằng các tham số được cung cấp.

Dưới đây là một ví dụ về việc sử dụng

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
81 với
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
85 và
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
04:

>>>

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
5

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
38 có dấu hiệu của cổ tức bằng cách sử dụng bộ phận bị cắt cụt, trong khi
>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
8 sử dụng dấu hiệu của ước số. Sau đó trong hướng dẫn này, bạn sẽ thấy một loại Python khác sử dụng dấu hiệu của cổ tức,
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
39.

  1. Nhà điều hành Modulo và
    >>> 3.5 % 0.1
    0.099999999999999811
    >>> repr(3.5 % 0.1)
    '0.099999999999999811'
    >>> str(3.5 % 0.1)
    '0.1'
    
    81
    is evaluated, resulting in
    >>> from decimal import Decimal
    >>> Decimal('3.5') % Decimal('0.1')
    Decimal('0.0')
    >>> print(Decimal('3.5') % Decimal('0.1'))
    0.0
    >>> (Decimal(7)/2) % (Decimal(1)/10)
    Decimal('0.0')
    
    01.
  2. Python có chức năng tích hợp
    >>> 3.5 % 0.1
    0.099999999999999811
    >>> repr(3.5 % 0.1)
    '0.099999999999999811'
    >>> str(3.5 % 0.1)
    '0.1'
    
    81, sử dụng nội bộ toán tử modulo.
    >>> 3.5 % 0.1
    0.099999999999999811
    >>> repr(3.5 % 0.1)
    '0.099999999999999811'
    >>> str(3.5 % 0.1)
    '0.1'
    
    81 lấy hai tham số và trả về một tuple chứa kết quả phân chia sàn và modulo bằng các tham số được cung cấp.
    is evaluated, resulting in
    >>> from decimal import Decimal
    >>> Decimal('3.5') % Decimal('0.1')
    Decimal('0.0')
    >>> print(Decimal('3.5') % Decimal('0.1'))
    0.0
    >>> (Decimal(7)/2) % (Decimal(1)/10)
    Decimal('0.0')
    
    03.
  3. Dưới đây là một ví dụ về việc sử dụng
    >>> 3.5 % 0.1
    0.099999999999999811
    >>> repr(3.5 % 0.1)
    '0.099999999999999811'
    >>> str(3.5 % 0.1)
    '0.1'
    
    81 với
    >>> 3.5 % 0.1
    0.099999999999999811
    >>> repr(3.5 % 0.1)
    '0.099999999999999811'
    >>> str(3.5 % 0.1)
    '0.1'
    
    85 và
    >>> 3.5 % 0.1
    0.099999999999999811
    >>> repr(3.5 % 0.1)
    '0.099999999999999811'
    >>> str(3.5 % 0.1)
    '0.1'
    
    04:
    is evaluated, resulting in
    >>> from decimal import Decimal
    >>> Decimal('3.5') % Decimal('0.1')
    Decimal('0.0')
    >>> print(Decimal('3.5') % Decimal('0.1'))
    0.0
    >>> (Decimal(7)/2) % (Decimal(1)/10)
    Decimal('0.0')
    
    05.

Bạn có thể thấy rằng

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
87 trả về tuple
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
88.
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
89 là kết quả của bộ phận sàn
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
85 và
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
04.
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
59 là kết quả của
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
85 modulo
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
04.

>>>

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
6

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
38 có dấu hiệu của cổ tức bằng cách sử dụng bộ phận bị cắt cụt, trong khi
>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
8 sử dụng dấu hiệu của ước số. Sau đó trong hướng dẫn này, bạn sẽ thấy một loại Python khác sử dụng dấu hiệu của cổ tức,
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
39.

Nhà điều hành Modulo và >>> 3.5 % 0.1 0.099999999999999811 >>> repr(3.5 % 0.1) '0.099999999999999811' >>> str(3.5 % 0.1) '0.1' 81

Python có chức năng tích hợp

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
81, sử dụng nội bộ toán tử modulo.
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
81 lấy hai tham số và trả về một tuple chứa kết quả phân chia sàn và modulo bằng các tham số được cung cấp.

Dưới đây là một ví dụ về việc sử dụng >>> 3.5 % 0.1 0.099999999999999811 >>> repr(3.5 % 0.1) '0.099999999999999811' >>> str(3.5 % 0.1) '0.1' 81 với >>> 3.5 % 0.1 0.099999999999999811 >>> repr(3.5 % 0.1) '0.099999999999999811' >>> str(3.5 % 0.1) '0.1' 85 và >>> 3.5 % 0.1 0.099999999999999811 >>> repr(3.5 % 0.1) '0.099999999999999811' >>> str(3.5 % 0.1) '0.1' 04:

Bạn có thể thấy rằng

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
87 trả về tuple
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
88.
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
89 là kết quả của bộ phận sàn
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
85 và
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
04.
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
59 là kết quả của
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
85 modulo
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
04.

Dưới đây là một ví dụ trong đó tham số thứ hai là số âm. Như đã thảo luận trong phần trước, khi toán tử modulo được sử dụng với

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
34, phần còn lại sẽ lấy dấu hiệu của ước số:

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
7

Bây giờ, bạn đã có cơ hội nhìn thấy toán tử modulo được sử dụng trong một số kịch bản, điều quan trọng là phải xem Python xác định mức độ ưu tiên của toán tử modulo khi được sử dụng với các toán tử số học khác.

Nhà điều hành Modulo ưu tiên

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
8

Hàm này sẽ trả về

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
20 nếu
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
14 không bằng
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
43, có nghĩa là có một phần còn lại chứng minh
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
13 là một số lẻ. Bây giờ, bạn có thể tự hỏi liệu bạn có thể sử dụng chức năng sau để xác định xem
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
13 có phải là một số lẻ không:

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
9

Câu trả lời cho câu hỏi này là có và không. Về mặt kỹ thuật, chức năng này sẽ hoạt động với cách Python tính toán modulo với số nguyên. Điều đó nói rằng, bạn nên tránh so sánh kết quả của hoạt động modulo với

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
09 vì không phải tất cả các hoạt động modulo trong Python sẽ trả về cùng một phần còn lại.

Bạn có thể thấy tại sao trong các ví dụ sau:

>>>

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
0

Trong ví dụ thứ hai, phần còn lại lấy dấu hiệu của ước số âm và trả về

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
61. Trong trường hợp này, séc Boolean
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
30 sẽ trả lại
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
21.

Tuy nhiên, nếu bạn so sánh hoạt động của modulo với

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
43, thì nó không quan trọng thì toán hạng nào là âm. Kết quả sẽ luôn là
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
20 khi nó có một số chẵn:

>>>

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
1

Trong ví dụ thứ hai, phần còn lại lấy dấu hiệu của ước số âm và trả về

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
61. Trong trường hợp này, séc Boolean
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
30 sẽ trả lại
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
21.

Tuy nhiên, nếu bạn so sánh hoạt động của modulo với

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
43, thì nó không quan trọng thì toán hạng nào là âm. Kết quả sẽ luôn là
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
20 khi nó có một số chẵn:

Nếu bạn gắn bó với việc so sánh thao tác modulo Python với >>> 3.5 % 0.1 0.099999999999999811 >>> repr(3.5 % 0.1) '0.099999999999999811' >>> str(3.5 % 0.1) '0.1' 43, thì bạn không nên có bất kỳ vấn đề nào khi kiểm tra các số chẵn và số lẻ hoặc bất kỳ bội số nào khác của một số trong mã của bạn.

Trong phần tiếp theo, bạn sẽ xem cách bạn có thể sử dụng toán tử modulo với các vòng lặp để kiểm soát luồng chương trình của bạn.

Cách chạy mã theo các khoảng thời gian cụ thể trong một vòng lặp

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
2

Với toán tử modulo Python, bạn có thể chạy mã theo các khoảng thời gian cụ thể bên trong một vòng lặp. Điều này được thực hiện bằng cách thực hiện hoạt động modulo với chỉ số hiện tại của vòng lặp và mô đun. Số mô đun xác định tần suất mã cụ thể khoảng thời gian sẽ chạy trong vòng lặp.

Đây là một ví dụ:

>>>

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
3

Trong ví dụ thứ hai, phần còn lại lấy dấu hiệu của ước số âm và trả về

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
61. Trong trường hợp này, séc Boolean
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
30 sẽ trả lại
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
21.

>>>

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
4

Trong ví dụ thứ hai, phần còn lại lấy dấu hiệu của ước số âm và trả về

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
61. Trong trường hợp này, séc Boolean
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
30 sẽ trả lại
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
21.

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
5

Tuy nhiên, nếu bạn so sánh hoạt động của modulo với

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
43, thì nó không quan trọng thì toán hạng nào là âm. Kết quả sẽ luôn là
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
20 khi nó có một số chẵn:

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
6

Nếu bạn gắn bó với việc so sánh thao tác modulo Python với

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
43, thì bạn không nên có bất kỳ vấn đề nào khi kiểm tra các số chẵn và số lẻ hoặc bất kỳ bội số nào khác của một số trong mã của bạn.

  • Trong phần tiếp theo, bạn sẽ xem cách bạn có thể sử dụng toán tử modulo với các vòng lặp để kiểm soát luồng chương trình của bạn.
  • Cách chạy mã theo các khoảng thời gian cụ thể trong một vòng lặp
  • Với toán tử modulo Python, bạn có thể chạy mã theo các khoảng thời gian cụ thể bên trong một vòng lặp. Điều này được thực hiện bằng cách thực hiện hoạt động modulo với chỉ số hiện tại của vòng lặp và mô đun. Số mô đun xác định tần suất mã cụ thể khoảng thời gian sẽ chạy trong vòng lặp.

Đây là một ví dụ:

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
7

Mã này xác định

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
35, có hai tham số.
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
36 là danh sách các tên nên được chia thành các hàng.
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
37 Đặt một mô đun cho hoạt động, xác định hiệu quả số lượng tên trong mỗi hàng.
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
35 sẽ lặp qua
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
36 và bắt đầu một hàng mới sau khi nó đạt giá trị
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
37.

Trước khi phá vỡ chức năng chi tiết hơn, hãy xem nó trong hành động:

Như bạn có thể thấy, danh sách các tên đã được chia thành ba hàng, với tối đa ba tên trong mỗi hàng. >>> from decimal import Decimal >>> Decimal('3.5') % Decimal('0.1') Decimal('0.0') >>> print(Decimal('3.5') % Decimal('0.1')) 0.0 >>> (Decimal(7)/2) % (Decimal(1)/10) Decimal('0.0') 37 Mặc định là >>> from decimal import Decimal >>> Decimal('3.5') % Decimal('0.1') Decimal('0.0') >>> print(Decimal('3.5') % Decimal('0.1')) 0.0 >>> (Decimal(7)/2) % (Decimal(1)/10) Decimal('0.0') 42, nhưng bạn có thể chỉ định bất kỳ số nào:

Bây giờ bạn đã thấy mã hoạt động, bạn có thể phá vỡ những gì nó làm. Đầu tiên, nó sử dụng

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
43 để lặp lại
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
36, gán mục hiện tại trong danh sách cho
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
45 và giá trị đếm cho
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
46. Bạn có thể thấy rằng đối số
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
47 tùy chọn cho
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
43 được đặt thành
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
09. Điều này có nghĩa là số lượng
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
46 sẽ bắt đầu tại
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
09 thay vì
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
43:
describes a type of iteration that will reset once it gets to a certain point. Generally, this type of iteration is used to restrict the index of the iteration to a certain range.

Tiếp theo, bên trong vòng lặp, hàm gọi

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
53 để xuất
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
45 vào hàng hiện tại. Tham số
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
55 cho
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
53 là một chuỗi trống (
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
57) do đó, nó đã giành được đầu ra một dòng mới ở cuối chuỗi. Một chuỗi F được truyền đến
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
53, sử dụng cú pháp định dạng đầu ra chuỗi mà Python cung cấp:

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
8

Không cần đi vào quá nhiều chi tiết, cú pháp

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
59 bảo
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
53 làm như sau:

Hướng dẫn how do you find the modulus of a float number in python? - làm thế nào để bạn tìm thấy mô-đun của một số thực trong python?

Các phần quan trọng của mã này được tô sáng dưới đây:

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
9

Mỗi lần thông qua vòng lặp,

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
70 được cập nhật dựa trên kết quả của
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
73. Giá trị
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
70 mới này được sử dụng để tăng
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
75 với mỗi lần lặp. Khi
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
70 đạt
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
04,
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
73 sẽ bằng
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
43 và
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
70 sẽ đặt lại về
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
43.

Bạn có thể thấy các bước của lần lặp dưới đây để làm rõ hơn:

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
0

Khi

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
70 được đặt lại về
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
43,
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
84 thay đổi thành màu ngẫu nhiên mới như được thấy dưới đây:

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
1

Mã trong phần này sử dụng

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
85 làm mô đun, nhưng bạn có thể đặt nó thành bất kỳ số nào để điều chỉnh số lần vòng lặp sẽ lặp lại trước khi đặt lại giá trị
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
70.

Cách chuyển đổi các đơn vị

Trong phần này, bạn sẽ xem xét cách bạn có thể sử dụng toán tử modulo để chuyển đổi các đơn vị. Các ví dụ sau đây lấy các đơn vị nhỏ hơn và chuyển đổi chúng thành các đơn vị lớn hơn mà không cần sử dụng số thập phân. Toán tử modulo được sử dụng để xác định bất kỳ phần còn lại nào có thể tồn tại khi đơn vị nhỏ hơn không chia hết bởi đơn vị lớn hơn.

Trong ví dụ đầu tiên này, bạn sẽ chuyển đổi inch thành chân. Toán tử modulo được sử dụng để có được các inch còn lại mà don đều chia thành đôi chân. Nhà điều hành phân chia sàn (

>>> import math
>>> math.fmod(12.5, 5.5)
1.5

>>> math.fmod(8.5, 2.5)
1.0
7) được sử dụng để có được tổng số chân được làm tròn xuống:

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
2

Ở đây, một ví dụ về chức năng đang sử dụng:

>>>

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
3

Như bạn có thể thấy từ đầu ra,

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
88 trả về
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
85, đó là những inch còn lại mà weren chia đều thành chân. Kết quả của
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
90 là
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
85, đó là tổng số feet mà các inch được chia đều.

Bạn có thể đưa điều này thêm một chút trong ví dụ tiếp theo này.

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
92 mất một số nguyên,
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
93, đại diện cho một số phút và xuất ra khoảng thời gian tính theo ngày, giờ và phút:

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
4

Phá vỡ điều này, bạn có thể thấy rằng chức năng thực hiện như sau:

  1. Xác định tổng số ngày chia đều với
    >>> from decimal import Decimal
    >>> Decimal('3.5') % Decimal('0.1')
    Decimal('0.0')
    >>> print(Decimal('3.5') % Decimal('0.1'))
    0.0
    >>> (Decimal(7)/2) % (Decimal(1)/10)
    Decimal('0.0')
    
    94, trong đó
    >>> from decimal import Decimal
    >>> Decimal('3.5') % Decimal('0.1')
    Decimal('0.0')
    >>> print(Decimal('3.5') % Decimal('0.1'))
    0.0
    >>> (Decimal(7)/2) % (Decimal(1)/10)
    Decimal('0.0')
    
    95 là số phút trong một ngày
  2. Tính toán bất kỳ
    >>> from decimal import Decimal
    >>> Decimal('3.5') % Decimal('0.1')
    Decimal('0.0')
    >>> print(Decimal('3.5') % Decimal('0.1'))
    0.0
    >>> (Decimal(7)/2) % (Decimal(1)/10)
    Decimal('0.0')
    
    96 còn lại với
    >>> from decimal import Decimal
    >>> Decimal('3.5') % Decimal('0.1')
    Decimal('0.0')
    >>> print(Decimal('3.5') % Decimal('0.1'))
    0.0
    >>> (Decimal(7)/2) % (Decimal(1)/10)
    Decimal('0.0')
    
    97
  3. Sử dụng
    >>> from decimal import Decimal
    >>> Decimal('3.5') % Decimal('0.1')
    Decimal('0.0')
    >>> print(Decimal('3.5') % Decimal('0.1'))
    0.0
    >>> (Decimal(7)/2) % (Decimal(1)/10)
    Decimal('0.0')
    
    96 để có được
    >>> from decimal import Decimal
    >>> Decimal('3.5') % Decimal('0.1')
    Decimal('0.0')
    >>> print(Decimal('3.5') % Decimal('0.1'))
    0.0
    >>> (Decimal(7)/2) % (Decimal(1)/10)
    Decimal('0.0')
    
    99 chia đều và bất kỳ
    8 o'clock + 9 = 17 o'clock
    17 mod 12 = 5
    
    00 nào

Bạn có thể thấy cách nó hoạt động dưới đây:

>>>

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
5

Như bạn có thể thấy từ đầu ra,

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
88 trả về
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
85, đó là những inch còn lại mà weren chia đều thành chân. Kết quả của
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
90 là
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
85, đó là tổng số feet mà các inch được chia đều.

Bạn có thể đưa điều này thêm một chút trong ví dụ tiếp theo này.

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
92 mất một số nguyên,
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
93, đại diện cho một số phút và xuất ra khoảng thời gian tính theo ngày, giờ và phút:

Phá vỡ điều này, bạn có thể thấy rằng chức năng thực hiện như sau:

Xác định tổng số ngày chia đều với

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
94, trong đó
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
95 là số phút trong một ngàyprime number. A prime number is any number that contains only two factors,
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
09 and itself. Some examples of prime numbers are
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
59,
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
42,
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
04,
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
89,
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
06,
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
07,
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
08,
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
09, and
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
10.

Tính toán bất kỳ

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
96 còn lại với
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
97

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
6

Sử dụng

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
96 để có được
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
99 chia đều và bất kỳ
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
00 nào

Bạn có thể thấy cách nó hoạt động dưới đây:

>>>

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
7

Như bạn có thể thấy từ đầu ra,

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
88 trả về
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
85, đó là những inch còn lại mà weren chia đều thành chân. Kết quả của
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
90 là
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
85, đó là tổng số feet mà các inch được chia đều.

Bạn có thể đưa điều này thêm một chút trong ví dụ tiếp theo này.

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
92 mất một số nguyên,
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
93, đại diện cho một số phút và xuất ra khoảng thời gian tính theo ngày, giờ và phút:

Phá vỡ điều này, bạn có thể thấy rằng chức năng thực hiện như sau:

Xác định tổng số ngày chia đều với

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
94, trong đó
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
95 là số phút trong một ngày

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
9

Tính toán bất kỳ

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
96 còn lại với
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
97

Sử dụng

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
96 để có được
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
99 chia đều và bất kỳ
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
00 nào

Bạn có thể thấy cách nó hoạt động dưới đây:

17 / 12 = 1 R 5
5 / 12 = 0 R 5
0

Thay vì cố gắng xác định căn bậc hai của

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
13, hàm sử dụng vòng
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
37 để xem
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
38. Miễn là
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
38, vòng lặp đã đạt đến căn bậc hai của
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
13.

Bên trong vòng

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
37, toán tử modulo kiểm tra xem
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
13 có chia hết cho
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
70:

17 / 12 = 1 R 5
5 / 12 = 0 R 5
1

Nếu

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
13 chia đều cho
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
70, thì
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
70 là yếu tố của
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
13 và một bộ phận của các yếu tố được thêm vào danh sách
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
28.

Khi vòng lặp

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
37 hoàn tất, mã sẽ kiểm tra xem liệu có bất kỳ yếu tố bổ sung nào được tìm thấy không:

17 / 12 = 1 R 5
5 / 12 = 0 R 5
2

Nếu có nhiều hơn một tuple tồn tại trong danh sách

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
28, thì
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
13 có thể là một số nguyên tố. Đối với các số phi dự án, các yếu tố được in ra. Đối với các số nguyên tố, hàm in một thông báo cho biết
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
13 là số nguyên tố.

Cách thực hiện mật mã

Toán tử modulo Python có thể được sử dụng để tạo mật mã. Một mật mã là một loại thuật toán để thực hiện mã hóa và giải mã trên đầu vào, thường là văn bản. Trong phần này, bạn sẽ nhìn vào hai mật mã, mật mã Caesar và mật mã Vigenère.Caesar cipher and the Vigenère cipher.

Caesar Mật mã

Mật mã đầu tiên mà bạn sẽ nhìn vào là Mật mã Caesar, được đặt theo tên của Julius Caesar, người đã sử dụng nó để bí mật truyền đạt các tin nhắn. Nó có một mật mã thay thế sử dụng thay thế chữ cái để mã hóa một chuỗi văn bản.

Mật mã Caesar hoạt động bằng cách lấy một lá thư để được mã hóa và chuyển nó một số vị trí nhất định sang trái hoặc phải trong bảng chữ cái. Bất kỳ chữ cái nào ở vị trí đó được sử dụng làm ký tự được mã hóa. Giá trị thay đổi này được áp dụng cho tất cả các ký tự trong chuỗi.

Ví dụ: nếu sự thay đổi là

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
04, thì
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
54 sẽ chuyển năm chữ cái để trở thành
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
55,
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
56 sẽ trở thành
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
57, v.v. Dưới đây bạn có thể thấy quá trình mã hóa cho văn bản
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
58 với sự thay đổi
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
04:

Hướng dẫn how do you find the modulus of a float number in python? - làm thế nào để bạn tìm thấy mô-đun của một số thực trong python?

Mật mã kết quả là

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
60.

Giải mã mật mã được thực hiện bằng cách đảo ngược sự thay đổi. Cả hai quá trình mã hóa và giải mã đều có thể được mô tả với các biểu thức sau, trong đó

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
61 là chỉ số của ký tự trong bảng chữ cái:

17 / 12 = 1 R 5
5 / 12 = 0 R 5
3

Mật mã này sử dụng toán tử modulo để đảm bảo rằng, khi chuyển một chữ cái, chỉ mục sẽ quấn xung quanh nếu kết thúc của bảng chữ cái. Bây giờ bạn đã biết cách thức hoạt động của mật mã này, hãy xem một triển khai:

17 / 12 = 1 R 5
5 / 12 = 0 R 5
4

Mã này xác định một hàm gọi là

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
62, có hai tham số bắt buộc và một tham số tùy chọn:

  • 8 o'clock + 9 = 17 o'clock
    17 mod 12 = 5
    
    63 là văn bản được mã hóa hoặc giải mã.
    is the text to be encrypted or decrypted.
  • 8 o'clock + 9 = 17 o'clock
    17 mod 12 = 5
    
    64 là số lượng vị trí để thay đổi mỗi chữ cái.
    is the number of positions to shift each letter.
  • 8 o'clock + 9 = 17 o'clock
    17 mod 12 = 5
    
    65 là một boolean để thiết lập nếu
    8 o'clock + 9 = 17 o'clock
    17 mod 12 = 5
    
    63 nên được giải mã.
    is a Boolean to set if
    8 o'clock + 9 = 17 o'clock
    17 mod 12 = 5
    
    63 should be decrypted.

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
65 được bao gồm để có thể sử dụng một hàm duy nhất để xử lý cả mã hóa và giải mã. Việc triển khai này chỉ có thể xử lý các ký tự chữ cái, do đó, chức năng trước tiên kiểm tra rằng
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
63 là ký tự chữ cái trong mã hóa ASCII:

17 / 12 = 1 R 5
5 / 12 = 0 R 5
5

Hàm sau đó xác định ba biến để lưu trữ các ký tự

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
69 ASCII, các ký tự ____370 ASCII và kết quả mã hóa hoặc giải mã:

17 / 12 = 1 R 5
5 / 12 = 0 R 5
6

Tiếp theo, nếu hàm đang được sử dụng để giải mã

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
63, thì nó sẽ nhân
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
64 với
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
61 để làm cho nó thay đổi ngược:

17 / 12 = 1 R 5
5 / 12 = 0 R 5
7

Cuối cùng,

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
62 vòng lặp trên các ký tự riêng lẻ trong
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
63 và thực hiện các hành động sau đây cho mỗi
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
76:

  1. Kiểm tra xem
    8 o'clock + 9 = 17 o'clock
    17 mod 12 = 5
    
    76 là chữ thường hoặc chữ hoa.
  2. Nhận
    >>> from decimal import Decimal
    >>> Decimal('3.5') % Decimal('0.1')
    Decimal('0.0')
    >>> print(Decimal('3.5') % Decimal('0.1'))
    0.0
    >>> (Decimal(7)/2) % (Decimal(1)/10)
    Decimal('0.0')
    
    46 của
    8 o'clock + 9 = 17 o'clock
    17 mod 12 = 5
    
    76 trong danh sách
    8 o'clock + 9 = 17 o'clock
    17 mod 12 = 5
    
    69 hoặc
    8 o'clock + 9 = 17 o'clock
    17 mod 12 = 5
    
    70 ASCII.
  3. Thêm
    8 o'clock + 9 = 17 o'clock
    17 mod 12 = 5
    
    64 vào
    >>> from decimal import Decimal
    >>> Decimal('3.5') % Decimal('0.1')
    Decimal('0.0')
    >>> print(Decimal('3.5') % Decimal('0.1'))
    0.0
    >>> (Decimal(7)/2) % (Decimal(1)/10)
    Decimal('0.0')
    
    46 này để xác định chỉ số của ký tự mật mã để sử dụng.
  4. Sử dụng
    8 o'clock + 9 = 17 o'clock
    17 mod 12 = 5
    
    84 để đảm bảo rằng sự thay đổi sẽ kết thúc trở lại bắt đầu bảng chữ cái.
  5. Nối ký tự mật mã vào chuỗi
    8 o'clock + 9 = 17 o'clock
    17 mod 12 = 5
    
    85.

Sau khi vòng lặp kết thúc lặp lại giá trị

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
63,
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
85 được trả về:

17 / 12 = 1 R 5
5 / 12 = 0 R 5
8

Đây là mã đầy đủ một lần nữa:

17 / 12 = 1 R 5
5 / 12 = 0 R 5
4

Bây giờ hãy chạy mã trong Python REPLED bằng văn bản

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
88 với sự thay đổi
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
89:

>>>

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
0

Kết quả được mã hóa là

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
90. Sử dụng văn bản được mã hóa này, bạn có thể chạy giải mã để lấy văn bản gốc:

>>>

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
1

Kết quả được mã hóa là

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
90. Sử dụng văn bản được mã hóa này, bạn có thể chạy giải mã để lấy văn bản gốc:

Mật mã Caesar rất vui khi chơi xung quanh để giới thiệu về mật mã. Mặc dù mật mã Caesar hiếm khi được sử dụng một mình, nhưng nó là cơ sở cho các mật mã thay thế phức tạp hơn. Trong phần tiếp theo, bạn sẽ nhìn vào một trong những con cháu của Caesar Mật mã, mật mã Vigenère.

Vigenère mật mã

Bạn có thể thấy một ví dụ về quá trình mã hóa trong hình ảnh sau. Trong ví dụ này, văn bản đầu vào

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
58 được mã hóa bằng từ khóa
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
92:

Hướng dẫn how do you find the modulus of a float number in python? - làm thế nào để bạn tìm thấy mô-đun của một số thực trong python?

Đối với mỗi chữ cái của văn bản đầu vào,

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
58, một chữ cái từ từ khóa
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
92 được sử dụng để xác định cột mật mã Caesar nào nên được chọn. Nếu từ khóa ngắn hơn văn bản đầu vào, như trường hợp với
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
92, thì các chữ cái của từ khóa được lặp lại cho đến khi tất cả các chữ cái của văn bản đầu vào đã được mã hóa.

Dưới đây là một triển khai của mật mã Vigenère. Như bạn thấy, toán tử modulo được sử dụng hai lần trong hàm:

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
2

Bạn có thể nhận thấy rằng chữ ký cho

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
96 khá giống với
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
62 từ phần trước:

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
3

Sự khác biệt chính là, thay vì tham số

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
64,
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
96 có tham số
17 / 12 = 1 R 5
5 / 12 = 0 R 5
00, là từ khóa được sử dụng trong quá trình mã hóa và giải mã. Một điểm khác biệt khác là việc bổ sung
17 / 12 = 1 R 5
5 / 12 = 0 R 5
01. Dựa trên việc triển khai này,
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
96 chỉ có thể chấp nhận văn bản đầu vào là tất cả các chữ hoa.

Giống như

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
62,
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
96 lặp lại trên mỗi chữ cái của văn bản đầu vào để mã hóa hoặc giải mã nó:

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
4

Trong mã trên, bạn có thể thấy chức năng sử dụng đầu tiên của toán tử modulo:

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
5

Ở đây, giá trị

17 / 12 = 1 R 5
5 / 12 = 0 R 5
05 được xác định dựa trên một chỉ mục được trả về từ
17 / 12 = 1 R 5
5 / 12 = 0 R 5
06. Chỉ mục này được sử dụng để chọn một chữ cái từ chuỗi
17 / 12 = 1 R 5
5 / 12 = 0 R 5
00, chẳng hạn như
17 / 12 = 1 R 5
5 / 12 = 0 R 5
08 từ
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
92.

Toán tử modulo cho phép bạn sử dụng bất kỳ từ khóa độ dài nào bất kể độ dài của

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
63 sẽ được mã hóa. Khi chỉ mục
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
70, chỉ mục của ký tự hiện đang được mã hóa, bằng độ dài của từ khóa, nó sẽ bắt đầu lại từ đầu từ khóa.

Đối với mỗi chữ cái của văn bản đầu vào, một số bước xác định cách mã hóa hoặc giải mã nó:

  1. Xác định
    8 o'clock + 9 = 17 o'clock
    17 mod 12 = 5
    
    61 dựa trên chỉ số của
    8 o'clock + 9 = 17 o'clock
    17 mod 12 = 5
    
    76 bên trong
    8 o'clock + 9 = 17 o'clock
    17 mod 12 = 5
    
    70.
  2. Xác định
    17 / 12 = 1 R 5
    5 / 12 = 0 R 5
    
    15 dựa trên chỉ số của
    17 / 12 = 1 R 5
    5 / 12 = 0 R 5
    
    05 bên trong
    8 o'clock + 9 = 17 o'clock
    17 mod 12 = 5
    
    70.
  3. Sử dụng
    8 o'clock + 9 = 17 o'clock
    17 mod 12 = 5
    
    61 và
    17 / 12 = 1 R 5
    5 / 12 = 0 R 5
    
    15 để lấy chỉ mục cho ký tự được mã hóa hoặc giải mã.

Hãy xem các bước này trong mã bên dưới:

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
6

Bạn có thể thấy rằng các chỉ số để giải mã và mã hóa được tính toán khác nhau. Đó là lý do tại sao

8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
65 được sử dụng trong chức năng này. Bằng cách này, bạn có thể sử dụng chức năng cho cả mã hóa và giải mã.

Sau khi

>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
46 được xác định, bạn tìm thấy chức năng sử dụng thứ hai của toán tử modulo:

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
7

17 / 12 = 1 R 5
5 / 12 = 0 R 5
22 đảm bảo rằng
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
46 của nhân vật không vượt quá
17 / 12 = 1 R 5
5 / 12 = 0 R 5
24, do đó đảm bảo nó ở bên trong bảng chữ cái. Với chỉ số này, ký tự được mã hóa hoặc giải mã được chọn từ
8 o'clock + 9 = 17 o'clock
17 mod 12 = 5
70 và được thêm vào
17 / 12 = 1 R 5
5 / 12 = 0 R 5
26.

Tại đây, mã đầy đủ của mật mã Vigenère một lần nữa:

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
2

Bây giờ hãy tiếp tục và chạy nó trong Python Repls:

>>>

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
9

Tốt đẹp! Bây giờ bạn có một mật mã Vigenère hoạt động để mã hóa các chuỗi văn bản.

Nhà điều hành Modulo Python sử dụng nâng cao

Trong phần cuối cùng này, bạn sẽ đưa kiến ​​thức toán tử modulo của mình lên cấp độ tiếp theo bằng cách sử dụng nó với

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
39. Bạn cũng sẽ xem xét cách bạn có thể thêm
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
01 vào các lớp tùy chỉnh của mình để chúng có thể được sử dụng với toán tử modulo.

Sử dụng toán tử modulo Python với >>> 3.5 % 0.1 0.099999999999999811 >>> repr(3.5 % 0.1) '0.099999999999999811' >>> str(3.5 % 0.1) '0.1' 39

Trước đó trong hướng dẫn này, bạn đã thấy cách bạn có thể sử dụng toán tử modulo với các loại số như

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
34 và
>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
8 cũng như với
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
38. Bạn cũng có thể sử dụng toán tử modulo với
>>> 13.3 % 1.1
0.09999999999999964

>>> import math
>>> math.fmod(13.3, 1.1)
0.09999999999999964
6 từ mô -đun
17 / 12 = 1 R 5
5 / 12 = 0 R 5
34. Bạn sử dụng
>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
39 khi bạn muốn kiểm soát riêng biệt về độ chính xác của các hoạt động số học dấu phẩy động.

Dưới đây là một số ví dụ về việc sử dụng toàn bộ số nguyên với

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
39 và toán tử modulo:

>>>

>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
0

Tốt đẹp! Bây giờ bạn có một mật mã Vigenère hoạt động để mã hóa các chuỗi văn bản.

>>>

>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
1

Tốt đẹp! Bây giờ bạn có một mật mã Vigenère hoạt động để mã hóa các chuỗi văn bản.

Nhà điều hành Modulo Python sử dụng nâng cao

>>>

>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
2

Tốt đẹp! Bây giờ bạn có một mật mã Vigenère hoạt động để mã hóa các chuỗi văn bản.

>>>

>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
3

Tốt đẹp! Bây giờ bạn có một mật mã Vigenère hoạt động để mã hóa các chuỗi văn bản.

Nhà điều hành Modulo Python sử dụng nâng cao

Sử dụng toán tử modulo Python với các lớp tùy chỉnh

Mô hình dữ liệu Python cho phép bạn ghi đè các phương thức tích hợp trong đối tượng Python để tùy chỉnh hành vi của nó. Trong phần này, bạn sẽ xem xét cách ghi đè

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
01 để bạn có thể sử dụng toán tử modulo với các lớp học của riêng bạn.

Trong ví dụ này, bạn sẽ làm việc với một lớp

17 / 12 = 1 R 5
5 / 12 = 0 R 5
50. Lớp học này sẽ theo dõi lượng thời gian mà một học sinh đã học. Tại đây, lớp
17 / 12 = 1 R 5
5 / 12 = 0 R 5
50 ban đầu:

>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
4

Lớp

17 / 12 = 1 R 5
5 / 12 = 0 R 5
50 được khởi tạo với tham số
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
45 và bắt đầu bằng một danh sách trống,
17 / 12 = 1 R 5
5 / 12 = 0 R 5
54, sẽ giữ một danh sách các số nguyên đại diện cho phút được nghiên cứu mỗi phiên. Ngoài ra còn có
17 / 12 = 1 R 5
5 / 12 = 0 R 5
55, có tham số
17 / 12 = 1 R 5
5 / 12 = 0 R 5
56 nên là danh sách các buổi học để thêm vào
17 / 12 = 1 R 5
5 / 12 = 0 R 5
54.

Bây giờ, nếu bạn nhớ từ phần Đơn vị chuyển đổi ở trên,

17 / 12 = 1 R 5
5 / 12 = 0 R 5
58 đã sử dụng toán tử modulo Python để chuyển đổi
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
93 thành ngày, giờ và phút. Bây giờ bạn sẽ thực hiện một phiên bản sửa đổi của phương thức đó để xem cách bạn có thể sử dụng lớp tùy chỉnh của mình với toán tử modulo:

>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
5

Bạn có thể sử dụng chức năng này với lớp

17 / 12 = 1 R 5
5 / 12 = 0 R 5
50 để hiển thị tổng số giờ mà
17 / 12 = 1 R 5
5 / 12 = 0 R 5
50 đã nghiên cứu. Kết hợp với lớp
17 / 12 = 1 R 5
5 / 12 = 0 R 5
50 ở trên, mã sẽ trông như thế này:

>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
6

Nếu bạn tải mô -đun này trong Python REP, thì bạn có thể sử dụng nó như thế này:

>>>

>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
7

Mã trên in ra tổng số giờ

17 / 12 = 1 R 5
5 / 12 = 0 R 5
63 được nghiên cứu. Phiên bản này của mã hoạt động, nhưng nó yêu cầu bước bổ sung để tổng hợp
17 / 12 = 1 R 5
5 / 12 = 0 R 5
54 để nhận
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
93 trước khi gọi
17 / 12 = 1 R 5
5 / 12 = 0 R 5
66.

Tại đây, cách bạn có thể sửa đổi lớp

17 / 12 = 1 R 5
5 / 12 = 0 R 5
50 để đơn giản hóa mã:

>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
8

Bằng cách ghi đè

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
01 và
17 / 12 = 1 R 5
5 / 12 = 0 R 5
69, bạn có thể sử dụng phiên bản
17 / 12 = 1 R 5
5 / 12 = 0 R 5
50 với toán tử modulo. Tính toán
17 / 12 = 1 R 5
5 / 12 = 0 R 5
71 của
17 / 12 = 1 R 5
5 / 12 = 0 R 5
54 cũng được bao gồm trong lớp
17 / 12 = 1 R 5
5 / 12 = 0 R 5
50.

Với những sửa đổi này, bạn có thể sử dụng một phiên bản

17 / 12 = 1 R 5
5 / 12 = 0 R 5
50 trực tiếp trong
17 / 12 = 1 R 5
5 / 12 = 0 R 5
66. Vì
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
93 không còn cần thiết, bạn có thể xóa nó:

>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
9

Tại đây, mã đầy đủ sau khi sửa đổi:

>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
0

Bây giờ, gọi mã trong Python Repl, bạn có thể thấy nó ngắn gọn hơn nhiều:

>>>

>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
1

Mã trên in ra tổng số giờ

17 / 12 = 1 R 5
5 / 12 = 0 R 5
63 được nghiên cứu. Phiên bản này của mã hoạt động, nhưng nó yêu cầu bước bổ sung để tổng hợp
17 / 12 = 1 R 5
5 / 12 = 0 R 5
54 để nhận
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
93 trước khi gọi
17 / 12 = 1 R 5
5 / 12 = 0 R 5
66.

Tại đây, cách bạn có thể sửa đổi lớp 17 / 12 = 1 R 5 5 / 12 = 0 R 5 50 để đơn giản hóa mã:

Bằng cách ghi đè

>>> 3.5 % 0.1
0.099999999999999811
>>> repr(3.5 % 0.1)
'0.099999999999999811'
>>> str(3.5 % 0.1)
'0.1'
01 và
17 / 12 = 1 R 5
5 / 12 = 0 R 5
69, bạn có thể sử dụng phiên bản
17 / 12 = 1 R 5
5 / 12 = 0 R 5
50 với toán tử modulo. Tính toán
17 / 12 = 1 R 5
5 / 12 = 0 R 5
71 của
17 / 12 = 1 R 5
5 / 12 = 0 R 5
54 cũng được bao gồm trong lớp
17 / 12 = 1 R 5
5 / 12 = 0 R 5
50.

Với những sửa đổi này, bạn có thể sử dụng một phiên bản

17 / 12 = 1 R 5
5 / 12 = 0 R 5
50 trực tiếp trong
17 / 12 = 1 R 5
5 / 12 = 0 R 5
66. Vì
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
93 không còn cần thiết, bạn có thể xóa nó:

  • Tại đây, mã đầy đủ sau khi sửa đổi:modulo operator with
    >>> 3.5 % 0.1
    0.099999999999999811
    >>> repr(3.5 % 0.1)
    '0.099999999999999811'
    >>> str(3.5 % 0.1)
    '0.1'
    
    34,
    >>> 13.3 % 1.1
    0.09999999999999964
    
    >>> import math
    >>> math.fmod(13.3, 1.1)
    0.09999999999999964
    
    8,
    >>> 3.5 % 0.1
    0.099999999999999811
    >>> repr(3.5 % 0.1)
    '0.099999999999999811'
    >>> str(3.5 % 0.1)
    '0.1'
    
    38,
    >>> 3.5 % 0.1
    0.099999999999999811
    >>> repr(3.5 % 0.1)
    '0.099999999999999811'
    >>> str(3.5 % 0.1)
    '0.1'
    
    81, and
    >>> 3.5 % 0.1
    0.099999999999999811
    >>> repr(3.5 % 0.1)
    '0.099999999999999811'
    >>> str(3.5 % 0.1)
    '0.1'
    
    39
  • Bây giờ, gọi mã trong Python Repl, bạn có thể thấy nó ngắn gọn hơn nhiều:modulo operation
  • Bằng cách ghi đè
    >>> 3.5 % 0.1
    0.099999999999999811
    >>> repr(3.5 % 0.1)
    '0.099999999999999811'
    >>> str(3.5 % 0.1)
    '0.1'
    
    01, bạn cho phép các lớp tùy chỉnh của mình hoạt động giống như các loại số tích hợp Python.real-world problems using the modulo operator
  • Sự kết luận
    >>> 3.5 % 0.1
    0.099999999999999811
    >>> repr(3.5 % 0.1)
    '0.099999999999999811'
    >>> str(3.5 % 0.1)
    '0.1'
    
    01
    in your own classes to use them with the modulo operator

Thoạt nhìn, toán tử modulo Python có thể không thu hút sự chú ý của bạn. Tuy nhiên, như bạn đã thấy, có rất nhiều điều cho nhà điều hành khiêm tốn này. Từ việc kiểm tra các số chẵn đến mã hóa văn bản bằng mật mã, bạn đã thấy nhiều cách sử dụng khác nhau cho toán tử modulo.

Trong hướng dẫn này, bạn đã học được cách: This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Python Modulo: Using the % Operator

Làm thế nào để bạn tìm thấy modulo của một chiếc phao?

Các mô đun về cơ bản là tìm phần còn lại.Đối với điều này, chúng ta có thể sử dụng hàm phần còn lại () trong hàm C. phần còn lại () được sử dụng để tính toán phần còn lại điểm nổi của tử số/mẫu số.use the remainder() function in C. The remainder() function is used to compute the floating point remainder of numerator/denominator.

Làm thế nào để bạn tìm thấy mô đun của một số trong Python?

Biểu tượng % trong Python được gọi là toán tử modulo.Nó trả về phần còn lại của việc chia toán hạng tay trái cho toán hạng bên phải.Nó được sử dụng để có được phần còn lại của một vấn đề phân chia.. It returns the remainder of dividing the left hand operand by right hand operand. It's used to get the remainder of a division problem.

Bạn có thể sử dụng mô đun với phao python không?

Câu trả lời.Có, toán tử modulo Python sẽ hoạt động với số điểm nổi.Yes, the Python modulo operator will work with floating point numbers.

Toán tử mô đun có được sử dụng trong phao không?

Người vận hành % không thể được sử dụng với số điểm nổi trong C & C ++..