Hướng dẫn how to use remainder in python - cách sử dụng phần còn lại trong python

Khi bạn nhìn thấy biểu tượng %, bạn có thể nghĩ "phần trăm". Nhưng trong Python, cũng như hầu hết các ngôn ngữ lập trình khác, nó có nghĩa là một cái gì đó khác biệt.

Show

Biểu tượng

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
4 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.

Toán tử modulo được coi là một hoạt động số học, cùng với

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
5,
>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
6,
>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
7,
>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
8,
>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
9,
>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
0.

Cú pháp cơ bản là:

a % b

Trong ví dụ trước

>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
1 được chia cho
>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
2 và phần còn lại được trả về. Hãy xem một ví dụ với các con số.

7 % 2

Kết quả của ví dụ trước là một. Hai người đi vào bảy ba lần và còn lại một lần.one. Two goes into seven three times and there is one left over.

Sơ đồ dưới đây cho thấy biểu diễn trực quan của

>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
3 và
>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
4 ("R" là viết tắt của "phần còn lại"). Logo duy nhất ở phía bên phải (với mũi tên màu xanh lá cây chỉ vào nó) là phần còn lại từ vấn đề phân chia. Nó cũng là câu trả lời cho
>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
4.

Hướng dẫn how to use remainder in python - cách sử dụng phần còn lại trong python

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

3 % 4

Điều này sẽ dẫn đến ba. Bốn không đi vào ba lần để ba lần ban đầu vẫn còn lại. Các sơ đồ dưới đây cho thấy những gì đang xảy ra. Hãy nhớ rằng, toán tử modulo trả về phần còn lại sau khi thực hiện bộ phận. Phần còn lại là ba.three. Four does not go into three any times so the original three is still left over. The diagram below shows what is happening. Remember, the modulo operator returns the remainder after performing division. The remainder is three.

Hướng dẫn how to use remainder in python - cách sử dụng phần còn lại trong python

Ví dụ sử dụng toán tử modulo

Một cách sử dụng phổ biến cho toán tử modulo là tìm các số chẵn hoặc số lẻ. Mã bên dưới sử dụng toán tử modulo để in tất cả các số lẻ trong khoảng từ 0 đến 10.

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)

Result:

1
3
5
7
9


Học mã miễn phí. Chương trình giảng dạy nguồn mở của Freecodecamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

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

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 (

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
4), trả về phần còn lại của việc chia hai số.modulo operator (
>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
4), which returns the remainder of dividing two numbers.

Trong hướng dẫn này, bạn sẽ học:

  • Cách thức hoạt động của Modulo trong toán họcmodulo works in mathematics
  • Cách sử dụng toán tử modulo Python với các loại số khác nhaunumeric types
  • Cách Python tính toán kết quả của hoạt động modulomodulo operation
  • Cách ghi đè
    >>> 22 % 0
    ZeroDivisionError: integer division or modulo by zero
    
    7 trong các lớp của bạn để sử dụng chúng với toán tử modulo
    >>> 22 % 0
    ZeroDivisionError: integer division or modulo by zero
    
    7
    in your classes to use them with the modulo operator
  • Cách sử dụng toán tử modulo Python để giải quyết các vấn đề trong thế giới thựcreal-world problems

Toán tử modulo Python đôi khi có thể bị bỏ qua. Nhưng có một sự hiểu biết tốt về nhà điều hành này sẽ cung cấp cho bạn một công cụ vô giá trong vành đai công cụ Python của bạn.

Modulo trong toán học

Thuật ngữ modulo xuất phát từ một nhánh của toán học gọi là số học mô -đun. Số học mô -đun xử lý số học số nguyên trên một dòng số tròn có một tập hợp số cố định. Tất cả các hoạt động số học được thực hiện trên dòng số này sẽ bao quanh khi chúng đạt đến một số nhất định gọi là mô đun.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.

Một ví dụ kinh điển về mô-đun trong số học mô-đun là đồng hồ mười hai giờ. Đồng hồ mười hai giờ có một tập hợp các giá trị cố định, từ 1 đến 12. Khi đếm trên đồng hồ mười hai giờ Modulo 12, đôi khi rút ngắn thành Mod Mod 12.

Toán tử modulo được sử dụng khi bạn muốn so sánh một số với mô đun và nhận số tương đương bị ràng buộc với phạm vi của mô đun.

Ví dụ: giả sử bạn muốn xác định thời gian là chín giờ sau 8:00 sáng trên đồng hồ mười hai giờ, bạn không thể thêm 9 đến 8 vì bạn sẽ nhận được 17. Bạn cần lấy kết quả, 17 và sử dụng

>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
8 để có được giá trị tương đương của nó trong bối cảnh mười hai giờ:

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

>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
9 Trả về
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
0. Điều này có nghĩa là chín giờ trước 8:00 sáng là 5:00 chiều. Bạn đã xác định điều này bằng cách lấy số
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
1 và áp dụng nó vào bối cảnh
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
2.

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

>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
1 và
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
0 tương đương trong bối cảnh
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
2. 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

>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
1 và
>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
2 là modulo đồng dạng
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
8. Điều này có nghĩa là
>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
1 và
>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
2 tương đương trong
7 % 2
01 vì chúng có cùng phần còn lại khi chia cho
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
8. Trong phương trình trên,
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
8 là mô đun cho cả
>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
1 và
>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
2. Sử dụng các giá trị
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
1 và
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
0 từ trước, phương trình sẽ trông như thế này:modulus for both
>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
1 and
>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
2. Using the values
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
1 and
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
0 from before, the equation would look like this:

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

>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
0 là modulo đồng dạng
7 % 2
10.
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
1 và
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
0 có cùng phần còn lại,
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
0, khi chia cho
7 % 2
10. Vì vậy, trong
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
2, các số
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
1 và
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
0 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,

>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
0, vì vậy chúng có thể tương đương với modulo
7 % 2
10.

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ố

7 % 2
20 và
7 % 2
21.

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ố

7 % 2
20 và
7 % 2
21. 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ư
7 % 2
24,
7 % 2
25 và các lớp học của riêng bạn.

Toán tử modulo với 7 % 220

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 (

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
7), Python sẽ trả lại
7 % 2
28 nếu bạn cố gắng sử dụng toán tử modulo với ước số
7 % 2
29:

>>>

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

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

7 % 2
21.

Toán tử modulo với 7 % 221

Tương tự như

7 % 2
20, toán tử modulo được sử dụng với
7 % 2
21 sẽ trả về phần còn lại của bộ phận, nhưng như một giá trị
7 % 2
21:

>>>

>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0

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

7 % 2
21 với toán tử modulo là sử dụng
7 % 2
24 để thực hiện các hoạt động modulo trên các giá trị
7 % 2
21:

>>>

7 % 2
0

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

7 % 2
24 trên toán tử modulo Python khi làm việc với các giá trị
7 % 2
21 vì cách
7 % 2
24 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
7 % 2
41 và
7 % 2
42. 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à

7 % 2
24 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:

>>>

7 % 2
1

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

7 % 2
25. 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

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.

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.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.

Ví dụ, trong JavaScript, phần còn lại sẽ lấy dấu của cổ tức:

Phần còn lại trong ví dụ này,

7 % 2
45, là tích cực vì nó có dấu hiệu của cổ tức,
7 % 2
46. Trong Python và các ngôn ngữ khác, phần còn lại sẽ lấy dấu hiệu của ước số:

Ở đây bạn có thể thấy rằng phần còn lại,

7 % 2
47, có dấu hiệu của ước số,
7 % 2
48.

Bạn có thể tự hỏi tại sao phần còn lại trong JavaScript là

7 % 2
45 và phần còn lại trong Python là
7 % 2
47. Điều này có liên quan đến cách các ngôn ngữ khác nhau xác định kết quả của hoạt động modulo. Các ngôn ngữ trong đó phần còn lại lấy dấu của cổ tức Sử dụng phương trình sau để xác định phần còn lại:

Có ba biến phương trình này:

  1. 7 % 2
    51 là phần còn lại.
    is the remainder.
  2. >>> 22 % 0
    ZeroDivisionError: integer division or modulo by zero
    
    1 là cổ tức.
    is the dividend.
  3. >>> 12.5 % 5.5
    1.5
    
    >>> 17.0 % 12.0
    5.0
    
    8 là ước số.
    is the divisor.

7 % 2
54 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
7 % 2
46 làm cổ tức và
7 % 2
48 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
7 % 2
46 as the dividend and
7 % 2
48 as the divisor:

7 % 2
2

Ở đâ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

7 % 2
45. 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:

7 % 2
58 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:

7 % 2
3

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

7 % 2
47.

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. Mặc dù modulo được sử dụng với các loại

7 % 2
20 và
7 % 2
21 sẽ có 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

7 % 2
62 và
7 % 2
63:

>>>

7 % 2
4

7 % 2
24 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
7 % 2
21 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,
7 % 2
25.

Nhà điều hành Modulo và 7 % 267

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

7 % 2
67, sử dụng nội bộ toán tử modulo.
7 % 2
67 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

7 % 2
67 với
7 % 2
71 và
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
0:

>>>

7 % 2
5

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

7 % 2
73 trả về tuple
7 % 2
74.
7 % 2
75 là kết quả của bộ phận sàn
7 % 2
71 và
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
0.
7 % 2
45 là kết quả của
7 % 2
71 modulo
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
0.

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

7 % 2
20, phần còn lại sẽ lấy dấu hiệu của ước số:

>>>

7 % 2
6

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

Giống như các toán tử Python khác, có các quy tắc cụ thể cho toán tử modulo xác định ưu tiên của nó khi đánh giá các biểu thức. Toán tử Modulo (

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
4) có cùng mức độ ưu tiên như phép nhân (
>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
8), bộ phận (
>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
7) và các toán tử phân chia sàn (
>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
0).

Hãy xem một ví dụ về toán tử modulo ưu tiên bên dưới:

>>>

7 % 2
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.

  1. Nhà điều hành Modulo ưu tiên is evaluated, resulting in
    7 % 2
    87.
  2. Giống như các toán tử Python khác, có các quy tắc cụ thể cho toán tử modulo xác định ưu tiên của nó khi đánh giá các biểu thức. Toán tử Modulo (
    >>> 15 % 4
    3
    
    >>> 17 % 12
    5
    
    >>> 240 % 13
    6
    
    >>> 10 % 16
    10
    
    4) có cùng mức độ ưu tiên như phép nhân (
    >>> 15 % 4
    3
    
    >>> 17 % 12
    5
    
    >>> 240 % 13
    6
    
    >>> 10 % 16
    10
    
    8), bộ phận (
    >>> 15 % 4
    3
    
    >>> 17 % 12
    5
    
    >>> 240 % 13
    6
    
    >>> 10 % 16
    10
    
    7) và các toán tử phân chia sàn (
    >>> 22 % 0
    ZeroDivisionError: integer division or modulo by zero
    
    0).
    is evaluated, resulting in
    7 % 2
    89.
  3. Hãy xem một ví dụ về toán tử modulo ưu tiên bên dưới: is evaluated, resulting in
    7 % 2
    91.

Cả hai toán tử nhân và modulo đều có cùng mức độ ưu tiên, vì vậy Python sẽ đánh giá chúng từ trái sang phải. Dưới đây là các bước cho hoạt động trên:

>>>

7 % 2
8

7 % 2
86 được đánh giá, dẫn đến
7 % 2
87.

7 % 288 được đánh giá, dẫn đến 7 % 289.

7 % 2
89 được đánh giá, dẫn đến
7 % 2
91.

Nếu bạn muốn ghi đè lên mức độ ưu tiên của các toán tử khác, thì bạn có thể sử dụng dấu ngoặc đơn để bao quanh hoạt động bạn muốn được đánh giá trước:

Trong ví dụ này,

7 % 2
92 được đánh giá đầu tiên, tiếp theo là
7 % 2
86 và cuối cùng
7 % 2
94, bằng
7 % 2
95.

Nhà điều hành Modulo Python trong thực tế

7 % 2
9

Bây giờ, bạn đã trải qua những điều cơ bản của toán tử modulo Python, bạn sẽ xem xét một số ví dụ về việc sử dụng nó để giải quyết các vấn đề lập trình trong thế giới thực. Đôi khi, có thể khó xác định khi nào nên sử dụng toán tử modulo trong mã của bạn. Các ví dụ dưới đây sẽ cung cấp cho bạn một ý tưởng về nhiều cách nó có thể được sử dụng.

Cách kiểm tra xem một số chẵn hay lẻ

3 % 4
0

Trong phần này, bạn sẽ thấy cách bạn có thể sử dụng toán tử modulo để xác định xem một số chẵn hay số lẻ. Sử dụng toán tử modulo với mô đun là

7 % 2
45, bạn có thể kiểm tra bất kỳ số nào để xem nó có chia đều cho
7 % 2
45 không. Nếu nó chia đều, thì đó là một số chẵn.

3 % 4
1

Hãy xem

7 % 2
98 trong đó kiểm tra xem tham số
7 % 2
99 có chẵn không:

Ở đây

3 % 4
00 sẽ bằng
7 % 2
29 nếu
7 % 2
99 là chẵn và
7 % 2
95 nếu
7 % 2
99 là kỳ lạ. Kiểm tra chống lại
7 % 2
29 sẽ trả lại một boolean là
3 % 4
06 hoặc
3 % 4
07 dựa trên việc
7 % 2
99 có phải hay không.

>>>

3 % 4
2

Kiểm tra số lẻ là khá giống nhau. Để kiểm tra một số lẻ, bạn đảo ngược kiểm tra bình đẳng:

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

3 % 4
06 nếu
3 % 4
00 không bằng
7 % 2
29, có nghĩa là có một phần còn lại chứng minh
7 % 2
99 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
7 % 2
99 có phải là một số lẻ không:

>>>

3 % 4
3

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

7 % 2
95 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:

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ề 7 % 247. Trong trường hợp này, séc Boolean 3 % 416 sẽ trả lại 3 % 407.

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

7 % 2
29, thì nó không quan trọng thì toán hạng nào là âm. Kết quả sẽ luôn là
3 % 4
06 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

7 % 2
29, thì bạn không nên có bất kỳ vấn đề nào khi kiểm tra số 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.

3 % 4
4

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.

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

>>>

3 % 4
5

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.

3 % 4
23 Mặc định là
3 % 4
28, nhưng bạn có thể chỉ định bất kỳ số nào:

>>>

3 % 4
6

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.

3 % 4
23 Mặc định là
3 % 4
28, nhưng bạn có thể chỉ định bất kỳ số nào:

3 % 4
7

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

3 % 4
29 để lặp lại
3 % 4
22, gán mục hiện tại trong danh sách cho
3 % 4
31 và giá trị đếm cho
3 % 4
32. Bạn có thể thấy rằng đối số
3 % 4
33 tùy chọn cho
3 % 4
29 được đặt thành
7 % 2
95. Điều này có nghĩa là số lượng
3 % 4
32 sẽ bắt đầu tại
7 % 2
95 thay vì
7 % 2
29:

3 % 4
8

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

3 % 4
39 để xuất
3 % 4
31 vào hàng hiện tại. Tham số
3 % 4
41 cho
3 % 4
39 là một chuỗi trống (
3 % 4
43) 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
3 % 4
39, sử dụng cú pháp định dạng đầu ra chuỗi mà Python cung cấp:

  • Không cần đi vào quá nhiều chi tiết, cú pháp
    3 % 4
    45 bảo
    3 % 4
    39 làm như sau:
  • Đầu ra ít nhất
    3 % 4
    47 ký tự, ngay cả khi chuỗi ngắn hơn 15 ký tự.
  • Trung tâm căn chỉnh chuỗi.

Điền vào bất kỳ khoảng trống nào ở bên phải hoặc bên trái của chuỗi bằng ký tự dấu gạch nối (

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
6).

3 % 4
9

Bây giờ tên đã được in ra hàng, hãy xem phần chính của

3 % 4
21:

Mã này lấy lần lặp hiện tại

3 % 4
32 và, sử dụng toán tử modulo, so sánh nó với
3 % 4
23. Nếu kết quả bằng
7 % 2
29, thì nó có thể chạy mã dành riêng cho khoảng thời gian. Trong trường hợp này, chức năng gọi
3 % 4
39 để thêm một dòng mới, bắt đầu một hàng mới.

Mã trên chỉ là một ví dụ. Sử dụng mẫu 3 % 454 cho phép bạn chạy mã khác nhau trong các khoảng thời gian cụ thể trong các vòng lặp của bạn. Trong phần tiếp theo, bạn sẽ đưa khái niệm này đi xa hơn một chút và nhìn vào việc lặp lại theo chu kỳ.

Cách tạo phép lặp theo chu kỳ 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.

Lặp lại theo chu kỳ mô tả một loại lặp sẽ đặt lại một khi nó đến một điểm nhất định. Nói chung, loại lặp này được sử dụng để hạn chế chỉ số của phép lặp ở một phạm vi nhất định.

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
0

Bạn có thể sử dụng toán tử modulo để tạo vòng lặp theo chu kỳ. Hãy xem một ví dụ bằng thư viện

3 % 4
55 để vẽ hình dạng:

Hướng dẫn how to use remainder in python - cách sử dụng phần còn lại trong python

Mã trên sử dụng một vòng lặp vô hạn để vẽ hình dạng sao lặp lại. Sau sáu lần lặp lại, nó thay đổi màu của bút. Kích thước bút tăng theo từng lần lặp cho đến khi

3 % 4
56 được đặt lại về
7 % 2
29. Nếu bạn chạy mã, thì bạn sẽ nhận được một cái gì đó tương tự như thế này:

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
1

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

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

3 % 4
56 được cập nhật dựa trên kết quả của
3 % 4
59. Giá trị
3 % 4
56 mới này được sử dụng để tăng
3 % 4
61 với mỗi lần lặp. Khi
3 % 4
56 đạt
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
0,
3 % 4
59 sẽ bằng
7 % 2
29 và
3 % 4
56 sẽ đặt lại về
7 % 2
29.

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
2

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

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
3

Khi

3 % 4
56 được đặt lại về
7 % 2
29,
3 % 4
70 thay đổi thành màu ngẫu nhiên mới như được thấy dưới đây:

Mã trong phần này sử dụng 3 % 471 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ị 3 % 456.

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.

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
4

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 (

>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
0) được sử dụng để có tổng số chân được làm tròn xuống:

>>>

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
5

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

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

3 % 4
74 trả về
3 % 4
71, đó là những inch còn lại mà weren chia đều thành chân. Kết quả của
3 % 4
76 là
7 % 2
71, đó là tổng số feet mà các inch được chia đều.

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
6

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

3 % 4
78 mất một số nguyên,
3 % 4
79, đạ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:

  1. Phá vỡ điều này, bạn có thể thấy rằng chức năng thực hiện như sau:
  2. Tính toán bất kỳ
    3 % 4
    82 còn lại với
    3 % 4
    83
  3. Sử dụng
    3 % 4
    82 để có được
    3 % 4
    85 chia đều và bất kỳ
    3 % 4
    86 nào

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

>>>

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
7

Mặc dù các ví dụ trên chỉ xử lý chuyển đổi inch thành feet và phút sang vài ngày, bạn có thể sử dụng bất kỳ loại đơn vị nào với toán tử modulo để chuyển đổi một đơn vị nhỏ hơn thành một đơn vị lớn hơn.

Bây giờ, bạn đã thấy cách sử dụng toán tử modulo để chuyển đổi các đơn vị, trong phần tiếp theo, bạn sẽ xem xét cách bạn có thể sử dụng toán tử modulo để kiểm tra số nguyên tố.

Cách xác định xem một số có phải là số nguyên tố không

Trong ví dụ tiếp theo này, bạn sẽ xem cách bạn có thể sử dụng toán tử modulo Python để kiểm tra xem một số có phải là số nguyên tố không. Một số nguyên tố là bất kỳ số nào chỉ chứa hai yếu tố,

7 % 2
95 và chính nó. Một số ví dụ về số nguyên tố là
7 % 2
45,
3 % 4
28,
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
0,
7 % 2
75,
3 % 4
92,
3 % 4
93,
3 % 4
94,
3 % 4
95 và
3 % 4
96.prime number. A prime number is any number that contains only two factors,
7 % 2
95 and itself. Some examples of prime numbers are
7 % 2
45,
3 % 4
28,
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
0,
7 % 2
75,
3 % 4
92,
3 % 4
93,
3 % 4
94,
3 % 4
95, and
3 % 4
96.

Mã bên dưới là triển khai để xác định tính nguyên thủy của một số bằng toán tử modulo:

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
8

Mã này xác định

3 % 4
97, lấy tham số
7 % 2
99 và kiểm tra xem nó có phải là số nguyên tố không. Nếu có, thì một tin nhắn được hiển thị cho biết
7 % 2
99 là số nguyên tố. Nếu nó không phải là một số nguyên tố, thì một tin nhắn được hiển thị với tất cả các yếu tố của số.

Trước khi bạn nhìn kỹ hơn vào chức năng, đây là kết quả sử dụng một số số khác nhau:

>>>

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
9

Mặc dù các ví dụ trên chỉ xử lý chuyển đổi inch thành feet và phút sang vài ngày, bạn có thể sử dụng bất kỳ loại đơn vị nào với toán tử modulo để chuyển đổi một đơn vị nhỏ hơn thành một đơn vị lớn hơn.

Bây giờ, bạn đã thấy cách sử dụng toán tử modulo để chuyển đổi các đơn vị, trong phần tiếp theo, bạn sẽ xem xét cách bạn có thể sử dụng toán tử modulo để kiểm tra số nguyên tố.

Cách xác định xem một số có phải là số nguyên tố không

Trong ví dụ tiếp theo này, bạn sẽ xem cách bạn có thể sử dụng toán tử modulo Python để kiểm tra xem một số có phải là số nguyên tố không. Một số nguyên tố là bất kỳ số nào chỉ chứa hai yếu tố,

7 % 2
95 và chính nó. Một số ví dụ về số nguyên tố là
7 % 2
45,
3 % 4
28,
>>> 12.5 % 5.5
1.5

>>> 17.0 % 12.0
5.0
0,
7 % 2
75,
3 % 4
92,
3 % 4
93,
3 % 4
94,
3 % 4
95 và
3 % 4
96.

1
3
5
7
9
1

Mã bên dưới là triển khai để xác định tính nguyên thủy của một số bằng toán tử modulo:

Mã này xác định

3 % 4
97, lấy tham số
7 % 2
99 và kiểm tra xem nó có phải là số nguyên tố không. Nếu có, thì một tin nhắn được hiển thị cho biết
7 % 2
99 là số nguyên tố. Nếu nó không phải là một số nguyên tố, thì một tin nhắn được hiển thị với tất cả các yếu tố của số.

Trước khi bạn nhìn kỹ hơn vào chức năng, đây là kết quả sử dụng một số số khác nhau:

1
3
5
7
9
2

Đào vào mã, bạn có thể thấy nó bắt đầu bằng cách kiểm tra xem

7 % 2
99 có nhỏ hơn
7 % 2
45 không. Số nguyên tố chỉ có thể lớn hơn hoặc bằng
7 % 2
45. Nếu
7 % 2
99 nhỏ hơn
7 % 2
45, thì chức năng không cần phải tiếp tục. Nó sẽ
3 % 4
39 một tin nhắn và
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
06:

1
3
5
7
9
0

1
3
5
7
9
3

Nếu

7 % 2
99 lớn hơn
7 % 2
45, thì hàm sẽ kiểm tra xem
7 % 2
99 là số nguyên tố. Để kiểm tra điều này, hàm đã lặp lại trên tất cả các số giữa
7 % 2
45 và căn bậc hai của
7 % 2
99 để xem liệu có phân chia đồng đều thành
7 % 2
99 không. Nếu một trong những con số chia đều, thì một yếu tố đã được tìm thấy và
7 % 2
99 có thể là một số nguyên tố.

Ở đây, phần chính của chức năng:

1
3
5
7
9
4

Có rất nhiều thứ để giải nén ở đây, vì vậy, hãy để thực hiện từng bước.

Đầu tiên, danh sách for number in range(1, 10): if(number % 2 != 0): print(number)14 được tạo với các yếu tố ban đầu, for number in range(1, 10): if(number % 2 != 0): print(number)15. Danh sách này sẽ được sử dụng để lưu trữ bất kỳ yếu tố nào khác được tìm thấy:

Tiếp theo, bắt đầu với

7 % 2
45, mã tăng
3 % 4
56 cho đến khi nó đạt đến căn bậc hai của
7 % 2
99. Tại mỗi lần lặp, nó so sánh
7 % 2
99 với
3 % 4
56 để xem nó có chia hết không. Mã chỉ cần kiểm tra và bao gồm cả căn bậc hai của
7 % 2
99 vì nó sẽ không chứa bất kỳ yếu tố nào trên:Caesar cipher and the Vigenère cipher.

Thay vì cố gắng xác định căn bậc hai của
7 % 2
99, hàm sử dụng vòng
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
23 để xem
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
24. Miễn là
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
24, vòng lặp đã đạt đến căn bậc hai của
7 % 2
99.

Bên trong vòng

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
23, toán tử modulo kiểm tra xem
7 % 2
99 có chia hết bởi
3 % 4
56:

Nếu

7 % 2
99 chia đều cho
3 % 4
56, thì
3 % 4
56 là yếu tố của
7 % 2
99 và một bộ phận của các yếu tố được thêm vào danh sách
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
14.

Khi vòng lặp

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
23 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:

Hướng dẫn how to use remainder in python - cách sử dụng phần còn lại trong python

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

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
46.

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 đó

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
47 là chỉ số của ký tự trong bảng chữ cái:

1
3
5
7
9
5

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:

1
3
5
7
9
6

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

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
48, có hai tham số bắt buộc và một tham số tùy chọn:

  • for number in range(1, 10):
        if(number % 2 != 0):
            print(number)
    49 là văn bản được mã hóa hoặc giải mã.
    is the text to be encrypted or decrypted.
  • for number in range(1, 10):
        if(number % 2 != 0):
            print(number)
    50 là số lượng vị trí để thay đổi mỗi chữ cái.
    is the number of positions to shift each letter.
  • for number in range(1, 10):
        if(number % 2 != 0):
            print(number)
    51 là một boolean để thiết lập nếu
    for number in range(1, 10):
        if(number % 2 != 0):
            print(number)
    49 nên được giải mã.
    is a Boolean to set if
    for number in range(1, 10):
        if(number % 2 != 0):
            print(number)
    49 should be decrypted.

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
51 đượ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 xem
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
49 là ký tự chữ cái trong mã hóa ASCII:

1
3
5
7
9
7

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

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
55 ASCII, các ký tự
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
56 ASCII và kết quả mã hóa hoặc giải mã:

1
3
5
7
9
8

Tiếp theo, nếu chức năng được sử dụng để giải mã

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
49, thì nó sẽ nhân
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
50 với
7 % 2
47 để làm cho nó thay đổi ngược:

1
3
5
7
9
9

Cuối cùng,

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
48 lặp qua các ký tự riêng lẻ trong
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
49 và thực hiện các hành động sau cho mỗi
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
62:

  1. Kiểm tra xem
    for number in range(1, 10):
        if(number % 2 != 0):
            print(number)
    62 là chữ thường hoặc chữ hoa.
  2. Nhận
    3 % 4
    32 của
    for number in range(1, 10):
        if(number % 2 != 0):
            print(number)
    62 trong danh sách
    for number in range(1, 10):
        if(number % 2 != 0):
            print(number)
    55 hoặc
    for number in range(1, 10):
        if(number % 2 != 0):
            print(number)
    56 ASCII.
  3. Thêm
    for number in range(1, 10):
        if(number % 2 != 0):
            print(number)
    50 vào
    3 % 4
    32 này để xác định chỉ số của ký tự mật mã để sử dụng.
  4. Sử dụng
    for number in range(1, 10):
        if(number % 2 != 0):
            print(number)
    70 để đả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
    for number in range(1, 10):
        if(number % 2 != 0):
            print(number)
    71.

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

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
49,
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
71 được trả về:

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

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

1
3
5
7
9
6

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

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
74 với sự thay đổi
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
75:

>>>

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

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

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
76. 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:

>>>

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

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

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
76. 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ã

Mật mã Vigenère là một mật mã thay thế polyalphabetic. Để thực hiện mã hóa của nó, nó sử dụng một mật mã Caesar khác nhau cho mỗi chữ cái của văn bản đầu vào. Mật mã Vigenère sử dụng từ khóa để xác định mật mã Caesar nào nên được sử dụng để tìm chữ cái mật mã.

Hướng dẫn how to use remainder in python - cách sử dụng phần còn lại trong python

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

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
44 được mã hóa bằng từ khóa
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
78:

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

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
44, một chữ cái từ từ khóa
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
78 đượ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
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
78, 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.

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

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:

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

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

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
82 khá giống với
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
48 từ phần trước:

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

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
50,
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
82 có tham số
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
86, 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
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
87. Dựa trên việc triển khai này,
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
82 chỉ có thể chấp nhận văn bản đầu vào là tất cả các chữ hoa.

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

Giống như

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
48,
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
82 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ó:

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

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:

Ở đây, giá trị

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
91 được xác định dựa trên một chỉ mục được trả về từ
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
92. Chỉ mục này được sử dụng để chọn một chữ cái từ chuỗi
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
86, chẳng hạn như
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
94 từ
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
78.

Đố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
    for number in range(1, 10):
        if(number % 2 != 0):
            print(number)
    47 dựa trên chỉ số của
    for number in range(1, 10):
        if(number % 2 != 0):
            print(number)
    62 bên trong
    for number in range(1, 10):
        if(number % 2 != 0):
            print(number)
    56.
  2. Xác định
    1
    3
    5
    7
    9
    01 dựa trên chỉ số của
    for number in range(1, 10):
        if(number % 2 != 0):
            print(number)
    91 bên trong
    for number in range(1, 10):
        if(number % 2 != 0):
            print(number)
    56.
  3. Sử dụng
    for number in range(1, 10):
        if(number % 2 != 0):
            print(number)
    47 và
    1
    3
    5
    7
    9
    01 để 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:

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

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

for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
51 đượ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

3 % 4
32 đượ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:

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

1
3
5
7
9
08 đảm bảo rằng
3 % 4
32 của nhân vật không vượt quá
1
3
5
7
9
10, 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ừ
for number in range(1, 10):
    if(number % 2 != 0):
        print(number)
56 và được thêm vào
1
3
5
7
9
12.

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

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

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

>>>

17 / 12 = 1 R 5
5 / 12 = 0 R 5
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

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

7 % 2
25. Bạn cũng sẽ xem xét cách bạn có thể thêm
>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
7 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 7 % 225

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ư

7 % 2
20 và
7 % 2
21 cũng như với
7 % 2
24. Bạn cũng có thể sử dụng toán tử modulo với
1
3
5
7
9
19 từ mô -đun
1
3
5
7
9
20. Bạn sử dụng
7 % 2
25 khi bạn muốn kiểm soát riêng biệt độ 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

7 % 2
25 và toán tử modulo:

>>>

17 / 12 = 1 R 5
5 / 12 = 0 R 5
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.

>>>

17 / 12 = 1 R 5
5 / 12 = 0 R 5
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

>>>

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

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.

>>>

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

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 7 % 225. Bạn cũng sẽ xem xét cách bạn có thể thêm >>> 22 % 0 ZeroDivisionError: integer division or modulo by zero 7 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

7 % 2
25

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ư

7 % 2
20 và
7 % 2
21 cũng như với
7 % 2
24. Bạn cũng có thể sử dụng toán tử modulo với
1
3
5
7
9
19 từ mô -đun
1
3
5
7
9
20. Bạn sử dụng
7 % 2
25 khi bạn muốn kiểm soát riêng biệt độ chính xác của các hoạt động số học dấu phẩy động.

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

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

7 % 2
25 và toán tử modulo:

Dưới đây là một số số điểm nổi được sử dụng với

7 % 2
25 và toán tử modulo:

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

Tất cả các hoạt động của modulo với

7 % 2
25 trả về kết quả tương tự như các loại số khác, ngoại trừ khi một trong các toán hạng là âm. Không giống như
7 % 2
20 và
7 % 2
21, nhưng giống như
7 % 2
24,
7 % 2
25 sử dụng dấu hiệu của cổ tức cho kết quả.

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

Hãy xem các ví dụ dưới đây so sánh kết quả của việc sử dụng toán tử modulo với các giá trị

7 % 2
20 và
7 % 2
21 tiêu chuẩn và với
7 % 2
25:

>>>

17 / 12 = 1 R 5
5 / 12 = 0 R 5
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

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
0

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

7 % 2
25. Bạn cũng sẽ xem xét cách bạn có thể thêm
>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
7 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.

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

1
3
5
7
9
36 trực tiếp trong
1
3
5
7
9
52. Vì
3 % 4
79 không còn cần thiết, bạn có thể xóa nó:

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
1

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

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
2

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

>>>

>>> 15 % 4
3

>>> 17 % 12
5

>>> 240 % 13
6

>>> 10 % 16
10
3

Bằng cách ghi đè

>>> 22 % 0
ZeroDivisionError: integer division or modulo by zero
7, 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.

Sự kết luận

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:

  • Sử dụng toán tử modulo với
    7 % 2
    20,
    7 % 2
    21,
    7 % 2
    24,
    7 % 2
    67 và
    7 % 2
    25modulo operator with
    7 % 2
    20,
    7 % 2
    21,
    7 % 2
    24,
    7 % 2
    67, and
    7 % 2
    25
  • Tính kết quả của hoạt động modulomodulo operation
  • Giải quyết các vấn đề trong thế giới thực bằng toán tử moduloreal-world problems using the modulo operator
  • Ghi đè
    >>> 22 % 0
    ZeroDivisionError: integer division or modulo by zero
    
    7 trong các lớp của riêng bạn để sử dụng chúng với toán tử modulo
    >>> 22 % 0
    ZeroDivisionError: integer division or modulo by zero
    
    7
    in your own classes to use them with the modulo operator

Với kiến ​​thức mà bạn đã đạt được trong hướng dẫn này, giờ đây bạn có thể bắt đầu sử dụng toán tử modulo trong mã của riêng bạn với thành công lớn. Happy Pythoning!

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 để chức năng còn lại hoạt động trong Python?

Toán tử mô đun, đôi khi còn được gọi là toán tử còn lại hoặc toán tử còn lại số nguyên hoạt động trên các số nguyên (và biểu thức số nguyên) và mang lại phần còn lại khi toán hạng đầu tiên được chia cho lần thứ hai.Trong Python, toán tử mô đun là một dấu hiệu phần trăm ( %).Cú pháp giống như đối với các toán tử khác.yields the remainder when the first operand is divided by the second. In Python, the modulus operator is a percent sign ( % ). The syntax is the same as for other operators.

Việc sử dụng lệnh còn lại là gì?

Phần còn lại ( %) toán tử còn lại ( %) trả về phần còn lại còn lại khi một toán hạng được chia cho một toán hạng thứ hai.Nó luôn luôn có dấu hiệu của cổ tức.returns the remainder left over when one operand is divided by a second operand. It always takes the sign of the dividend.