Tôi đã xem xét đánh giá tay nhanh trong Python. Nó xảy ra với tôi rằng một cách để tăng tốc quá trình sẽ là đại diện cho tất cả các mặt và phù hợp với các số nguyên tố và nhân chúng lại với nhau để đại diện cho bàn tay. Để Whit:
class PokerCard:
faces = '23456789TJQKA'
suits = 'cdhs'
facePrimes = [11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 53, 59, 61]
suitPrimes = [2, 3, 5, 7]
VÀ
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
Điều này sẽ mang lại cho mỗi bàn tay một giá trị số mà thông qua Modulo có thể cho tôi biết có bao nhiêu vị vua trong tay hoặc có bao nhiêu trái tim. Ví dụ, bất kỳ bàn tay nào có năm hoặc nhiều câu lạc bộ trong đó sẽ chia đều cho 2^5; Bất kỳ bàn tay nào có bốn vị vua sẽ chia đều cho 59^4, v.v.
Vấn đề là một bàn tay bảy thẻ như Acadahaskdkhks có giá trị băm khoảng 62,7 triệu triệu, sẽ mất hơn 32 bit để thể hiện nội bộ. Có cách nào để lưu trữ số lượng lớn như vậy trong Python sẽ cho phép tôi thực hiện các hoạt động số học trên đó không?
Chức năng gốc Python
Con số lớn nhất Python có thể xử lý là gì?
Chức năng gốc Python
Con số lớn nhất Python có thể xử lý là gì?
Python2 có hai loại số nguyên, int và dài, nhưng python3 chỉ có int. int trong python3 tương đương với dài trong python2 và không có giới hạn tối đa. Bạn có thể xử lý giá trị lớn như bộ nhớ có sẵn.
Python3
Kích thước của số nguyên trong Python là gì?
Thông thường, một số nguyên chiếm bốn byte, hoặc 32 bit.
Cải thiện bài viết
Lưu bài viết
10000000000000000000000000000000000000000001
Đọcthis and
this]. Thus we never need any special arrangement for storing large numbers [Imagine doing above arithmetic in C/C++].
As a side note, in Python 3, there is only one type “int” for all type of integers. In Python 2.7. there are two separate types “int” [which is 32 bit] and “long int” that is
same as “int” of Python 3.x, i.e., can store arbitrarily large numbers.
Bàn luận
Xem xét dưới đây chương trình Python. & NBSP;
>>> 1000000
1000000
>>> 1_000_000
1000000
5>>> type[1.0]
1>>> type[1.0]
2>>> type[1.0]
3Kích thước của số nguyên trong Python là gì?
>>> 1000000
1000000
>>> 1_000_000
1000000
5>>> type[1.0]
1>>> type[1.0]
2>>> type[1.0]
3Thông thường, một số nguyên chiếm bốn byte, hoặc 32 bit.
Python3
Xem xét dưới đây chương trình Python. & NBSP;
>>> 1000000
1000000
>>> 1_000_000
1000000
5>>> type[1.0]
1>>> type[1.0]
2>>> type[1.0]
3Kích thước của số nguyên trong Python là gì?
>>> 1000000
1000000
>>> 1_000_000
1000000
5>>> type[1.0]
1>>> type[1.0]
2>>> type[1.0]
3Thông thường, một số nguyên chiếm bốn byte, hoặc 32 bit.
Cải thiện bài viết
Python3
Bài viết này được đóng góp bởi Abhay Rathi. Vui lòng viết nhận xét nếu bạn tìm thấy bất cứ điều gì không chính xác hoặc bạn muốn chia sẻ thêm thông tin về chủ đề được thảo luận ở trên & NBSP;Abhay Rathi. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
Chức năng gốc Pythonnumbers are an integral part of any programming language, and Python is no exception.
Con số lớn nhất Python có thể xử lý là gì?
- Python2 có hai loại số nguyên, int và dài, nhưng python3 chỉ có int. int trong python3 tương đương với dài trong python2 và không có giới hạn tối đa. Bạn có thể xử lý giá trị lớn như bộ nhớ có sẵn.integers and floating-point numbers
- Kích thước của số nguyên trong Python là gì? to a given number of decimal places
- Thông thường, một số nguyên chiếm bốn byte, hoặc 32 bit.strings
Bạn không cần phải là một người chơi toán để lập trình tốt. Sự thật là, rất ít lập trình viên cần biết nhiều hơn đại số cơ bản. Tất nhiên, bao nhiêu toán học bạn cần biết phụ thuộc vào ứng dụng mà bạn đang làm việc. Nói chung, mức độ toán học cần thiết để trở thành một lập trình viên thấp hơn bạn mong đợi. Mặc dù lập trình toán học và máy tính không có mối tương quan như một số người có thể tin, nhưng các con số là một phần không thể thiếu của bất kỳ ngôn ngữ lập trình nào và Python cũng không ngoại lệ.
Trong hướng dẫn này, bạn sẽ học cách:
Tạo số nguyên và số điểm nổi
Số nguyên
Một số nguyên là một số toàn bộ không có vị trí thập phân. Ví dụ,
>>> 1000000
1000000
>>> 1_000_000
1000000
4 là một số nguyên, nhưng >>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
6 isn. Tên cho kiểu dữ liệu số nguyên là >>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
7, mà bạn có thể thấy với >>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
8:integer is a whole number with no decimal places. For example, >>> 1000000
1000000
>>> 1_000_000
1000000
4 is an integer, but >>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
6 isn’t. The name for the integer data type is >>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
7, which you can see with >>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
8:>>>
>>> type[1]
Bạn có thể tạo một số nguyên bằng cách nhập số mong muốn. Chẳng hạn, phần sau gán số nguyên
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
9 cho biến def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
00:Khi bạn tạo một số nguyên như thế này, giá trị
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
9 được gọi là một số nguyên theo nghĩa đen vì số nguyên được gõ theo nghĩa đen vào mã.integer literal because the integer is literally typed into the code.Bạn có thể đã quen thuộc với cách chuyển đổi một chuỗi chứa một số nguyên thành một số bằng cách sử dụng
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
02. Ví dụ: sau đây chuyển đổi chuỗi def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
03 thành số nguyên >>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
9: def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
05 không phải là một số nguyên theo nghĩa đen vì giá trị số nguyên được tạo từ một chuỗi.Khi bạn viết số lượng lớn bằng tay, bạn thường nhóm các chữ số thành các nhóm ba được phân tách bằng dấu phẩy hoặc dấu thập phân. Số 1.000.000 dễ đọc hơn 1000000.
Trong Python, bạn có thể sử dụng dấu phẩy để nhóm các chữ số trong các chữ số nguyên, nhưng bạn có thể sử dụng dấu gạch dưới [
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
06]. Cả hai điều sau đây đều là những cách hợp lệ để đại diện cho số một triệu là một số nguyên theo nghĩa đen:>>>
>>> 1000000
1000000
>>> 1_000_000
1000000
Bạn có thể tạo một số nguyên bằng cách nhập số mong muốn. Chẳng hạn, phần sau gán số nguyên
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
9 cho biến def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
00:Khi bạn tạo một số nguyên như thế này, giá trị >>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
9 được gọi là một số nguyên theo nghĩa đen vì số nguyên được gõ theo nghĩa đen vào mã.
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
Bạn có thể đã quen thuộc với cách chuyển đổi một chuỗi chứa một số nguyên thành một số bằng cách sử dụng
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
02. Ví dụ: sau đây chuyển đổi chuỗi def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
03 thành số nguyên >>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
9:floating-point number, or float for short, is a number with a decimal place. >>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
6 is a floating-point number, as is def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
08. The name of the floating-point data type is def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09:
>>>
>>> type[1.0]
Bạn có thể tạo một số nguyên bằng cách nhập số mong muốn. Chẳng hạn, phần sau gán số nguyên
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
9 cho biến def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
00:floating-point literals or by converting a string to a float with def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
10:>>>
>>> float["1.25"]
1.25
Bạn có thể tạo một số nguyên bằng cách nhập số mong muốn. Chẳng hạn, phần sau gán số nguyên
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
9 cho biến def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
00:>>>
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
Bạn có thể tạo một số nguyên bằng cách nhập số mong muốn. Chẳng hạn, phần sau gán số nguyên
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
9 cho biến def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
00:E notation to create a float literal.Khi bạn tạo một số nguyên như thế này, giá trị
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
9 được gọi là một số nguyên theo nghĩa đen vì số nguyên được gõ theo nghĩa đen vào mã.Bạn có thể đã quen thuộc với cách chuyển đổi một chuỗi chứa một số nguyên thành một số bằng cách sử dụng
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
02. Ví dụ: sau đây chuyển đổi chuỗi def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
03 thành số nguyên >>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
9:>>>
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
0Bạn có thể tạo một số nguyên bằng cách nhập số mong muốn. Chẳng hạn, phần sau gán số nguyên
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
9 cho biến def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
00:Khi bạn tạo một số nguyên như thế này, giá trị
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
9 được gọi là một số nguyên theo nghĩa đen vì số nguyên được gõ theo nghĩa đen vào mã.Bạn có thể đã quen thuộc với cách chuyển đổi một chuỗi chứa một số nguyên thành một số bằng cách sử dụng
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
02. Ví dụ: sau đây chuyển đổi chuỗi def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
03 thành số nguyên >>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
9: def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
05 không phải là một số nguyên theo nghĩa đen vì giá trị số nguyên được tạo từ một chuỗi.
Khi bạn viết số lượng lớn bằng tay, bạn thường nhóm các chữ số thành các nhóm ba được phân tách bằng dấu phẩy hoặc dấu thập phân. Số 1.000.000 dễ đọc hơn 1000000.
>>>
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
1Trong Python, bạn có thể sử dụng dấu phẩy để nhóm các chữ số trong các chữ số nguyên, nhưng bạn có thể sử dụng dấu gạch dưới [
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
06]. Cả hai điều sau đây đều là những cách hợp lệ để đại diện cho số một triệu là một số nguyên theo nghĩa đen:Không có giới hạn về mức độ lớn của một số nguyên, điều này có thể đáng ngạc nhiên khi xem xét rằng các máy tính có một lượng bộ nhớ hữu hạn. Hãy thử gõ số lớn nhất mà bạn có thể nghĩ vào cửa sổ tương tác Idle. Python có thể xử lý nó mà không có vấn đề!
Số điểm nổi
Một số điểm nổi, hoặc ngắn hơn, là một số có vị trí thập phân.
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
6 là một số điểm nổi, cũng như def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
08. Tên của kiểu dữ liệu dấu phẩy động là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09:Giống như các số nguyên, phao có thể được tạo từ các chữ nổi hoặc bằng cách chuyển đổi một chuỗi thành một chiếc phao với
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
10:Có ba cách để đại diện cho một điểm nổi theo nghĩa đen. Mỗi điều sau đây tạo ra một nghĩa đen dấu phẩy động với giá trị một triệu:
Hai cách đầu tiên tương tự như hai kỹ thuật để tạo ra các chữ số nguyên. Cách tiếp cận thứ ba sử dụng ký hiệu E để tạo ra một bản theo nghĩa đen.
Để viết một bản theo nghĩa đen trong ký hiệu E, nhập một số theo sau là chữ
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
11 và sau đó là một số khác. Python đưa số ở bên trái của def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
11 và nhân nó với >>> 1000000
1000000
>>> 1_000_000
1000000
9 được nâng lên công suất của số sau def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
11. Vì vậy, def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
15 tương đương với 1 × 10⁶.Python cũng sử dụng ký hiệu E để hiển thị các số điểm nổi lớn:
Phao
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
16 được hiển thị là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
17. Dấu hiệu >>> 1000000
1000000
>>> 1_000_000
1000000
3 chỉ ra rằng số mũ def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
19 là một số dương. Bạn cũng có thể sử dụng các số âm làm số mũ:Các
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
20 theo nghĩa đen được hiểu là >>> 1000000
1000000
>>> 1_000_000
1000000
9 được nâng lên cho sức mạnh def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
22, là 1/10000, hoặc def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
23.Khi bạn đã sẵn sàng, bạn có thể chuyển sang phần tiếp theo.
Toán học số học và biểu thức
Trong phần này, bạn sẽ học cách thực hiện số học cơ bản, chẳng hạn như bổ sung, trừ, nhân và chia, với số lượng trong Python. Trên đường đi, bạn sẽ học một số quy ước để viết các biểu thức toán học trong mã.
Phép cộng
Ngoài ra được thực hiện với toán tử
>>> 1000000
1000000
>>> 1_000_000
1000000
3:Hai số ở hai bên của toán tử
>>> 1000000
1000000
>>> 1_000_000
1000000
3 được gọi là toán hạng. Trong ví dụ trên, cả hai toán hạng là số nguyên, nhưng các toán hạng don don cần phải là cùng một loại.operands. In the above example, both operands are integers, but operands don’t need to be the same type. Bạn có thể thêm
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
7 vào def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09 mà không có vấn đề gì:Lưu ý rằng kết quả của
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
50 là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
51, đó là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09. Bất cứ khi nào def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09 được thêm vào một số, kết quả là một def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09 khác. Thêm hai số nguyên với nhau luôn luôn dẫn đến một >>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
7.Phép trừ
Để trừ hai số, chỉ cần đặt một toán tử
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
56 giữa chúng:>>>
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
2Cũng giống như thêm hai số nguyên, trừ hai số nguyên luôn dẫn đến
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
7. Bất cứ khi nào một trong các toán hạng là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09, kết quả cũng là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09.Toán tử
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
56 cũng được sử dụng để biểu thị số âm:Bạn có thể trừ một số âm từ một số khác, nhưng như bạn có thể thấy bên dưới, điều này đôi khi có vẻ khó hiểu:
>>>
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
3Cũng giống như thêm hai số nguyên, trừ hai số nguyên luôn dẫn đến
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
7. Bất cứ khi nào một trong các toán hạng là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09, kết quả cũng là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09.Toán tử
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
56 cũng được sử dụng để biểu thị số âm:Bạn có thể trừ một số âm từ một số khác, nhưng như bạn có thể thấy bên dưới, điều này đôi khi có vẻ khó hiểu:
Trong bốn ví dụ ở trên, đầu tiên là PEP 8 tuân thủ nhiều nhất. Điều đó nói rằng, bạn có thể bao quanh
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
61 với dấu ngoặc đơn để làm cho nó thậm chí còn rõ ràng hơn rằng def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
56 thứ hai đang sửa đổi def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
63:>>>
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
4Cũng giống như thêm hai số nguyên, trừ hai số nguyên luôn dẫn đến
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
7. Bất cứ khi nào một trong các toán hạng là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09, kết quả cũng là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09.Toán tử def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
56 cũng được sử dụng để biểu thị số âm:
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
Bạn có thể trừ một số âm từ một số khác, nhưng như bạn có thể thấy bên dưới, điều này đôi khi có vẻ khó hiểu:
>>>
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
5Cũng giống như thêm hai số nguyên, trừ hai số nguyên luôn dẫn đến
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
7. Bất cứ khi nào một trong các toán hạng là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09, kết quả cũng là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09.Toán tử
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
56 cũng được sử dụng để biểu thị số âm:Bạn có thể trừ một số âm từ một số khác, nhưng như bạn có thể thấy bên dưới, điều này đôi khi có vẻ khó hiểu:
Trong bốn ví dụ ở trên, đầu tiên là PEP 8 tuân thủ nhiều nhất. Điều đó nói rằng, bạn có thể bao quanh def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
61 với dấu ngoặc đơn để làm cho nó thậm chí còn rõ ràng hơn rằng def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
56 thứ hai đang sửa đổi def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
63:
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
Sử dụng dấu ngoặc đơn là một ý tưởng tốt vì nó làm cho mã của bạn rõ ràng hơn. Máy tính thực thi mã, nhưng con người đọc mã. Bất cứ điều gì bạn có thể làm để làm cho mã của bạn dễ đọc và hiểu là một điều tốt.integer division operator [
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
79], also known as the floor division operator:>>>
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
6Cũng giống như thêm hai số nguyên, trừ hai số nguyên luôn dẫn đến
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
7. Bất cứ khi nào một trong các toán hạng là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09, kết quả cũng là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09.Toán tử
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
56 cũng được sử dụng để biểu thị số âm:Bạn có thể trừ một số âm từ một số khác, nhưng như bạn có thể thấy bên dưới, điều này đôi khi có vẻ khó hiểu:
Trong bốn ví dụ ở trên, đầu tiên là PEP 8 tuân thủ nhiều nhất. Điều đó nói rằng, bạn có thể bao quanh
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
61 với dấu ngoặc đơn để làm cho nó thậm chí còn rõ ràng hơn rằng def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
56 thứ hai đang sửa đổi def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
63:>>>
Cũng giống như thêm hai số nguyên, trừ hai số nguyên luôn dẫn đến>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
7. Bất cứ khi nào một trong các toán hạng là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09, kết quả cũng là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09.Toán tử
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
56 cũng được sử dụng để biểu thị số âm:Bạn có thể trừ một số âm từ một số khác, nhưng như bạn có thể thấy bên dưới, điều này đôi khi có vẻ khó hiểu:
Trong bốn ví dụ ở trên, đầu tiên là PEP 8 tuân thủ nhiều nhất. Điều đó nói rằng, bạn có thể bao quanh
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
61 với dấu ngoặc đơn để làm cho nó thậm chí còn rõ ràng hơn rằng def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
56 thứ hai đang sửa đổi def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
63:>>>
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
8Cũng giống như thêm hai số nguyên, trừ hai số nguyên luôn dẫn đến
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
7. Bất cứ khi nào một trong các toán hạng là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09, kết quả cũng là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09.
>>>
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
9Cũng giống như thêm hai số nguyên, trừ hai số nguyên luôn dẫn đến
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
7. Bất cứ khi nào một trong các toán hạng là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09, kết quả cũng là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09.Toán tử
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
56 cũng được sử dụng để biểu thị số âm:Bạn có thể trừ một số âm từ một số khác, nhưng như bạn có thể thấy bên dưới, điều này đôi khi có vẻ khó hiểu:
>>>
100000000000000000000000000000000000000000010
Cũng giống như thêm hai số nguyên, trừ hai số nguyên luôn dẫn đến
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
7. Bất cứ khi nào một trong các toán hạng là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09, kết quả cũng là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
09.Toán tử mô đun
Toán tử
1000000000000000000000000000000000000000000116 hoặc mô đun, trả về phần còn lại của việc chia toán hạng bên trái cho toán hạng bên phải:modulus, returns the remainder of dividing the left operand by the right operand:
>>>
100000000000000000000000000000000000000000011
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
63 Chia 1000000000000000000000000000000000000000000118 Một lần với phần còn lại là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
76, vì vậy 1000000000000000000000000000000000000000000120 là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
76. Tương tự, 1000000000000000000000000000000000000000000122 chia
1000000000000000000000000000000000000000000123 hai lần với phần còn lại là
1000000000000000000000000000000000000000000124. Trong ví dụ cuối cùng,
1000000000000000000000000000000000000000000125 chia hết cho
1000000000000000000000000000000000000000000126, vì vậy
1000000000000000000000000000000000000000000127 là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
97. Bất cứ khi nào số ở bên trái của 1000000000000000000000000000000000000000000116 đều chia hết cho số bên phải, kết quả là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
97.Một trong những cách sử dụng phổ biến nhất của
1000000000000000000000000000000000000000000116 là xác định xem một số có chia hết cho một số khác hay không. Ví dụ: một số
1000000000000000000000000000000000000000000132 là ngay cả khi và chỉ khi
1000000000000000000000000000000000000000000133 là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
97. Bạn nghĩ gì 1000000000000000000000000000000000000000000135 trở lại? Hãy để thử nó ra:
>>>
100000000000000000000000000000000000000000012
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
63 Chia 1000000000000000000000000000000000000000000118 Một lần với phần còn lại là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
76, vì vậy 1000000000000000000000000000000000000000000120 là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
76. Tương tự, 1000000000000000000000000000000000000000000122 chia
1000000000000000000000000000000000000000000123 hai lần với phần còn lại là
1000000000000000000000000000000000000000000124. Trong ví dụ cuối cùng,
1000000000000000000000000000000000000000000125 chia hết cho
1000000000000000000000000000000000000000000126, vì vậy
1000000000000000000000000000000000000000000127 là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
97. Bất cứ khi nào số ở bên trái của 1000000000000000000000000000000000000000000116 đều chia hết cho số bên phải, kết quả là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
97.Một trong những cách sử dụng phổ biến nhất của
1000000000000000000000000000000000000000000116 là xác định xem một số có chia hết cho một số khác hay không. Ví dụ: một số
1000000000000000000000000000000000000000000132 là ngay cả khi và chỉ khi
1000000000000000000000000000000000000000000133 là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
97. Bạn nghĩ gì 1000000000000000000000000000000000000000000135 trở lại? Hãy để thử nó ra:
>>>
100000000000000000000000000000000000000000013
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
63 Chia 1000000000000000000000000000000000000000000118 Một lần với phần còn lại là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
76, vì vậy 1000000000000000000000000000000000000000000120 là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
76. Tương tự, 1000000000000000000000000000000000000000000122 chia
1000000000000000000000000000000000000000000123 hai lần với phần còn lại là
1000000000000000000000000000000000000000000124. Trong ví dụ cuối cùng,
1000000000000000000000000000000000000000000125 chia hết cho
1000000000000000000000000000000000000000000126, vì vậy
1000000000000000000000000000000000000000000127 là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
97. Bất cứ khi nào số ở bên trái của 1000000000000000000000000000000000000000000116 đều chia hết cho số bên phải, kết quả là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
97.Một trong những cách sử dụng phổ biến nhất của
1000000000000000000000000000000000000000000116 là xác định xem một số có chia hết cho một số khác hay không. Ví dụ: một số
1000000000000000000000000000000000000000000132 là ngay cả khi và chỉ khi
1000000000000000000000000000000000000000000133 là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
97. Bạn nghĩ gì 1000000000000000000000000000000000000000000135 trở lại? Hãy để thử nó ra:
Điều này có ý nghĩa bởi vì 10000000000000000000000000000000000000000001
35 đưa ra phần còn lại của việc chia >>> 1000000
1000000
>>> 1_000_000
1000000
4 cho def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
97. Nhưng bạn có thể chia >>> 1000000
1000000
>>> 1_000_000
1000000
4 cho def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
97, vì vậy Python tăng def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
98.
>>> 1000000
1000000
>>> 1_000_000
1000000
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
>>> 1000000
1000000
>>> 1_000_000
1000000
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
Mọi thứ trở nên khó khăn khi bạn sử dụng toán tử
1000000000000000000000000000000000000000000116 với số âm:expression is a combination of numbers, operators, and parentheses that Python can compute, or evaluate, to return a value.
Mặc dù có khả năng gây sốc ngay từ cái nhìn đầu tiên, những kết quả này là sản phẩm của một hành vi được xác định rõ ở Python. Để tính phần còn lại
1000000000000000000000000000000000000000000143 chia số
1000000000000000000000000000000000000000000144 cho một số
1000000000000000000000000000000000000000000145, Python sử dụng phương trình
1000000000000000000000000000000000000000000146.
>>>
100000000000000000000000000000000000000000014
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
63 Chia 1000000000000000000000000000000000000000000118 Một lần với phần còn lại là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
76, vì vậy 1000000000000000000000000000000000000000000120 là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
76. Tương tự, 1000000000000000000000000000000000000000000122 chia
1000000000000000000000000000000000000000000123 hai lần với phần còn lại là
1000000000000000000000000000000000000000000124. Trong ví dụ cuối cùng,
1000000000000000000000000000000000000000000125 chia hết cho
1000000000000000000000000000000000000000000126, vì vậy
1000000000000000000000000000000000000000000127 là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
97. Bất cứ khi nào số ở bên trái của 1000000000000000000000000000000000000000000116 đều chia hết cho số bên phải, kết quả là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
97.order of operations.Một trong những cách sử dụng phổ biến nhất của
1000000000000000000000000000000000000000000116 là xác định xem một số có chia hết cho một số khác hay không. Ví dụ: một số
1000000000000000000000000000000000000000000132 là ngay cả khi và chỉ khi
1000000000000000000000000000000000000000000133 là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
97. Bạn nghĩ gì 1000000000000000000000000000000000000000000135 trở lại? Hãy để thử nó ra:precedence, or priority, in an expression, and each of these has a higher precedence than the
>>> 1000000
1000000
>>> 1_000_000
1000000
3 and def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
56 operators. This is why 1000000000000000000000000000000000000000000164 returns
1000000000000000000000000000000000000000000118 and not
1000000000000000000000000000000000000000000166.
1000000000000000000000000000000000000000000167 is evaluated first, because
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
64
has higher precedence than the def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
56 operator.Điều này có ý nghĩa bởi vì
1000000000000000000000000000000000000000000135 đưa ra phần còn lại của việc chia
>>> 1000000
1000000
>>> 1_000_000
1000000
4 cho def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
97. Nhưng bạn có thể chia >>> 1000000
1000000
>>> 1_000_000
1000000
4 cho def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
97, vì vậy Python tăng def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
98.Mọi thứ trở nên khó khăn khi bạn sử dụng toán tử
1000000000000000000000000000000000000000000116 với số âm:
Mặc dù có khả năng gây sốc ngay từ cái nhìn đầu tiên, những kết quả này là sản phẩm của một hành vi được xác định rõ ở Python. Để tính phần còn lại
1000000000000000000000000000000000000000000143 chia số
1000000000000000000000000000000000000000000144 cho một số
1000000000000000000000000000000000000000000145, Python sử dụng phương trình
1000000000000000000000000000000000000000000146.
Ví dụ: để tìm 10000000000000000000000000000000000000000001
47, Python lần đầu tiên tìm thấy 10000000000000000000000000000000000000000001
48. Vì 10000000000000000000000000000000000000000001
49 là khoảng 10000000000000000000000000000000000000000001
50, điều đó có nghĩa là 10000000000000000000000000000000000000000001
51 là def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
82. Bây giờ Python nhân với def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
61 để nhận 10000000000000000000000000000000000000000001
24. Cuối cùng, Python trừ 10000000000000000000000000000000000000000001
24 từ 10000000000000000000000000000000000000000001
18 để nhận 10000000000000000000000000000000000000000001
57.
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
Biểu thức số học
>>>
100000000000000000000000000000000000000000015
Bạn có thể kết hợp các toán tử để tạo thành các biểu thức phức tạp. Một biểu thức là sự kết hợp của các số, toán tử và dấu ngoặc đơn mà Python có thể tính toán hoặc đánh giá, để trả về một giá trị.
Dưới đây là một số ví dụ về biểu thức số học:floating-point representation error, and it has nothing to do with Python. It’s related to the way floating-point numbers are stored in a computer’s memory.
Các quy tắc để đánh giá các biểu thức giống như trong số học hàng ngày. Ở trường, có lẽ bạn đã học các quy tắc này theo thứ tự tên hoạt động.decimal representations, or base-10 representations. Computers, however, store floating-point numbers in base-2 representation, more commonly called binary representation.
Các toán tử
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
64, def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
68, def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
79 và 1000000000000000000000000000000000000000000116 đều có ưu tiên bằng nhau, hoặc ưu tiên, trong một biểu thức và mỗi toán tử này có quyền ưu tiên cao hơn so với các toán tử
>>> 1000000
1000000
>>> 1_000_000
1000000
3 và def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
56. Đây là lý do tại sao 1000000000000000000000000000000000000000000164 trả về
1000000000000000000000000000000000000000000118 chứ không phải
1000000000000000000000000000000000000000000166.
1000000000000000000000000000000000000000000167 được đánh giá đầu tiên, vì
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
64 có quyền ưu tiên cao hơn toán tử def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
56.Bạn có thể nhận thấy rằng các biểu thức trong ví dụ trước không tuân theo quy tắc để đặt một khoảng trống ở hai bên của tất cả các toán tử. PEP 8 cho biết sau đây về khoảng trắng trong các biểu thức phức tạp:
100000000000000000000000000000000000000000016
Nếu các nhà khai thác có các ưu tiên khác nhau được sử dụng, hãy xem xét thêm khoảng trắng xung quanh các nhà khai thác với mức độ ưu tiên thấp nhất [IES]. Sử dụng phán đoán của riêng bạn; Tuy nhiên, không bao giờ sử dụng nhiều hơn một không gian và luôn có cùng một lượng khoảng trắng ở cả hai bên của toán tử nhị phân. [Nguồn]
100000000000000000000000000000000000000000017
Một thực tiễn tốt khác là sử dụng dấu ngoặc đơn để chỉ ra thứ tự thực hiện các hoạt động, ngay cả khi dấu ngoặc đơn không cần thiết. Chẳng hạn,
1000000000000000000000000000000000000000000170 có khả năng rõ ràng hơn 2*3 - 1.
Python không chỉ cắt các chữ số trong biểu diễn nhị phân cho
1000000000000000000000000000000000000000000173. Những gì thực sự xảy ra là một chút tinh tế hơn.
Bởi vì sự gần đúng của
1000000000000000000000000000000000000000000173 trong nhị phân chỉ là một xấp xỉ, nó hoàn toàn có thể là hơn một số thập phân có cùng xấp xỉ nhị phân.
Ví dụ, cả
1000000000000000000000000000000000000000000173 và
1000000000000000000000000000000000000000000188 đều có cùng xấp xỉ nhị phân. Python in ra số thập phân ngắn nhất chia sẻ xấp xỉ.
Điều này giải thích lý do tại sao, trong ví dụ đầu tiên của phần này,
1000000000000000000000000000000000000000000171 không bằng nhau
1000000000000000000000000000000000000000000172. Python cộng với các xấp xỉ nhị phân cho
1000000000000000000000000000000000000000000173 và
1000000000000000000000000000000000000000000192, đưa ra một số không phải là xấp xỉ nhị phân cho
1000000000000000000000000000000000000000000172.
Nếu tất cả điều này đang bắt đầu làm cho đầu của bạn quay cuồng, đừng lo lắng! Trừ khi bạn viết các chương trình về tài chính hoặc điện toán khoa học, bạn không cần phải lo lắng về sự thiếu chính xác của số học dấu phẩy động.
Các chức năng toán học và phương pháp số
Python có một vài chức năng tích hợp mà bạn có thể sử dụng để làm việc với các số. Trong phần này, bạn sẽ tìm hiểu về ba trong số phổ biến nhất:
10000000000000000000000000000000000000000001
94, để làm tròn số vào một số vị trí thập phân, for rounding numbers to some number of decimal places10000000000000000000000000000000000000000001
95, để nhận được giá trị tuyệt đối của một số, for getting the absolute value of a number10000000000000000000000000000000000000000001
96, để nâng một số lên một số quyền lực, for raising a number to some power
Bạn cũng sẽ tìm hiểu về một phương pháp bạn có thể sử dụng với các số điểm nổi để kiểm tra xem chúng có giá trị số nguyên hay không.
Số tròn với 10000000000000000000000000000000000000000001
94
Bạn có thể sử dụng
1000000000000000000000000000000000000000000194 để làm tròn một số vào số nguyên gần nhất:
>>>
100000000000000000000000000000000000000000018
1000000000000000000000000000000000000000000194 có một số hành vi bất ngờ khi số kết thúc trong
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
77:>>>
100000000000000000000000000000000000000000019
1000000000000000000000000000000000000000000194 có một số hành vi bất ngờ khi số kết thúc trong
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
77: def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
74 được làm tròn xuống def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
76 và 03 được làm tròn lên đến
1000000000000000000000000000000000000000000166. Hầu hết mọi người mong đợi một con số kết thúc trong
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
77 sẽ được làm tròn, vì vậy, hãy để xem xét kỹ hơn về những gì mà xảy ra ở đây.tie is any number whose last digit is five. def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
74 and 07 are ties, but
08 is not.
Python 3 vòng số theo một chiến lược gọi là liên kết làm tròn với chẵn. Một chiếc cà vạt là bất kỳ số nào có chữ số cuối cùng là năm.
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
74 và 07 là mối quan hệ, nhưng
08 thì không.
Khi bạn quan hệ tròn với thậm chí, trước tiên bạn nhìn vào một chữ số một chữ số ở bên trái của chữ số cuối cùng trong cà vạt. Nếu chữ số đó là chẵn, thì bạn làm tròn xuống. Nếu chữ số là lẻ, thì bạn làm tròn. Đó là lý do tại sao
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
74 vòng xuống đến def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
76 và 03 vòng lên đến
1000000000000000000000000000000000000000000166.
>>>
0
1000000000000000000000000000000000000000000194 có một số hành vi bất ngờ khi số kết thúc trong
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
77: def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
74 được làm tròn xuống def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
76 và 03 được làm tròn lên đến
1000000000000000000000000000000000000000000166. Hầu hết mọi người mong đợi một con số kết thúc trong
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
77 sẽ được làm tròn, vì vậy, hãy để xem xét kỹ hơn về những gì mà xảy ra ở đây.>>>
1
1000000000000000000000000000000000000000000194 có một số hành vi bất ngờ khi số kết thúc trong
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
77:>>>
2
1000000000000000000000000000000000000000000194 có một số hành vi bất ngờ khi số kết thúc trong
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
77: def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
74 được làm tròn xuống def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
76 và 03 được làm tròn lên đến
1000000000000000000000000000000000000000000166. Hầu hết mọi người mong đợi một con số kết thúc trong
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
77 sẽ được làm tròn, vì vậy, hãy để xem xét kỹ hơn về những gì mà xảy ra ở đây.Python 3 vòng số theo một chiến lược gọi là liên kết làm tròn với chẵn. Một chiếc cà vạt là bất kỳ số nào có chữ số cuối cùng là năm.
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
74 và 07 là mối quan hệ, nhưng
08 thì không.
Khi bạn quan hệ tròn với thậm chí, trước tiên bạn nhìn vào một chữ số một chữ số ở bên trái của chữ số cuối cùng trong cà vạt. Nếu chữ số đó là chẵn, thì bạn làm tròn xuống. Nếu chữ số là lẻ, thì bạn làm tròn. Đó là lý do tại sao def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
74 vòng xuống đến def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
76 và
03 vòng lên đến 10000000000000000000000000000000000000000001
66.
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
Bạn có thể làm tròn một số vào một số vị trí thập phân nhất định bằng cách chuyển một đối số thứ hai cho
1000000000000000000000000000000000000000000194:
Số
14 được làm tròn đến ba vị trí thập phân để có được
15 và số
16 được làm tròn đến hai vị trí thập phân để có được
17.
>>>
3
1000000000000000000000000000000000000000000194 có một số hành vi bất ngờ khi số kết thúc trong
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
77: def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
74 được làm tròn xuống def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
76 và
03 được làm tròn lên đến 10000000000000000000000000000000000000000001
66. Hầu hết mọi người mong đợi một con số kết thúc trong def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
77 sẽ được làm tròn, vì vậy, hãy để xem xét kỹ hơn về những gì mà xảy ra ở đây.
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
Python 3 vòng số theo một chiến lược gọi là liên kết làm tròn với chẵn. Một chiếc cà vạt là bất kỳ số nào có chữ số cuối cùng là năm.
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
74 và 07 là mối quan hệ, nhưng
08 thì không.
Khi bạn quan hệ tròn với thậm chí, trước tiên bạn nhìn vào một chữ số một chữ số ở bên trái của chữ số cuối cùng trong cà vạt. Nếu chữ số đó là chẵn, thì bạn làm tròn xuống. Nếu chữ số là lẻ, thì bạn làm tròn. Đó là lý do tại sao
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
74 vòng xuống đến def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
76 và 03 vòng lên đến
1000000000000000000000000000000000000000000166.base, or the number to be raised to a power, and the second argument is the exponent, or the power to which the number is to be raised.
Bạn có thể làm tròn một số vào một số vị trí thập phân nhất định bằng cách chuyển một đối số thứ hai cho
1000000000000000000000000000000000000000000194:
Số
14 được làm tròn đến ba vị trí thập phân để có được
15 và số
16 được làm tròn đến hai vị trí thập phân để có được
17.
Đối số thứ hai của
1000000000000000000000000000000000000000000194 phải là một số nguyên. Nếu nó không phải là người, thì Python tăng
19:
Hàm
1000000000000000000000000000000000000000000196 chấp nhận một đối số thứ ba tùy chọn tính toán số thứ nhất được nâng lên công suất của số thứ hai, sau đó lấy modulo liên quan đến số thứ ba. Nói cách khác,
48 tương đương với
49.
Dưới đây, một ví dụ trong đó
50,
51 và
52:
Đầu tiên,
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
76 được nâng lên sức mạnh def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
63 để có được 1000000000000000000000000000000000000000000126. Sau đó,
56 được tính toán, đó là
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
97 vì def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
76 chia 1000000000000000000000000000000000000000000126 mà không có phần còn lại.
Kiểm tra xem một chiếc phao có thể tích không
Bạn có thể quen thuộc với các phương thức chuỗi như
60,
61 và
62. Số nguyên và số điểm nổi cũng có phương pháp.
Các phương thức số aren được sử dụng rất thường xuyên, nhưng có một phương pháp có thể hữu ích. Các số điểm nổi có phương thức
63 trả về
64 nếu số này là tích phân có nghĩa là nó không có phần phân số nào và nếu không thì trả về
65:integral—meaning it has no fractional part—and otherwise returns
65:
>>>
4
Một cách sử dụng cho
63 là để xác thực đầu vào của người dùng. Ví dụ: nếu bạn đang viết một ứng dụng đặt hàng trực tuyến cho một pizzeria, thì bạn sẽ muốn kiểm tra xem số lượng pizza mà đầu vào của khách hàng là một số.
Các hàm
1000000000000000000000000000000000000000000194,
1000000000000000000000000000000000000000000195 và
1000000000000000000000000000000000000000000196 là các chức năng tích hợp, có nghĩa là bạn không phải nhập bất cứ thứ gì để sử dụng chúng. Nhưng ba chức năng này hầu như không làm trầy xước bề mặt của tất cả các chức năng có sẵn để làm việc với các số trong Python.
Để có thêm niềm vui toán học, hãy xem mô -đun toán học Python: Mọi thứ bạn cần biết!
Kiểm tra việc hiểu của bạn
Mở rộng khối bên dưới để kiểm tra sự hiểu biết của bạn:
Viết một chương trình yêu cầu người dùng nhập một số và sau đó hiển thị số đó được làm tròn đến hai vị trí thập phân. Khi chạy, chương trình của bạn sẽ trông như thế này:
5
Bạn có thể mở rộng khối bên dưới để xem giải pháp:
Để nhận đầu vào từ người dùng, hãy chuyển lời nhắc đến
70:
6
Lưu ý không gian ở cuối chuỗi nhắc. Điều này đảm bảo có một khoảng trống giữa văn bản được nhập bởi người dùng khi họ bắt đầu gõ và dấu hai chấm trong lời nhắc.
Giá trị được trả về bởi
70 là một chuỗi, vì vậy bạn cần chuyển đổi nó thành một chiếc phao trước khi bạn có thể làm tròn số:
Hãy nhớ rằng mã trên giả định rằng chuỗi
72 thực sự chứa một giá trị số chứ không phải bất kỳ loại văn bản nào khác.
Bây giờ bạn có thể sử dụng
1000000000000000000000000000000000000000000194 để làm tròn giá trị đến hai vị trí thập phân:
7
Hãy nhớ rằng, đối số đầu tiên cho
1000000000000000000000000000000000000000000194 phải là số được làm tròn. Đối số thứ hai là số lượng vị trí thập phân để làm tròn.
Cuối cùng, bạn có thể in ouput bằng cách chèn
75 vào chuỗi F:
8
1000000000000000000000000000000000000000000194 là một cách tuyệt vời cho các giá trị tròn, nhưng nếu bạn chỉ làm tròn các giá trị để hiển thị chúng, thì bạn có thể xem xét sử dụng các kỹ thuật được mô tả trong phần sau.
Khi bạn đã sẵn sàng, bạn có thể chuyển sang phần tiếp theo.
Số in theo kiểu
Hiển thị số cho người dùng yêu cầu chèn số vào một chuỗi. Bạn có thể làm điều này với các chuỗi F bằng cách xung quanh một biến được gán cho một số có niềng răng xoăn:
>>>
9
Một cách sử dụng cho
63 là để xác thực đầu vào của người dùng. Ví dụ: nếu bạn đang viết một ứng dụng đặt hàng trực tuyến cho một pizzeria, thì bạn sẽ muốn kiểm tra xem số lượng pizza mà đầu vào của khách hàng là một số.
Các hàm
1000000000000000000000000000000000000000000194,
1000000000000000000000000000000000000000000195 và
1000000000000000000000000000000000000000000196 là các chức năng tích hợp, có nghĩa là bạn không phải nhập bất cứ thứ gì để sử dụng chúng. Nhưng ba chức năng này hầu như không làm trầy xước bề mặt của tất cả các chức năng có sẵn để làm việc với các số trong Python.
>>>
0
Một cách sử dụng cho
63 là để xác thực đầu vào của người dùng. Ví dụ: nếu bạn đang viết một ứng dụng đặt hàng trực tuyến cho một pizzeria, thì bạn sẽ muốn kiểm tra xem số lượng pizza mà đầu vào của khách hàng là một số.
Các hàm
1000000000000000000000000000000000000000000194,
1000000000000000000000000000000000000000000195 và
1000000000000000000000000000000000000000000196 là các chức năng tích hợp, có nghĩa là bạn không phải nhập bất cứ thứ gì để sử dụng chúng. Nhưng ba chức năng này hầu như không làm trầy xước bề mặt của tất cả các chức năng có sẵn để làm việc với các số trong Python.fixed-point number. This means that the number is displayed with exactly two decimal places, even if the original number has fewer decimal places.
Để có thêm niềm vui toán học, hãy xem mô -đun toán học Python: Mọi thứ bạn cần biết!
>>>
1
Một cách sử dụng cho
63 là để xác thực đầu vào của người dùng. Ví dụ: nếu bạn đang viết một ứng dụng đặt hàng trực tuyến cho một pizzeria, thì bạn sẽ muốn kiểm tra xem số lượng pizza mà đầu vào của khách hàng là một số.
>>>
2
Một cách sử dụng cho
63 là để xác thực đầu vào của người dùng. Ví dụ: nếu bạn đang viết một ứng dụng đặt hàng trực tuyến cho một pizzeria, thì bạn sẽ muốn kiểm tra xem số lượng pizza mà đầu vào của khách hàng là một số.
>>>
3
Một cách sử dụng cho
63 là để xác thực đầu vào của người dùng. Ví dụ: nếu bạn đang viết một ứng dụng đặt hàng trực tuyến cho một pizzeria, thì bạn sẽ muốn kiểm tra xem số lượng pizza mà đầu vào của khách hàng là một số.
>>>
4
Một cách sử dụng cho
63 là để xác thực đầu vào của người dùng. Ví dụ: nếu bạn đang viết một ứng dụng đặt hàng trực tuyến cho một pizzeria, thì bạn sẽ muốn kiểm tra xem số lượng pizza mà đầu vào của khách hàng là một số.
>>>
5
Bộ xác định
99 rất hữu ích để hiển thị các giá trị tiền tệ:
>>>
6
Một tùy chọn hữu ích khác là
1000000000000000000000000000000000000000000116, được sử dụng để hiển thị tỷ lệ phần trăm. Tùy chọn
1000000000000000000000000000000000000000000116 nhân số một số với
02 và hiển thị nó ở định dạng điểm cố định, theo sau là dấu hiệu phần trăm.
Tùy chọn
1000000000000000000000000000000000000000000116 phải luôn luôn đi vào cuối thông số kỹ thuật định dạng của bạn và bạn có thể trộn nó với tùy chọn
84. Ví dụ:
05 hiển thị một số theo tỷ lệ phần trăm với chính xác một vị trí thập phân:
>>>
7
Các định dạng ngôn ngữ mini là mạnh mẽ và rộng rãi. Bạn chỉ thấy những điều cơ bản ở đây. Để biết thêm thông tin, hãy kiểm tra các tài liệu chính thức.
Kiểm tra việc hiểu của bạn
Mở rộng khối bên dưới để kiểm tra sự hiểu biết của bạn:
In số
06 dưới dạng tiền tệ với hàng ngàn được nhóm bởi dấu phẩy. Tiền tệ nên được hiển thị với hai vị trí thập phân và bắt đầu với biểu tượng đô la Mỹ.
Bạn có thể mở rộng khối bên dưới để xem giải pháp:
Hãy cùng xây dựng chuỗi F của chúng tôi từng bước một.
Đầu tiên, chuỗi F hiển thị giá trị
06 mà không có bất kỳ định dạng nào trông như thế này:
>>>
8
Điều này có thể trông có vẻ kỳ lạ, nhưng nó thiết lập bạn để thêm các định dạng định dạng.
Để đảm bảo rằng giá trị được hiển thị dưới dạng số điểm nổi, hãy đặt dấu hai chấm [
79] sau số
06, tiếp theo là chữ cái
84:
>>>
9
Theo mặc định, Python hiển thị số với sáu vị trí thập phân chính xác. Tiền tệ chỉ nên có hai vị trí chính xác thập phân, vì vậy bạn có thể thêm
82 giữa
79 và
84:
>>>
>>> type[1]
0Để hiển thị số với các chữ số được nhóm bởi dấu phẩy, chèn dấu phẩy [
96] giữa dấu hai chấm [
79] và dấu chấm [
98]:
>>>
>>> type[1]
1Cuối cùng, thêm một dấu hiệu đô la [
17] ở đầu chuỗi để chỉ ra rằng giá trị bằng đô la Mỹ:
>>>
>>> type[1]
2F-String chỉ là một cách để định dạng số để hiển thị. Kiểm tra một hướng dẫn cho các kỹ thuật định dạng chuỗi Python mới hơn để biết nhiều cách hơn để định dạng số và văn bản khác trong Python.
Khi bạn đã sẵn sàng, bạn có thể chuyển sang phần tiếp theo.
Số phức
Python là một trong số ít ngôn ngữ lập trình cung cấp hỗ trợ tích hợp cho các số phức tạp. Trong khi các số phức tạp don don thường xuất hiện bên ngoài các lĩnh vực của máy tính khoa học và đồ họa máy tính, nhưng sự hỗ trợ của Python đối với chúng là một trong những thế mạnh của nó.
Nếu bạn đã từng tham gia một lớp toán đại số cấp độ hoặc cấp cao hơn, thì bạn có thể nhớ rằng một số phức là một số có hai thành phần riêng biệt: một phần thực và một phần tưởng tượng.real part and an imaginary part.
Để tạo một số phức tạp trong Python, bạn chỉ cần viết phần thực, sau đó là một dấu cộng, sau đó là phần tưởng tượng với chữ J ở cuối:
Khi bạn kiểm tra giá trị của
1000000000000000000000000000000000000000000132, bạn sẽ nhận thấy rằng Python kết thúc số với dấu ngoặc đơn:
Công ước này giúp loại bỏ bất kỳ sự nhầm lẫn nào mà đầu ra được hiển thị có thể đại diện cho một chuỗi hoặc biểu thức toán học.
Các số tưởng tượng đi kèm với hai thuộc tính,
19 và
20, trả về các thành phần thực và tưởng tượng của số, tương ứng:
>>>
>>> type[1]
3Lưu ý rằng Python trả về cả các thành phần thực và tưởng tượng như phao, mặc dù chúng được chỉ định là số nguyên.
Các số phức cũng có phương thức
21 trả về liên hợp phức tạp của số:
>>>
>>> type[1]
4Đối với bất kỳ số phức, liên hợp của nó là số phức với cùng một phần thực và một phần tưởng tượng giống nhau về giá trị tuyệt đối nhưng với dấu hiệu ngược lại. Vì vậy, trong trường hợp này, liên hợp phức tạp của
22 là
23.conjugate is the complex number with the same real part and an imaginary part that is the same in absolute value but with the opposite sign. So in this case, the complex conjugate of
22 is
23.
Ngoại trừ toán tử phân chia sàn [
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
79], tất cả các toán tử số học hoạt động với phao và số nguyên cũng sẽ hoạt động với các số phức tạp. Vì đây không phải là một hướng dẫn toán học tiên tiến, chúng tôi đã giành chiến thắng thảo luận về các cơ chế của số học phức tạp. Thay vào đó, đây là một số ví dụ về việc sử dụng các số phức tạp với các toán tử số học:>>>
>>> type[1]
5Thật thú vị, mặc dù không có gì đáng ngạc nhiên từ quan điểm toán học, các đối tượng
>>> 1000000.0
1000000.0
>>> 1_000_000.0
1000000.0
>>> 1e6
1000000.0
7 và ____10109 cũng có các thuộc tính 19 và
20 cũng như phương pháp
21:
>>>
>>> type[1]
6Đối với phao và số nguyên,
19 và
21 luôn tự trả lại số và
20 luôn trả về
def HashVal[self]:
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
97. Tuy nhiên, một điều cần chú ý là 34 và
35 trả về số nguyên nếu
1000000000000000000000000000000000000000000132 là một số nguyên và nổi nếu
1000000000000000000000000000000000000000000132 là một chiếc phao.
Bây giờ bạn đã nhìn thấy những điều cơ bản của các con số phức tạp, bạn có thể tự hỏi khi nào bạn cần phải sử dụng chúng. Nếu bạn đang học Python để phát triển web, khoa học dữ liệu hoặc lập trình mục đích chung, thì sự thật là bạn có thể không bao giờ cần sử dụng các số phức tạp.
Mặt khác, các số phức tạp rất quan trọng trong các lĩnh vực như điện toán khoa học và đồ họa máy tính. Nếu bạn từng làm việc trong các miền đó, thì bạn có thể thấy Python, hỗ trợ tích hợp cho các số phức tạp hữu ích.
Kết luận: Số trong Python
Trong hướng dẫn này, bạn đã học được tất cả về việc làm việc với các con số trong Python. Bạn đã thấy rằng có hai loại số cơ bản của các số con số và số điểm nổi, và Python cũng có hỗ trợ tích hợp cho các số phức tạp.
Trong hướng dẫn này, bạn đã học được:
- Cách thực hiện số học cơ bản với các số sử dụng các toán tử số học Pythonarithmetic operators
- Cách viết các biểu thức số học bằng cách sử dụng các thực tiễn tốt nhất của PEParithmetic expressions using PEP 8 best practices
- Số điểm nổi là gì và tại sao chúng có thể không phải lúc nào cũng chính xác 100 %floating-point numbers are and why they may not always be 100 percent accurate
- Cách làm tròn số với
10000000000000000000000000000000000000000001
94round numbers with10000000000000000000000000000000000000000001
94 - Những con số phức tạp là gì và cách họ hỗ trợ trong Pythoncomplex numbers are and how they’re supported in Python
Bất kể mức độ thoải mái của bạn với các số và toán học, giờ đây bạn đã sẵn sàng để thực hiện tất cả các loại tính toán trong mã Python của bạn. Bạn có thể sử dụng kiến thức này để giải quyết một loạt các vấn đề mà bạn sẽ gặp phải trong sự nghiệp lập trình của mình.
Đọc thêm
Để biết thêm thông tin về số và toán học trong Python, hãy xem các tài nguyên này:
- Các loại dữ liệu cơ bản trong Python
- Mô -đun toán học Python: Mọi thứ bạn cần biết
- Cách làm tròn số trong Python
- Chức năng gốc Python