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à 2 là 3. Bạn có thể kiểm tra điều này rất dễ dàng: Show
Trong thực tế, trên hầu hết các hệ thống, 2 là 5. Nhưng, trên một số phiên bản của Python, 6 là 3:
Bây giờ, có lẽ bạn đang tự hỏi tại sao 2 là 5 thay vì 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 1 không phải là 2, đó là 3. Vì vậy, 4 là 5, thậm chí không gần với 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ề 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. 8 là 9, vì vậy 0 là (ít nhất là trong một lỗi làm tròn nhỏ) 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 2, trả về (trong lỗi làm tròn) 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à 4, không phải 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 6:
Đâ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 ( 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ố.
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
Cách ghi đè 01 trong các lớp của bạn để sử dụng chúng với toán tử moduloBây giờ, nếu bạn nghĩ về nó, 05 và 04 tương đương trong bối cảnh 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 10 và 11 là modulo đồng dạng 12. Điều này có nghĩa là 10 và 11 tương đương trong 15 vì chúng có cùng phần còn lại khi chia cho 12. Trong phương trình trên, 12 là mô đun cho cả 10 và 11. Sử dụng các giá trị 05 và 04 từ trước, phương trình sẽ trông như thế này:modulus for both 10 and 11. Using the values 05 and 04 from before, the equation would look like this:Điều này đọc được ____ ____105 và 04 là modulo đồng dạng 24. 05 và 04 có cùng phần còn lại, 04, khi chia cho 24. Vì vậy, trong 06, các số 05 và 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:
Cả hai hoạt động đều có cùng phần còn lại, 04, vì vậy chúng có thể tương đương với modulo 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ố 34 và 8.Nhà điều hành Modulo PythonToá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ố 34 và 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ư 38, 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' 34Hầ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: >>>
Hãy cẩn thận! Giống như với toán tử phân chia ( 41), Python sẽ trả lại 42 nếu bạn cố gắng sử dụng toán tử modulo với ước số 43:>>>
Hãy cẩn thận! Giống như với toán tử phân chia ( 41), Python sẽ trả lại 42 nếu bạn cố gắng sử dụng toán tử modulo với ước số 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 8>>>
Hãy cẩn thận! Giống như với toán tử phân chia ( 41), Python sẽ trả lại 42 nếu bạn cố gắng sử dụng toán tử modulo với ước số 43:>>>
Hãy cẩn thận! Giống như với toán tử phân chia ( 41), Python sẽ trả lại 42 nếu bạn cố gắng sử dụng toán tử modulo với ước số 43:Tiếp theo, bạn sẽ xem xét bằng cách sử dụng toán tử modulo với 8.>>>
Hãy cẩn thận! Giống như với toán tử phân chia ( 41), Python sẽ trả lại 42 nếu bạn cố gắng sử dụng toán tử modulo với ước số 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 8Tương tự như 34, toán tử modulo được sử dụng với 8 sẽ trả về phần còn lại của bộ phận, nhưng như một giá trị 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 8 với toán tử modulo là sử dụng 38 để thực hiện các hoạt động modulo trên các giá trị 8:Các tài liệu Python chính thức đề xuất sử dụng 38 so với toán tử modulo Python khi làm việc với các giá trị 8 vì cách 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 55 và 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à 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 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
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 60 làm cổ tức và 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 60 as the dividend and 62 as the divisor: 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 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: 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: 1Ở đây bạn có thể thấy rằng kết quả là 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 34 và 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 76 và 77:>>> 2 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 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, 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' 81Python có chức năng tích hợp 81, sử dụng nội bộ toán tử modulo. 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 81 với 85 và 04:>>> 3 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 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, 39.Nhà điều hành Modulo và 81>>> 4 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 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, 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' 81Python có chức năng tích hợp 81, sử dụng nội bộ toán tử modulo. 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 81 với 85 và 04:>>> 5 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 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, 39.
Bạn có thể thấy rằng 87 trả về tuple 88. 89 là kết quả của bộ phận sàn 85 và 04. 59 là kết quả của 85 modulo 04.>>> 6 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 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, 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' 81Python có chức năng tích hợp 81, sử dụng nội bộ toán tử modulo. 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 87 trả về tuple 88. 89 là kết quả của bộ phận sàn 85 và 04. 59 là kết quả của 85 modulo 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 34, phần còn lại sẽ lấy dấu hiệu của ước số: 7Bâ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 8Hàm này sẽ trả về 20 nếu 14 không bằng 43, có nghĩa là có một phần còn lại chứng minh 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 13 có phải là một số lẻ không: 9Câ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 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: >>> 0Trong ví dụ thứ hai, phần còn lại lấy dấu hiệu của ước số âm và trả về 61. Trong trường hợp này, séc Boolean 30 sẽ trả lại 21.Tuy nhiên, nếu bạn so sánh hoạt động của modulo với 43, thì nó không quan trọng thì toán hạng nào là âm. Kết quả sẽ luôn là 20 khi nó có một số chẵn:>>> 1Trong ví dụ thứ hai, phần còn lại lấy dấu hiệu của ước số âm và trả về 61. Trong trường hợp này, séc Boolean 30 sẽ trả lại 21.Tuy nhiên, nếu bạn so sánh hoạt động của modulo với 43, thì nó không quan trọng thì toán hạng nào là âm. Kết quả sẽ luôn là 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 2Vớ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ụ: >>> 3Trong ví dụ thứ hai, phần còn lại lấy dấu hiệu của ước số âm và trả về 61. Trong trường hợp này, séc Boolean 30 sẽ trả lại 21.>>> 4Trong ví dụ thứ hai, phần còn lại lấy dấu hiệu của ước số âm và trả về 61. Trong trường hợp này, séc Boolean 30 sẽ trả lại 21. 5Tuy nhiên, nếu bạn so sánh hoạt động của modulo với 43, thì nó không quan trọng thì toán hạng nào là âm. Kết quả sẽ luôn là 20 khi nó có một số chẵn: 6Nếu bạn gắn bó với việc so sánh thao tác modulo Python với 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.
Đây là một ví dụ: 7Mã này xác định 35, có hai tham số. 36 là danh sách các tên nên được chia thành các hàng. 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. 35 sẽ lặp qua 36 và bắt đầu một hàng mới sau khi nó đạt giá trị 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 Tiếp theo, bên trong vòng lặp, hàm gọi 53 để xuất 45 vào hàng hiện tại. Tham số 55 cho 53 là một chuỗi trống ( 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 53, sử dụng cú pháp định dạng đầu ra chuỗi mà Python cung cấp: 8Không cần đi vào quá nhiều chi tiết, cú pháp 59 bảo 53 làm như sau:Các phần quan trọng của mã này được tô sáng dưới đây: 9Mỗi lần thông qua vòng lặp, 70 được cập nhật dựa trên kết quả của 73. Giá trị 70 mới này được sử dụng để tăng 75 với mỗi lần lặp. Khi 70 đạt 04, 73 sẽ bằng 43 và 70 sẽ đặt lại về 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: 0Khi 70 được đặt lại về 43, 84 thay đổi thành màu ngẫu nhiên mới như được thấy dưới đây: 1Mã trong phần này sử dụng 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ị 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 ( 7) được sử dụng để có được tổng số chân được làm tròn xuống: 2Ở đây, một ví dụ về chức năng đang sử dụng: >>> 3Như bạn có thể thấy từ đầu ra, 88 trả về 85, đó là những inch còn lại mà weren chia đều thành chân. Kết quả của 90 là 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. 92 mất một số nguyên, 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: 4Phá vỡ điều này, bạn có thể thấy rằng chức năng thực hiện như sau:
Bạn có thể thấy cách nó hoạt động dưới đây: >>> 5Như bạn có thể thấy từ đầu ra, 88 trả về 85, đó là những inch còn lại mà weren chia đều thành chân. Kết quả của 90 là 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. 92 mất một số nguyên, 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 94, trong đó 95 là số phút trong một ngàyprime number. A prime number is any number that contains only two factors, 09 and itself. Some examples of prime numbers are 59, 42, 04, 89, 06, 07, 08,
09, and 10.Tính toán bất kỳ 96 còn lại với 97 6Sử dụng 96 để có được 99 chia đều và bất kỳ 00 nàoBạn có thể thấy cách nó hoạt động dưới đây: >>> 7Như bạn có thể thấy từ đầu ra, 88 trả về 85, đó là những inch còn lại mà weren chia đều thành chân. Kết quả của 90 là 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. 92 mất một số nguyên, 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 94, trong đó 95 là số phút trong một ngày 9Tính toán bất kỳ 96 còn lại với 97Sử dụng 96 để có được 99 chia đều và bất kỳ 00 nàoBạn có thể thấy cách nó hoạt động dưới đây: 0Thay vì cố gắng xác định căn bậc hai của 13, hàm sử dụng vòng 37 để xem 38. Miễn là 38, vòng lặp đã đạt đến căn bậc hai của 13.Bên trong vòng 37, toán tử modulo kiểm tra xem 13 có chia hết cho 70: 1Nếu 13 chia đều cho 70, thì 70 là yếu tố của 13 và một bộ phận của các yếu tố được thêm vào danh sách 28.Khi vòng lặp 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: 2Nếu có nhiều hơn một tuple tồn tại trong danh sách 28, thì 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 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à 04, thì 54 sẽ chuyển năm chữ cái để trở thành 55, 56 sẽ trở thành 57, v.v. Dưới đây bạn có thể thấy quá trình mã hóa cho văn bản 58 với sự thay đổi 04:Mật mã kết quả là 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 đó 61 là chỉ số của ký tự trong bảng chữ cái: 3Mậ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: 4Mã này xác định một hàm gọi là 62, có hai tham số bắt buộc và một tham số tùy chọn:
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 63 là ký tự chữ cái trong mã hóa ASCII: 5Hàm sau đó xác định ba biến để lưu trữ các ký tự 69 ASCII, các ký tự ____370 ASCII và kết quả mã hóa hoặc giải mã: 6Tiếp theo, nếu hàm đang được sử dụng để giải mã 63, thì nó sẽ nhân 64 với 61 để làm cho nó thay đổi ngược: 7Cuối cùng, 62 vòng lặp trên các ký tự riêng lẻ trong 63 và thực hiện các hành động sau đây cho mỗi 76:
Sau khi vòng lặp kết thúc lặp lại giá trị 63, 85 được trả về: 8Đây là mã đầy đủ một lần nữa: 4Bây giờ hãy chạy mã trong Python REPLED bằng văn bản 88 với sự thay đổi 89:>>> 0Kết quả được mã hóa là 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:>>> 1Kết quả được mã hóa là 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 58 được mã hóa bằng từ khóa 92:Đối với mỗi chữ cái của văn bản đầu vào, 58, một chữ cái từ từ khóa 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 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: 2Bạn có thể nhận thấy rằng chữ ký cho 96 khá giống với 62 từ phần trước: 3Sự khác biệt chính là, thay vì tham số 64, 96 có tham số 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 01. Dựa trên việc triển khai này, 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ư 62, 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ó: 4Trong 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: 5Ở đây, giá trị 05 được xác định dựa trên một chỉ mục được trả về từ 06. Chỉ mục này được sử dụng để chọn một chữ cái từ chuỗi 00, chẳng hạn như 08 từ 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 63 sẽ được mã hóa. Khi chỉ mục 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ó:
Hãy xem các bước này trong mã bên dưới: 6Bạ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 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 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: 7 22 đảm bảo rằng 46 của nhân vật không vượt quá 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ừ 70 và được thêm vào 26.Tại đây, mã đầy đủ của mật mã Vigenère một lần nữa: 2Bây giờ hãy tiếp tục và chạy nó trong Python Repls: >>> 9Tố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 caoTrong 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 39. Bạn cũng sẽ xem xét cách bạn có thể thêm 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' 39Trướ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ư 34 và 8 cũng như với 38. Bạn cũng có thể sử dụng toán tử modulo với 6 từ mô -đun 34. Bạn sử dụng 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 39 và toán tử modulo:>>> 0Tố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. >>> 1Tố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
>>> 2Tố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. >>> 3Tố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ỉnhMô 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 đè 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 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 50 ban đầu: 4Lớp 50 được khởi tạo với tham số 45 và bắt đầu bằng một danh sách trống, 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ó 55, có tham số 56 nên là danh sách các buổi học để thêm vào 54.Bây giờ, nếu bạn nhớ từ phần Đơn vị chuyển đổi ở trên, 58 đã sử dụng toán tử modulo Python để chuyển đổi 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: 5Bạn có thể sử dụng chức năng này với lớp 50 để hiển thị tổng số giờ mà 50 đã nghiên cứu. Kết hợp với lớp 50 ở trên, mã sẽ trông như thế này: 6Nế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: >>> 7Mã trên in ra tổng số giờ 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 54 để nhận 93 trước khi gọi 66.Tại đây, cách bạn có thể sửa đổi lớp 50 để đơn giản hóa mã: 8Bằng cách ghi đè 01 và 69, bạn có thể sử dụng phiên bản 50 với toán tử modulo. Tính toán 71 của 54 cũng được bao gồm trong lớp 50.Với những sửa đổi này, bạn có thể sử dụng một phiên bản 50 trực tiếp trong 66. Vì 93 không còn cần thiết, bạn có thể xóa nó: 9Tại đây, mã đầy đủ sau khi sửa đổi: 0Bây giờ, gọi mã trong Python Repl, bạn có thể thấy nó ngắn gọn hơn nhiều: >>> 1Mã trên in ra tổng số giờ 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 54 để nhận 93 trước khi gọi 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 đè 01 và 69, bạn có thể sử dụng phiên bản 50 với toán tử modulo. Tính toán 71 của 54 cũng được bao gồm trong lớp 50.Với những sửa đổi này, bạn có thể sử dụng một phiên bả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: 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 ++.. |