Thêm một b trăn

Cho hai số num1 và num2. Nhiệm vụ là viết chương trình Python để tìm phép cộng của hai số này. ví dụ

Input: num1 = 5, num2 = 3
Output: 8

Input: num1 = 13, num2 = 6
Output: 19

Trong chương trình dưới đây để cộng hai số, trước tiên người dùng được yêu cầu nhập hai số và đầu vào được quét bằng hàm input() và được lưu trong các biến số1 và số2. Sau đó, các biến số1 và số2 được cộng bằng toán tử số học + và kết quả được lưu trong biến tổng. Dưới đây là chương trình Python để cộng hai số.  

ví dụ 1.  

Python3




First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
0

 

________ 81 ________ 82 ________ 83

First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
4
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
2
Sum of 15 and 12 is 27
1

 

Sum of 15 and 12 is 27
2

Sum of 15 and 12 is 27
3
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
2
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
1
Sum of 15 and 12 is 27
6
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
4

 

Sum of 15 and 12 is 27
8

Sum of 15 and 12 is 27
9
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
0
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
1
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
2
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
3
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
4
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
5
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
6
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
7
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
4
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
9
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
6
Sum of 15 and 12 is 27
81
Sum of 15 and 12 is 27
82
Sum of 15 and 12 is 27
83
Sum of 15 and 12 is 27
84
Sum of 15 and 12 is 27
3
Sum of 15 and 12 is 27
86

đầu ra

Sum of 15 and 12 is 27

ví dụ 2. Thêm hai số được cung cấp bởi đầu vào của người dùng

Python3




First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
0

 

Sum of 15 and 12 is 27
88
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
2
Sum of 15 and 12 is 27
60
Sum of 15 and 12 is 27
61

Sum of 15 and 12 is 27
62
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
2
Sum of 15 and 12 is 27
60
Sum of 15 and 12 is 27
65

 

Sum of 15 and 12 is 27
66

Sum of 15 and 12 is 27
67

Sum of 15 and 12 is 27
3
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
2
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
00
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
01
Sum of 15 and 12 is 27
6
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
00
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
04

 

First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
05

First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
06

Sum of 15 and 12 is 27
9
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
08
Sum of 15 and 12 is 27
3
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
2
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
3
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
4
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
5
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
6
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
7
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
4
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
9
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
6
Sum of 15 and 12 is 27
81
Sum of 15 and 12 is 27
82
Sum of 15 and 12 is 27
83
First number: 13.5 Second number: 1.54
The sum of 13.5 and 1.54 is 15.04
22
Sum of 15 and 12 is 27
3
Sum of 15 and 12 is 27
86

Phương thức __add__() trong Python chỉ định điều gì sẽ xảy ra khi bạn gọi + trên hai đối tượng. Khi bạn gọi obj1 + obj2, về cơ bản bạn đang gọi obj1. __add__(obj2)

Ví dụ: hãy gọi + trên hai đối tượng int

Sum of 15 and 12 is 27
1

đầu ra

Sum of 15 and 12 is 27
2

Điều này hoạt động, bởi vì int thực hiện phương thức __add__() đằng sau hậu trường

Để thực hiện bổ sung hỗ trợ đối tượng tùy chỉnh với toán tử +, bạn cần triển khai phương thức __add__() trong lớp

Trong hướng dẫn này, bạn tìm hiểu cách triển khai phương thức __add__(). Bạn cũng tìm hiểu cách thêm các đối tượng thuộc các loại hỗn hợp. Cuối cùng, bạn sẽ xem cách cộng các loại đối tượng hỗn hợp có tính chất giao hoán (a + b = b + a)

Phương thức gạch dưới kép trong Python

Trong trường hợp bạn chưa quen với các phương pháp gạch dưới kép, đây là tóm tắt nhanh

Trong Python, các phương thức gạch dưới kép (còn được gọi là phương thức dunder) làm cho quá tải toán tử có thể xảy ra

Một phương thức dunder được triển khai trong một lớp để xác định hành vi cho những gì xảy ra khi một thao tác cụ thể được gọi trên một đối tượng

Một ví dụ phổ biến của phương pháp dunder là phương pháp. Phương thức này được tự động gọi khi một đối tượng được tạo

Ví dụ

Sum of 15 and 12 is 27
3

Phương thức __add__() trong Python

Phương thức __add__() trong Python là một phương thức đặc biệt xác định điều gì sẽ xảy ra khi bạn thêm hai đối tượng bằng toán tử +. Khi bạn gọi o1 + o2, bạn đang gọi o1. __thêm__(o2)

Hãy xem một ví dụ minh họa bằng cách tạo một lớp Trọng lượng

Sum of 15 and 12 is 27
4

Bây giờ, hãy tạo hai đối tượng Trọng lượng và thử cộng chúng lại với nhau

Sum of 15 and 12 is 27
5

đầu ra

Sum of 15 and 12 is 27
6

Lỗi này cho biết các đối tượng Trọng lượng không hỗ trợ phép cộng với toán tử +. Lý do tại sao điều này không thành công là do bạn chưa chỉ định điều gì sẽ xảy ra khi gọi + trên hai đối tượng Trọng lượng

Để xác định điều gì sẽ xảy ra khi thêm trọng số, bạn cần triển khai phương thức __add__() trong lớp Trọng lượng

Trong ví dụ này, việc thêm hai đối tượng Cân nặng sẽ tạo ra một đối tượng Cân nặng mới có số kilôgam bằng tổng số kilôgam của hai đối tượng Cân nặng

Đây là giao diện của nó trong mã

Sum of 15 and 12 is 27
7
  • Phương thức __add__() lấy self làm tham số để biết trọng số của chính nó. Khi gọi w1 + w2, self đề cập đến w1
  • Phương thức __add__() cũng nhận tham số otherWeight để lấy trọng số của đối tượng Weight thứ hai. otherWeight giống với w2 khi gọi w1 + w2

Bây giờ bạn có thể thêm hai đối tượng Trọng lượng với nhau bằng cách

Sum of 15 and 12 is 27
8

đầu ra

Sum of 15 and 12 is 27
9

Lưu ý cách gọi w1 + w2 hoàn toàn giống với cách gọi w1. __thêm__(w2)

Ví dụ

Sum of 15 and 12 is 27
0

đầu ra

Sum of 15 and 12 is 27
9

Nhân tiện, bây giờ bạn cũng có thể gọi toán tử + trên nhiều Trọng số

Sum of 15 and 12 is 27
21

đầu ra

Sum of 15 and 12 is 27
22

Nhưng tại sao nó hoạt động?

Điều này tập trung vào quyền ưu tiên của nhà điều hành. Khi bạn tính tổng ba số nguyên, trước tiên Python tính tổng hai số nguyên rồi cộng số thứ ba vào tổng đó

Nói cách khác, trình thông dịch Python trước tiên tính tổng w1 + w2. Kết quả của việc này là một đối tượng số nguyên mà w3 được thêm vào. Vì vậy, phía sau hậu trường w1 + w2 + w3 trông như thế này

Sum of 15 and 12 is 27
23

Vui lòng dùng thử trên trình chỉnh sửa của bạn. Ngoài ra, vui lòng mở rộng chuỗi để hiểu cách thức hoạt động của nó

Thêm các loại đối tượng khác nhau lại với nhau

Cho đến giờ bạn đã thấy cách cộng các đối tượng Trọng lượng lại với nhau

Nhưng giả sử bạn cũng muốn thêm số nguyên và trọng số

Hỗ trợ điều này thật dễ dàng. Sửa đổi phương thức __add__() để nó kiểm tra loại đối tượng khác

  • Nếu kiểu là int, thì hãy tạo một đối tượng Trọng lượng mới từ số kg của trọng lượng ban đầu bằng cách thêm giá trị số nguyên vào đối tượng đó
  • Nếu loại là Trọng lượng, hãy cộng số kg của cả hai đối tượng lại với nhau và tạo Trọng lượng mới từ đó

Đây là giao diện của nó trong mã

Sum of 15 and 12 is 27
24

Bây giờ bạn có thể thêm các đối tượng Trọng lượng và ints

Sum of 15 and 12 is 27
25

đầu ra

Sum of 15 and 12 is 27
26

Nhưng như bạn đã biết, tổng hai giá trị trong toán học là giao hoán. Nói cách khác, a+b là b+a. Hãy xem điều gì sẽ xảy ra khi chúng ta cố gắng đảo ngược thứ tự của phép cộng

Sum of 15 and 12 is 27
27

đầu ra

Sum of 15 and 12 is 27
28

Điều này không thành công vì bây giờ bạn đang cố gọi (200). __thêm__(w1). Nói cách khác, bạn cho rằng int cũng hỗ trợ thêm các đối tượng Weight vào nó, điều này rõ ràng là không đúng

Đây là nơi phương thức __radd__() trợ giúp

Phương thức __radd__() trong Python

Bây giờ bạn đã biết phương thức __add__() làm gì, bạn nên biết __radd__() làm gì, vì nó liên quan chặt chẽ với phương thức __add__()

Phương thức __radd__() có nghĩa là thêm ngược

Phép cộng đảo ngược biến a + b thành b + a. Điều này có nghĩa là một. __add__(b) biến thành b. __radd__(a)

Nhưng tại sao?

Hãy chứng minh vấn đề mà điều này giải quyết với hạng Trọng lượng từ chương trước

Như bạn đã thấy, việc thêm một đối tượng số nguyên và Trọng lượng theo thứ tự này không thành công

Sum of 15 and 12 is 27
29

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

Sum of 15 and 12 is 27
28

Lỗi nói rằng không thể cộng int và Weight lại với nhau. Điều này không có gì đáng ngạc nhiên, vì kiểu int tích hợp không biết gì về Trọng lượng

__add__() method in Python

Như bạn đã biết, gọi 150 + w1 tương đương với (150). __thêm__(w1). Vì vậy, dưới mui xe, gọi (150). __add__(w1) gây ra sự cố

Để khắc phục sự cố, nó không phải là một tùy chọn để hỗ trợ int thêm các đối tượng Trọng lượng. Nhưng những gì bạn có thể làm thay vào đó là làm cho đối tượng Trọng lượng hỗ trợ thêm ints

Nói cách khác, bạn muốn trao đổi các cuộc gọi như thế này

Sum of 15 and 12 is 27
31

Với cái này

Sum of 15 and 12 is 27
32

Đây là những gì phương thức __radd__() thực hiện. Nó đảo ngược thứ tự bổ sung. Nói cách khác, một. __add__(b) trở thành b. __radd__(a)

Vì vậy, hãy triển khai phương thức __radd__() vào lớp Trọng lượng. Điều này sẽ trả về một đối tượng Trọng lượng trong đó một số nguyên được thêm vào kilôgam

Sum of 15 and 12 is 27
33

Bây giờ mã bị lỗi trước đó chạy thành công

Sum of 15 and 12 is 27
34

đầu ra

Sum of 15 and 12 is 27
9

Bây giờ bạn đã biết phương thức __radd__() hoạt động như thế nào và khi nào nó có thể hữu ích

Nói chính xác, bạn cũng có thể sử dụng phương thức __add__() trong phương thức __radd__() vì nó biết cách xử lý các đầu vào số nguyên. Điều này đơn giản hóa mã một chút

Sum of 15 and 12 is 27
36

Dù sao, việc hỗ trợ __radd__() làm cho mã nhất quán. Bây giờ cả a + b và b + a đều hoạt động như mong đợi

Nhân tiện, bây giờ lớp Weight hỗ trợ __radd__() nên cũng có thể gọi hàm sum() trong danh sách các đối tượng Weight

Ví dụ

Sum of 15 and 12 is 27
37

đầu ra

Sum of 15 and 12 is 27
38

Nếu không có __radd__() thì điều này là không thể. Điều này là do hàm sum() tích hợp bắt đầu tính tổng từ 0. Điều này có nghĩa là thao tác đầu tiên sẽ là (0). __add__(w1), sẽ không hoạt động nếu không có triển khai thêm ngược biến nó thành w1. __radd__(0)

Phần kết luận

Hôm nay bạn đã biết phương thức __add__() trong Python là gì và cách sử dụng nó

Tóm lại, bất cứ khi nào bạn gọi obj1 + obj2 bằng Python, bạn thực sự đang gọi obj1. __add__(obj2) đằng sau hậu trường

Nói cách khác, để cộng hai đối tượng lại với nhau trong Python, lớp triển khai các đối tượng cần triển khai phương thức __add__()

Một phương thức liên quan khác là phương thức __radd__(). Điều này lật a+b với b+a. Khi một. __add__(b) không thành công, cuộc gọi trở thành b. __radd__(a). Điều này hữu ích khi a không hỗ trợ thêm b, nhưng b có thể được hỗ trợ thêm a

__ thêm __ trong Python là gì?

Hàm __add__() của Python là một trong những phương thức kỳ diệu trong Python trả về một đối tượng mới(thứ ba) i. e. việc thêm hai đối tượng còn lại . Nó triển khai toán tử cộng “+” trong Python.

AB trong Python là gì?

'ab' là chế độ mở , tôi. e. thêm vào nhị phân.

Làm cách nào để thêm các đối tượng trong Python?

Cách thêm phần tử vào danh sách trong Python .
nối thêm (). thêm phần tử vào cuối danh sách
chèn(). chèn phần tử trước chỉ mục đã cho
gia hạn(). mở rộng danh sách bằng cách nối thêm các phần tử từ iterable
Nối danh sách. Chúng ta có thể sử dụng toán tử + để nối nhiều danh sách và tạo một danh sách mới

Có phương thức thêm nào trong Python không?

Định nghĩa và cách sử dụng . Nếu phần tử đã tồn tại, phương thức add() không thêm phần tử. The add() method adds an element to the set. If the element already exists, the add() method does not add the element.