Dấu hiệu phần trăm có nghĩa là gì?
Đó là một nhà điều hành trong Python có thể có nghĩa là một số điều tùy thuộc vào bối cảnh. Rất nhiều những gì tiếp theo đã được đề cập [hoặc gợi ý] trong các câu trả lời khác nhưng tôi nghĩ rằng nó có thể hữu ích để cung cấp một bản tóm tắt rộng rãi hơn.
x == y * [x // y] + [x % y]
9 cho các số: Hoạt động / phần còn lại / phần còn lại của modulo
x == y * [x // y] + [x % y]
Dấu hiệu phần trăm là một nhà điều hành trong Python. Nó được mô tả là:
x % y remainder of x / y
Vì vậy, nó cung cấp cho bạn phần còn lại/phần còn lại nếu bạn "phân chia sàn" x cho y. Nói chung [ít nhất là trong Python] được đưa ra một số
>>> 5 // 2
2
>>> 5 % 2
1
>>> 2 * [5 // 2] + [5 % 2]
5
0 và một ước số >>> 5 // 2
2
>>> 5 % 2
1
>>> 2 * [5 // 2] + [5 % 2]
5
1:x == y * [x // y] + [x % y]
Ví dụ: nếu bạn chia 5 cho 2:
>>> 5 // 2
2
>>> 5 % 2
1
>>> 2 * [5 // 2] + [5 % 2]
5
Nói chung, bạn sử dụng thao tác modulo để kiểm tra xem một số chia đều cho một số khác, đó là bởi vì bội số của một số modulo mà số trả về 0:
>>> 15 % 5 # 15 is 3 * 5
0
>>> 81 % 9 # 81 is 9 * 9
0
Đó là cách nó được sử dụng trong ví dụ của bạn, nó không thể là một nguyên tố nếu nó là bội số của một số khác [ngoại trừ chính nó và một], đó là những gì điều này làm:
if n % x == 0:
break
Nếu bạn cảm thấy rằng
>>> 5 // 2
2
>>> 5 % 2
1
>>> 2 * [5 // 2] + [5 % 2]
5
2 không mô tả lắm, bạn có thể đặt nó vào một chức năng khác với tên mô tả hơn:def is_multiple[number, divisor]:
return number % divisor == 0
...
if is_multiple[n, x]:
break
Thay vì
>>> 5 // 2
2
>>> 5 % 2
1
>>> 2 * [5 // 2] + [5 % 2]
5
3, nó cũng có thể được đặt tên >>> 5 // 2
2
>>> 5 % 2
1
>>> 2 * [5 // 2] + [5 % 2]
5
4 hoặc một cái gì đó tương tự. Đó là những gì được thử nghiệm ở đây.Tương tự như nó thường được sử dụng để xác định xem một số là "lẻ" hay "thậm chí":
def is_odd[number]:
return number % 2 == 1
def is_even[number]:
return number % 2 == 0
Và trong một số trường hợp, nó cũng được sử dụng để lập chỉ mục mảng/danh sách khi muốn có hành vi bao quanh [đạp xe], thì bạn chỉ cần điều chỉnh "chỉ mục" theo "độ dài của mảng" để đạt được điều đó:
>>> l = [0, 1, 2]
>>> length = len[l]
>>> for index in range[10]:
... print[l[index % length]]
0
1
2
0
1
2
0
1
2
0
Lưu ý rằng cũng có một chức năng cho toán tử này trong thư viện tiêu chuẩn
>>> 5 // 2
2
>>> 5 % 2
1
>>> 2 * [5 // 2] + [5 % 2]
5
5 [và bí danh >>> 5 // 2
2
>>> 5 % 2
1
>>> 2 * [5 // 2] + [5 % 2]
5
6]:>>> import operator
>>> operator.mod[5, 2] # equivalent to 5 % 2
1
Nhưng cũng có nhiệm vụ tăng cường
>>> 5 // 2
2
>>> 5 % 2
1
>>> 2 * [5 // 2] + [5 % 2]
5
7 để gán kết quả trở lại biến:>>> a = 5
>>> a %= 2 # identical to: a = a % 2
>>> a
1
x == y * [x // y] + [x % y]
9 cho các chuỗi: ________ 29 định dạng chuỗi kiểu
x == y * [x // y] + [x % y]
Đối với các chuỗi, ý nghĩa hoàn toàn khác nhau, có một cách [theo ý kiến của tôi là hạn chế và xấu nhất] để thực hiện định dạng chuỗi:
x == y * [x // y] + [x % y]
0Ở đây
x == y * [x // y] + [x % y]
9 trong chuỗi đại diện cho một trình giữ chỗ theo sau là một đặc tả định dạng. Trong trường hợp này, tôi đã sử dụng >>> 15 % 5 # 15 is 3 * 5
0
>>> 81 % 9 # 81 is 9 * 9
0
1 có nghĩa là nó mong đợi một chuỗi. Sau đó, chuỗi được theo sau bởi một x == y * [x // y] + [x % y]
9 chỉ ra rằng chuỗi ở phía bên trái sẽ được định dạng bởi phía bên phải. Trong trường hợp này, >>> 15 % 5 # 15 is 3 * 5
0
>>> 81 % 9 # 81 is 9 * 9
0
1 đầu tiên được thay thế bằng đối số đầu tiên >>> 15 % 5 # 15 is 3 * 5
0
>>> 81 % 9 # 81 is 9 * 9
0
4 và >>> 15 % 5 # 15 is 3 * 5
0
>>> 81 % 9 # 81 is 9 * 9
0
1 thứ hai được thay thế bằng đối số thứ hai [>>> 15 % 5 # 15 is 3 * 5
0
>>> 81 % 9 # 81 is 9 * 9
0
6].Lưu ý rằng có nhiều cách tốt hơn [có thể dựa trên ý kiến] để định dạng chuỗi:
x == y * [x // y] + [x % y]
1x == y * [x // y] + [x % y]
9 Trong Jupyter/Ipython: Các lệnh ma thuật
x == y * [x // y] + [x % y]
Để trích dẫn các tài liệu:
Đối với người dùng Jupyter: MAGICS là cụ thể và được cung cấp bởi nhân Ipython. Liệu các phép thuật có sẵn trên kernel hay không là một quyết định được đưa ra bởi nhà phát triển kernel trên cơ sở mỗi hạt nhân. Để hoạt động đúng, phép thuật phải sử dụng phần tử cú pháp không hợp lệ trong ngôn ngữ cơ bản. Ví dụ, hạt nhân IPYTHON sử dụng phần tử cú pháp
9 cho phép thuật vìx == y * [x // y] + [x % y]
9 không phải là một toán tử chưa được điều hành hợp lệ trong Python. Trong khi, phần tử cú pháp có ý nghĩa trong các ngôn ngữ khác.x == y * [x // y] + [x % y]
Điều này thường được sử dụng trong máy tính xách tay Jupyter và tương tự:
x == y * [x // y] + [x % y]
2Toán tử x == y * [x // y] + [x % y]
9 trên các mảng [trong hệ sinh thái Numpy / Pandas]
x == y * [x // y] + [x % y]
Toán tử
x == y * [x // y] + [x % y]
9 vẫn là toán tử modulo khi được áp dụng cho các mảng này, nhưng nó trả về một mảng chứa phần còn lại của mỗi phần tử trong mảng:x == y * [x // y] + [x % y]
3Tùy chỉnh toán tử x == y * [x // y] + [x % y]
9 cho các lớp học của riêng bạn
x == y * [x // y] + [x % y]
Tất nhiên bạn có thể tùy chỉnh cách các lớp học của riêng bạn hoạt động khi nhà điều hành
x == y * [x // y] + [x % y]
9 được áp dụng cho họ. Nói chung, bạn chỉ nên sử dụng nó để thực hiện các hoạt động Modulo! Nhưng đó là một hướng dẫn, không phải là một quy tắc khó khăn.Chỉ để cung cấp một ví dụ đơn giản cho thấy cách thức hoạt động của nó:
x == y * [x // y] + [x % y]
4Ví dụ này không thực sự hữu ích, nó chỉ in và sau đó ủy thác toán tử cho giá trị được lưu trữ, nhưng nó cho thấy
if n % x == 0:
break
4 được gọi khi x == y * [x // y] + [x % y]
9 được áp dụng cho một thể hiện:x == y * [x // y] + [x % y]
5Lưu ý rằng nó cũng hoạt động cho
>>> 5 // 2
2
>>> 5 % 2
1
>>> 2 * [5 // 2] + [5 % 2]
5
7 mà không cần phải thực hiện if n % x == 0:
break
7:x == y * [x // y] + [x % y]
6Tuy nhiên, bạn cũng có thể thực hiện
if n % x == 0:
break
7 một cách rõ ràng để ghi đè lên nhiệm vụ tăng cường:x == y * [x // y] + [x % y]
7Bây giờ
>>> 5 // 2
2
>>> 5 % 2
1
>>> 2 * [5 // 2] + [5 % 2]
5
7 được ghi đè rõ ràng để làm việc tại chỗ:x == y * [x // y] + [x % y]
8