Python cung cấp toán tử trừ
>>> 2.0 - 1 1.0 >>> 1 - 2.2 -1.2000000000000002 >>> 44.0 - 2.0 42.01 để trừ đi đối tượng này với một đối tượng khác. Các ngữ nghĩa của phép trừ phụ thuộc vào các loại dữ liệu của toán hạng. Ví dụ, trừ hai số nguyên thực hiện hoạt động khác biệt số học trong khi trừ hai bộ thực hiện hoạt động khác biệt đã đặt. Giá trị trả về cụ thể của toán tử trừ được xác định trong một loại dữ liệu Phương pháp ma thuật
>>> 2.0 - 1 1.0 >>> 1 - 2.2 -1.2000000000000002 >>> 44.0 - 2.0 42.02.
Nhà điều hành trừ Python - Deep Dive
Hãy xem các ví dụ sau đây!
Ví dụ
Toán tử - toán tử số nguyên mang lại một số nguyên khác về sự khác biệt toán học của cả hai toán hạng:
>>> 2 - 2 0 >>> 2 - 3 -1 >>> -99 - [-1] -98
Nếu ít nhất một trong các toán hạng là giá trị nổi, kết quả cũng là một chiếc phao nổi là truyền nhiễm!
>>> 2.0 - 1 1.0 >>> 1 - 2.2 -1.2000000000000002 >>> 44.0 - 2.0 42.0
Bạn cũng có thể thực hiện toán tử trừ trên các bộ Python. Trong trường hợp này, nó tính toán sự khác biệt đã thiết lập, tức là, nó tạo ra một bộ mới với các phần tử trong phần đầu tiên nhưng không phải trong toán hạng thứ hai.
Đây là một ví dụ:
>>> {1, 2, 3} - {1, 2} {3} >>> {'Alice', 'Bob'} - {1, 'Bob'} {'Alice'} >>> {1, 2, 3} - {1, 2, 3, 4, 5} set[]
Điều gì sẽ xảy ra nếu hai toán hạng có loại dữ liệu không tương thích? Ví dụ: nếu bạn cố gắng trừ một tập hợp từ một chuỗi?
>>> 'hello' - {1, 2, 3} Traceback [most recent call last]: File "", line 1, in 'hello' - {1, 2, 3} TypeError: unsupported operand type[s] for -: 'str' and 'set'
Kết quả của việc bổ sung không tương thích là
>>> 2.0 - 1 1.0 >>> 1 - 2.2 -1.2000000000000002 >>> 44.0 - 2.0 42.03. Bạn có thể sửa nó bằng cách chỉ sử dụng các loại dữ liệu tương thích cho hoạt động.
Bạn có thể sử dụng toán tử trừ trên các đối tượng tùy chỉnh không? Đúng!
Phương pháp phép thuật trừ Python
Để sử dụng toán tử trừ trên các đối tượng tùy chỉnh, hãy xác định phương thức
>>> 2.0 - 1 1.0 >>> 1 - 2.2 -1.2000000000000002 >>> 44.0 - 2.0 42.02 Dunder có hai đối số:
>>> 2.0 - 1 1.0 >>> 1 - 2.2 -1.2000000000000002 >>> 44.0 - 2.0 42.05 và
>>> 2.0 - 1 1.0 >>> 1 - 2.2 -1.2000000000000002 >>> 44.0 - 2.0 42.06 và trả về kết quả của
>>> 2.0 - 1 1.0 >>> 1 - 2.2 -1.2000000000000002 >>> 44.0 - 2.0 42.07. Bạn có thể xác định hành vi cụ thể bằng cách sử dụng các thuộc tính [dữ liệu] được duy trì trong đối tượng này.
Trong mã sau, bạn tạo một giỏ từ
>>> 2.0 - 1 1.0 >>> 1 - 2.2 -1.2000000000000002 >>> 44.0 - 2.0 42.08 nhưng sau đó bạn xóa nội dung trong một giỏ khác
>>> 2.0 - 1 1.0 >>> 1 - 2.2 -1.2000000000000002 >>> 44.0 - 2.0 42.09 khỏi nó, ví dụ như để ngăn chặn việc mua gấp đôi:
class Basket: def __init__[self, goods]: self.goods = goods def __sub__[self, other]: return Basket[self.goods - other.goods] my_basket = Basket[{'coffee', 'banana', 'bred'}] to_remove = Basket[{'bred'}] updated_basket = my_basket - to_remove print[updated_basket.goods]
Đầu ra của đoạn mã này là giỏ mới:
{'banana', 'coffee'}
Mã này bao gồm các bước sau:
- Tạo lớp
>>> {1, 2, 3} - {1, 2} {3} >>> {'Alice', 'Bob'} - {1, 'Bob'} {'Alice'} >>> {1, 2, 3} - {1, 2, 3, 4, 5} set[]
0 giữ nội dung danh sách để lưu trữ một số hàng hóa. - Xác định phương pháp ma thuật
>>> {1, 2, 3} - {1, 2} {3} >>> {'Alice', 'Bob'} - {1, 'Bob'} {'Alice'} >>> {1, 2, 3} - {1, 2, 3, 4, 5} set[]
1 tạo ra một giỏ mới bằng cách kết hợp các bộ hàng hóa từ hai giỏ của Toán tử. Lưu ý rằng chúng tôi dựa vào toán tử trừ đã được triển khai trên các bộ, tức là đặt sự khác biệt, để thực sự triển khai toán tử trừ cho các giỏ. - Chúng tôi tạo hai giỏ
>>> {1, 2, 3} - {1, 2} {3} >>> {'Alice', 'Bob'} - {1, 'Bob'} {'Alice'} >>> {1, 2, 3} - {1, 2, 3, 4, 5} set[]
2 và>>> {1, 2, 3} - {1, 2} {3} >>> {'Alice', 'Bob'} - {1, 'Bob'} {'Alice'} >>> {1, 2, 3} - {1, 2, 3, 4, 5} set[]
3 và tính toán sự khác biệt giữa chúng với một giỏ mới>>> {1, 2, 3} - {1, 2} {3} >>> {'Alice', 'Bob'} - {1, 'Bob'} {'Alice'} >>> {1, 2, 3} - {1, 2, 3, 4, 5} set[]
4.
Bạn có thể trừ các danh sách trong Python?
Python không cho phép hỗ trợ tích hợp cho hoạt động khác biệt danh sách, tức là, tạo một danh sách mới với các yếu tố từ toán hạng danh sách đầu tiên nhưng không có các yếu tố từ toán hạng danh sách thứ hai. Thay vào đó, để trừ
>>> {1, 2, 3} - {1, 2} {3} >>> {'Alice', 'Bob'} - {1, 'Bob'} {'Alice'} >>> {1, 2, 3} - {1, 2, 3, 4, 5} set[]5 từ Danh sách
>>> {1, 2, 3} - {1, 2} {3} >>> {'Alice', 'Bob'} - {1, 'Bob'} {'Alice'} >>> {1, 2, 3} - {1, 2, 3, 4, 5} set[]6, hãy sử dụng câu lệnh Danh sách hiểu như một bộ lọc
>>> {1, 2, 3} - {1, 2} {3} >>> {'Alice', 'Bob'} - {1, 'Bob'} {'Alice'} >>> {1, 2, 3} - {1, 2, 3, 4, 5} set[]7.list difference operation, i.e., creating a new list with elements from the first list operand but without the elements from the second list operand. Instead, to subtract
>>> {1, 2, 3} - {1, 2} {3} >>> {'Alice', 'Bob'} - {1, 'Bob'} {'Alice'} >>> {1, 2, 3} - {1, 2, 3, 4, 5} set[]5 from list
>>> {1, 2, 3} - {1, 2} {3} >>> {'Alice', 'Bob'} - {1, 'Bob'} {'Alice'} >>> {1, 2, 3} - {1, 2, 3, 4, 5} set[]6, use the list comprehension statement as a filter
>>> {1, 2, 3} - {1, 2} {3} >>> {'Alice', 'Bob'} - {1, 'Bob'} {'Alice'} >>> {1, 2, 3} - {1, 2, 3, 4, 5} set[]7.
Đây là một ví dụ về mã:
lst_1 = [1, 2, 3, 4, 5, 6] lst_2 = [1, 2, 3] difference = [x for x in lst_1 if not x in lst_2]
Đầu ra là:
print[difference] # Output: [4, 5, 6]
Mã này sử dụng khả năng hiểu danh sách là một cách nhỏ gọn để tạo danh sách. Công thức đơn giản là
>>> {1, 2, 3} - {1, 2} {3} >>> {'Alice', 'Bob'} - {1, 'Bob'} {'Alice'} >>> {1, 2, 3} - {1, 2, 3, 4, 5} set[]8.
- Biểu thức: Phải làm gì với mỗi yếu tố danh sách? What to do with each list element?
- Bối cảnh: Những yếu tố nào để chọn? Bối cảnh bao gồm một số lượng tùy ý của các tuyên bố
>>> {1, 2, 3} - {1, 2} {3} >>> {'Alice', 'Bob'} - {1, 'Bob'} {'Alice'} >>> {1, 2, 3} - {1, 2, 3, 4, 5} set[]
9 và>>> 'hello' - {1, 2, 3} Traceback [most recent call last]: File "", line 1, in 'hello' - {1, 2, 3} TypeError: unsupported operand type[s] for -: 'str' and 'set'
0. What elements to select? The context consists of an arbitrary number of>>> {1, 2, 3} - {1, 2} {3} >>> {'Alice', 'Bob'} - {1, 'Bob'} {'Alice'} >>> {1, 2, 3} - {1, 2, 3, 4, 5} set[]
9 and>>> 'hello' - {1, 2, 3} Traceback [most recent call last]: File "", line 1, in 'hello' - {1, 2, 3} TypeError: unsupported operand type[s] for -: 'str' and 'set'
0 statements.
Bạn có thể tìm hiểu thêm về sự hiểu biết danh sách trong hướng dẫn chuyên sâu này với video:
*** Danh sách hiểu biết - Hướng dẫn cuối cùng ***
Nhưng trước khi chúng tôi tiếp tục, tôi đã hào hứng giới thiệu cho bạn cuốn sách Python Oneer mới của tôi, Python One-Liners [Amazon Link]. [Amazon Link].
Nếu bạn thích một lớp lót, bạn sẽ yêu thích cuốn sách. Nó sẽ dạy cho bạn mọi thứ cần biết về một dòng mã Python duy nhất. Nhưng nó cũng là một phần giới thiệu về khoa học máy tính, khoa học dữ liệu, học máy và thuật toán. Vũ trụ trong một dòng Python duy nhất!single line of Python code. But it’s also an introduction to computer science, data science, machine learning, and algorithms. The universe in a single line of Python!
Cuốn sách được phát hành vào năm 2020 với nhà xuất bản sách chương trình đẳng cấp thế giới Nostarch Press [San Francisco].
Liên kết: //nostarch.com/pythononeliners
Chương trình trừ Python với đầu vào của người dùng
Để tạo một chương trình trừ đơn giản trong Python lấy đầu vào của người dùng và trừ các số được cung cấp, bạn có thể sử dụng bốn bước sau:
- Nhận đầu vào của người dùng dưới dạng chuỗi bằng hàm
>>> 'hello' - {1, 2, 3} Traceback [most recent call last]: File "", line 1, in 'hello' - {1, 2, 3} TypeError: unsupported operand type[s] for -: 'str' and 'set'
1 tích hợp và lưu trữ kết quả trong các biến>>> 'hello' - {1, 2, 3} Traceback [most recent call last]: File "", line 1, in 'hello' - {1, 2, 3} TypeError: unsupported operand type[s] for -: 'str' and 'set'
2 và>>> 'hello' - {1, 2, 3} Traceback [most recent call last]: File "", line 1, in 'hello' - {1, 2, 3} TypeError: unsupported operand type[s] for -: 'str' and 'set'
3. - Chuyển đổi đầu vào của người dùng chuỗi thành các loại số bằng cách sử dụng các hàm tạo
>>> 'hello' - {1, 2, 3} Traceback [most recent call last]: File "", line 1, in 'hello' - {1, 2, 3} TypeError: unsupported operand type[s] for -: 'str' and 'set'
4 hoặc>>> 'hello' - {1, 2, 3} Traceback [most recent call last]: File "", line 1, in 'hello' - {1, 2, 3} TypeError: unsupported operand type[s] for -: 'str' and 'set'
5. - Trừ các giá trị số bằng toán tử trừ
>>> 'hello' - {1, 2, 3} Traceback [most recent call last]: File "", line 1, in 'hello' - {1, 2, 3} TypeError: unsupported operand type[s] for -: 'str' and 'set'
6. - In kết quả vào vỏ Python.
Dưới đây là bốn bước trong mã Python:
# Python subtraction program with user input # 1. Get string user inputs representing integers num_1 = input['First number: '] num_2 = input['Second number: '] # 2. Converting strings to ints num_1 = int[num_1] num_2 = int[num_2] # 3. Subtracting numbers result = num_1 - num_2 # 4. Display the result print[num_1, '-', num_2, '=', result]
Ở đây, một ví dụ thực thi mã trong đó tôi đặt vào số nguyên 44 và 2 và tính toán sự khác biệt bằng toán tử trừ:
First number: 44 Second number: 2 44 - 2 = 42
Bạn có thể xâu chuỗi hai toán tử trừ. Ví dụ, biểu thức
>>> 'hello' - {1, 2, 3} Traceback [most recent call last]: File "", line 1, in 'hello' - {1, 2, 3} TypeError: unsupported operand type[s] for -: 'str' and 'set'7 trước tiên sẽ tính toán chênh lệch giữa
>>> 'hello' - {1, 2, 3} Traceback [most recent call last]: File "", line 1, in 'hello' - {1, 2, 3} TypeError: unsupported operand type[s] for -: 'str' and 'set'8 và
>>> 'hello' - {1, 2, 3} Traceback [most recent call last]: File "", line 1, in 'hello' - {1, 2, 3} TypeError: unsupported operand type[s] for -: 'str' and 'set'9 và sau đó trừ
class Basket: def __init__[self, goods]: self.goods = goods def __sub__[self, other]: return Basket[self.goods - other.goods] my_basket = Basket[{'coffee', 'banana', 'bred'}] to_remove = Basket[{'bred'}] updated_basket = my_basket - to_remove print[updated_basket.goods]0 khỏi đối tượng kết quả. Vì vậy, nó giống hệt về mặt ngữ nghĩa với
class Basket: def __init__[self, goods]: self.goods = goods def __sub__[self, other]: return Basket[self.goods - other.goods] my_basket = Basket[{'coffee', 'banana', 'bred'}] to_remove = Basket[{'bred'}] updated_basket = my_basket - to_remove print[updated_basket.goods]1.
Ở đây, một ví dụ tối thiểu:
>>> 2.0 - 1 1.0 >>> 1 - 2.2 -1.2000000000000002 >>> 44.0 - 2.0 42.00
Hướng dẫn được đề xuất: Làm thế nào để trừ hai danh sách yếu tố khôn ngoan trong Python?Recommended Tutorial: How to Subtract Two Lists Element-Wise in Python?
Toán tử số học
Các toán tử số học là các phím tắt cú pháp để thực hiện các hoạt động toán học cơ bản trên các số.
Tên | Sự mô tảThí dụ|||
+ | Phép cộng | Tính tổng của hai toán hạng | class Basket: def __init__[self, goods]: self.goods = goods def __sub__[self, other]: return Basket[self.goods - other.goods] my_basket = Basket[{'coffee', 'banana', 'bred'}] to_remove = Basket[{'bred'}] updated_basket = my_basket - to_remove print[updated_basket.goods]2 |
- | Phép trừ | Trừ toán hạng thứ hai từ toán hạng đầu tiên | class Basket: def __init__[self, goods]: self.goods = goods def __sub__[self, other]: return Basket[self.goods - other.goods] my_basket = Basket[{'coffee', 'banana', 'bred'}] to_remove = Basket[{'bred'}] updated_basket = my_basket - to_remove print[updated_basket.goods]3 |
* | Phép nhân | Nhân thứ nhất với toán hạng thứ hai | class Basket: def __init__[self, goods]: self.goods = goods def __sub__[self, other]: return Basket[self.goods - other.goods] my_basket = Basket[{'coffee', 'banana', 'bred'}] to_remove = Basket[{'bred'}] updated_basket = my_basket - to_remove print[updated_basket.goods]4 |
/ | Phân công | Chia thứ nhất cho toán hạng thứ hai | class Basket: def __init__[self, goods]: self.goods = goods def __sub__[self, other]: return Basket[self.goods - other.goods] my_basket = Basket[{'coffee', 'banana', 'bred'}] to_remove = Basket[{'bred'}] updated_basket = my_basket - to_remove print[updated_basket.goods]5 |
Phần trăm | Modulo | Tính toán phần còn lại khi chia phần thứ nhất cho toán hạng thứ hai | class Basket: def __init__[self, goods]: self.goods = goods def __sub__[self, other]: return Basket[self.goods - other.goods] my_basket = Basket[{'coffee', 'banana', 'bred'}] to_remove = Basket[{'bred'}] updated_basket = my_basket - to_remove print[updated_basket.goods]6 |
// | Phân khu số nguyên, phân chia sàn | Chia toán hạng đầu tiên cho toán hạng thứ hai và làm tròn kết quả cho số nguyên tiếp theo | class Basket: def __init__[self, goods]: self.goods = goods def __sub__[self, other]: return Basket[self.goods - other.goods] my_basket = Basket[{'coffee', 'banana', 'bred'}] to_remove = Basket[{'bred'}] updated_basket = my_basket - to_remove print[updated_basket.goods]7 |
** | Số mũ | Nâng cao toán hạng đầu tiên cho sức mạnh của toán hạng thứ hai | class Basket: def __init__[self, goods]: self.goods = goods def __sub__[self, other]: return Basket[self.goods - other.goods] my_basket = Basket[{'coffee', 'banana', 'bred'}] to_remove = Basket[{'bred'}] updated_basket = my_basket - to_remove print[updated_basket.goods]8 |
Trong khi làm việc như một nhà nghiên cứu trong các hệ thống phân tán, Tiến sĩ Christian Mayer đã tìm thấy tình yêu của mình đối với việc dạy các sinh viên khoa học máy tính.
Để giúp học sinh đạt được thành công cao hơn của Python, ông đã thành lập trang web giáo dục chương trình Finxter.com. Ông là tác giả của cuốn sách lập trình phổ biến Python Oneer [Nostarch 2020], đồng tác giả của loạt sách Break Break Python, những cuốn sách tự xuất bản, người đam mê khoa học máy tính, freelancer và chủ sở hữu của một trong 10 blog Python lớn nhất trên toàn thế giới.
Niềm đam mê của ông là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ tăng cường các kỹ năng của họ. Bạn có thể tham gia học viện email miễn phí của anh ấy ở đây.