Giải thích các toán tử số học trong python

Tuy nhiên, có rất nhiều thứ bạn có thể làm với các toán tử số học trong Python. Trong hướng dẫn này, bạn sẽ học cách sử dụng rộng rãi các toán tử số học

Trước khi bắt đầu, hãy nhanh chóng tìm hiểu ý nghĩa của các nhóm ưu tiên và ưu tiên số học

Nhóm ưu tiên

Khi có nhiều phép tính số học được xâu chuỗi lại với nhau, trình biên dịch Python cần biết phép tính nào sẽ được đánh giá trước

1 + 2 * 3 ** 4 / 5

Đây là nơi ưu tiên được sử dụng

Nhóm ưu tiên của toán tử số học chỉ định biểu thức thứ tự nào được đánh giá

Đây là nhóm ưu tiên của các toán tử số học trong Python. Toán tử càng cao trên bàn, mức độ ưu tiên càng cao

Toán tửÝ nghĩa
x + y
69Dấu ngoặc đơn
x + y
70Số mũ
x + y
71,
x + y
72,
x + y
73,
x + y
74Phép nhân, chia, phép chia tầng, môđun
x + y
75,
x + y
76Cộng, trừ

Bây giờ bạn đã hiểu thế nào là ưu tiên, đã đến lúc tìm hiểu về các toán tử số học trong Python

Phép cộng

Trong Python, bạn có thể cộng hai giá trị số với nhau bằng toán tử cộng [+]

x + y

Ví dụ

x + y
0

Toán tử +=

Khi thêm biến, bạn có thể kết hợp toán tử cộng [+] với toán tử gán [=] để tạo thành toán tử gán cộng [+=]

x + y
1

Đây là cách viết tắt của

x + y
2

Ví dụ

x + y
3

Quyền ưu tiên

Toán tử cộng [+] thuộc nhóm ưu tiên thấp nhất với phép trừ

Điều này có nghĩa là bất kỳ hoạt động số học nào khác được thực hiện trước

Ví dụ

x + y
4

Ở đây 2 * 3 được tính trước khi cộng nó với 1

Nói cách khác, trình biên dịch Python xem biểu thức trên là

x + y
5

Trường hợp bất kỳ biểu thức nào bên trong dấu ngoặc đơn được tính trước

Bây giờ bạn đã hiểu những kiến ​​thức cơ bản về toán tử cộng trong Python

Tiếp theo, chúng ta hãy xem cách sử dụng phép cộng nâng cao hơn

Phương thức __add__[]

Trong Python, bạn có thể cộng các kiểu số với nhau để tạo ra một giá trị số mới biểu thị tổng của hai

Điều này có thể thực hiện được nhờ phương thức __add__[] được triển khai đằng sau hậu trường

Trên thực tế, bất cứ khi nào bạn sử dụng toán tử +, bạn thực sự đang gọi phương thức __add__[] của đối tượng

Bạn có thể xác minh rằng đây là trường hợp bằng cách chạy thử nghiệm đơn giản

x + y
6

Hiểu điều này là hữu ích trong một thời điểm

Trong Python, bạn có thể tạo một loại tùy chỉnh bằng cách triển khai một lớp chỉ định loại

Ví dụ: hãy tạo một lớp Cân nặng

x + y
7

Bây giờ, hãy xem điều gì sẽ xảy ra khi bạn cố gắng cộng hai đối tượng Trọng lượng lại với nhau

x + y
0

Điều này dẫn đến một lỗi

x + y
1

Lỗi cho biết bạn không thể sử dụng + trên hai đối tượng Trọng lượng

Đây không phải là một bất ngờ

Làm thế nào trình thông dịch Python thậm chí có thể biết ý nghĩa của việc cộng hai trọng số lại với nhau?

Nhưng có một cách để bạn thực hiện công việc này

Để hỗ trợ thêm các loại tùy chỉnh trong Python, hãy triển khai phương thức __add__[] vào lớp tùy chỉnh

Chẳng hạn, hãy tạo khả năng cộng các đối tượng Trọng lượng lại với nhau bằng cách tính tổng số kilôgam của các đối tượng

x + y
2

Phương thức __add__[] lấy hai đối tượng Weight

  • bản thân, phía bên tay trái của hoạt động
  • otherWeight, phía bên tay phải của hoạt động

Sau đó, nó tính tổng số kg trọng lượng, tạo một đối tượng Trọng lượng mới và trả về nó

Bây giờ bạn có thể cộng hai đối tượng Weight lại với nhau để tạo đối tượng Weight lớn hơn chẳng hạn

x + y
0

đầu ra

x + y
4

Khá tiện dụng phải không nào?

Bây giờ bạn đã hiểu cách cộng hai đối tượng tùy chỉnh với nhau trong Python bằng phương thức __add__

Nhưng nếu đối tượng bên trái và bên phải không cùng loại thì sao?

Thêm các loại khác nhau

Hãy thử thêm một đối tượng Weight và một int

x + y
5

Điều này dẫn đến lỗi sau

x + y
6

Điều này là do chúng tôi chưa chỉ định điều gì sẽ xảy ra khi thêm Trọng số vào một đối tượng khác, chẳng hạn như một int

Để hỗ trợ thêm các loại khác nhau, bạn cần mở rộng triển khai phương thức __add__[]

  • Nếu vế phải là một số nguyên, chúng ta có thể thêm nó trực tiếp vào số kilogam của đối tượng Trọng lượng
  • Nếu phía bên tay phải không phải là một số nguyên, chúng tôi cho rằng đó là Trọng số. Vì vậy, chúng ta cần truy cập số kg trước khi thêm chúng vào phía bên trái

Đây là những gì lớp cập nhật trông giống như

x + y
7

Bây giờ bạn có thể cộng các đối tượng Weight và int lại với nhau

x + y
8

đầu ra

x + y
9

Nhưng có một vấn đề nhỏ

Khi bạn đảo ngược thứ tự của phép cộng

x + y
00

Có một lỗi, mặc dù người ta mong đợi nó hoạt động

x + y
01

Bây giờ, hãy nghĩ về lý do tại sao điều này xảy ra

Như bạn đã biết, gọi a + b cũng giống như gọi a. __thêm__[b]

Trong đoạn mã bị lỗi, bạn đang gọi 200 + w1, nghĩa là [200]. __thêm__[w1]

Bây giờ, đây là vấn đề

Cố gắng thêm một đối tượng Weight vào một đối tượng int không hoạt động vì int không biết gì về hạng Weight của chúng ta. Điều đó có nghĩa là phương thức __add__ trong lớp int không xử lý việc thêm các đối tượng Trọng lượng

Để khắc phục điều này, bạn cần sửa đổi cách triển khai gốc của kiểu int

Nhưng điều này là không nên

Thay vào đó, Python có một phương thức __radd__[] tích hợp sẵn mà bạn có thể sử dụng để hoán đổi thứ tự của phép cộng

Phương thức __radd__[]

Phương thức __radd__[] là viết tắt của “bổ sung đúng”

ý tưởng thật đơn giản

  • Nếu a + b không thành công, hãy gọi b. __radd__[a] được triển khai sao cho a + b không gây ra sự cố

Hãy triển khai phương thức __radd__[] cho lớp Trọng lượng

x + y
02

Bây giờ bạn kiểm tra xem nó có hoạt động không

x + y
03

đầu ra

x + y
4

Đáng kinh ngạc

Bây giờ bạn đã hiểu cách hoạt động của phép cộng trong Python, hãy chuyển sang phép trừ

phép trừ

Trong Python, bạn có thể trừ hai giá trị số với nhau bằng cách sử dụng toán tử trừ [-]

x + y
05

Ví dụ

x + y
06

Toán tử -=

Khi giảm biến, bạn có thể kết hợp toán tử trừ [-] với toán tử gán [=] để tạo thành toán tử gán trừ [-=]

x + y
07

Đây là cách viết tắt của

x + y
08

Ví dụ

x + y
09

Quyền ưu tiên

Toán tử trừ thuộc nhóm ưu tiên thấp nhất với phép cộng

Điều này có nghĩa là bất kỳ hoạt động số học nào khác được tính trước

Ví dụ

x + y
10

Ở đây 2 * 3 được tính trước khi lấy 1 trừ đi

Nói cách khác, trình biên dịch Python xem biểu thức trên là

x + y
11

Chúng ta hãy xem xét một số cách sử dụng nâng cao của toán tử trừ

Phương thức __sub__[]

Trong Python, bạn có thể trừ hai loại số với nhau để tạo ra một giá trị mới thể hiện sự khác biệt giữa hai loại

Điều này có thể thực hiện được nhờ phương thức __sub__[] đằng sau hậu trường

Nguyên tắc hoạt động hoàn toàn giống với phương thức __add__[] ở phần trước

Bất cứ khi nào bạn sử dụng toán tử –, bạn thực sự đang gọi phương thức __sub__[]

x + y
12

Trong Python, bạn có thể tạo một loại tùy chỉnh bằng cách triển khai một lớp chỉ định loại

Ví dụ: hãy tiếp tục với lớp Trọng lượng được triển khai trong chương trước

x + y
7

Bây giờ, hãy xem điều gì sẽ xảy ra khi bạn cố gắng trừ hai đối tượng Trọng lượng

x + y
14

Điều này dẫn đến lỗi sau

x + y
15

Lỗi cho biết bạn không thể sử dụng – trên hai đối tượng Trọng lượng

Tuy nhiên, có một cách để bạn thực hiện công việc này

Để hỗ trợ phép trừ với các loại tùy chỉnh, hãy triển khai phương thức __sub__[] vào lớp tùy chỉnh

Chẳng hạn, hãy để có thể trừ các đối tượng Trọng lượng với nhau bằng cách trừ đi số kilôgam của các đối tượng

x + y
16

Phương thức __sub__[] lấy hai đối tượng Weight

  • bản thân, phía bên tay trái của hoạt động
  • otherWeight, phía bên tay phải của hoạt động

Nó trừ đi số kg của trọng lượng, tạo một đối tượng Trọng lượng mới và trả về nó

Bây giờ bạn có thể trừ hai đối tượng Trọng lượng để lấy chênh lệch trọng lượng dưới dạng đối tượng Trọng lượng mới

x + y
14

đầu ra

x + y
18

Nhưng nếu đối tượng bên trái và bên phải không cùng loại thì sao?

Trừ các loại khác nhau

Hãy thử trừ một số nguyên từ Trọng lượng

x + y
19

Điều này ném một lỗi

x + y
6

Chúng tôi chưa chỉ định điều gì sẽ xảy ra khi trừ một thứ khác ngoài Trọng lượng từ một đối tượng Trọng lượng. Đây là lý do tại sao đoạn mã trên không hoạt động

Để thực hiện phép trừ các loại khác nhau, hãy mở rộng triển khai phương thức __sub__[]

  • Nếu vế phải là một số nguyên, chúng ta có thể trừ trực tiếp nó ra khỏi đơn vị kilôgam
  • Nếu phía bên tay phải không phải là một số nguyên, chúng tôi cho rằng đó là Trọng số. Vì vậy, chúng ta cần truy cập số kg trước khi trừ
x + y
21

Bây giờ nó hoạt động

x + y
19

đầu ra

x + y
18

Nhưng còn một vấn đề nữa

Khi bạn đảo ngược thứ tự của phép trừ

x + y
24

Có một lỗi, mặc dù người ta mong đợi nó hoạt động

x + y
25

Như bạn đã biết, gọi a – b cũng giống như gọi a. __phụ__[b]

Ở trên, bạn đang gọi 150 – w1, nghĩa là [150]. __phụ__[w1]

Đây là vấn đề

Cố gắng trừ một đối tượng Trọng lượng khỏi một đối tượng int không hoạt động vì kiểu int tích hợp không có ý tưởng về lớp Trọng lượng

Để khắc phục sự cố, bạn cần thực hiện các thay đổi đối với kiểu int tích hợp. Nhưng điều này sẽ là xấu

Toán tử số học trong Python là gì?

Có 7 toán tử số học trong Python. .
Phép cộng
phép trừ
Phép nhân
Phân công
mô đun
lũy thừa
Phân chia tầng

toán tử số học giải thích là gì?

Toán tử thực hiện các phép toán số học trên các nhóm và số . Trong AHDL, các toán tử số học được hỗ trợ trong các biểu thức Boolean bao gồm các ký hiệu tiền tố và dấu cộng [ +] và dấu trừ [ -] nhị phân.

5 toán tử số học là gì?

Các toán tử này là + [cộng], - [phép trừ], * [nhân], / [chia] và % [mô đun].

Toán tử số học trong Python Lớp 11 là gì?

Toán tử cộng- Thêm toán hạng ở hai bên của toán tử. Toán tử trừ – Trừ toán hạng bên phải từ toán hạng bên trái. Toán tử nhân – Nhân toán hạng ở hai bên của toán tử. Toán tử chia – Chia toán hạng bên trái cho toán hạng bên phải

Chủ Đề