Python 2 sẽ tự động đặt loại dựa trên kích thước của giá trị. Một hướng dẫn về các giá trị tối đa có thể được tìm thấy dưới đây.
Giá trị tối đa của int mặc định trong python 2 là 65535, bất cứ thứ gì trên đó sẽ dài
Ví dụ:
>> print type[65535]
>>> print type[65536*65536]
Trong Python 3, kiểu dữ liệu dài đã bị xóa và tất cả các giá trị số nguyên được xử lý bởi lớp INT. Kích thước mặc định của INT sẽ phụ thuộc vào kiến trúc CPU của bạn.
Ví dụ:
- Các hệ thống 32 bit Kiểu dữ liệu mặc định cho số nguyên sẽ là 'INT32'
- Hệ thống 64 bit Kiểu dữ liệu mặc định cho số nguyên sẽ là 'int64'
Các giá trị tối đa/tối đa của từng loại có thể được tìm thấy bên dưới:
- Int8: [-128.127]
- Int16: [-32768.32767]
- Int32: [-2147483648,2147483647]
- Int64: [-9223372036854775808,9223372036854775807]
- Int128: [-170141183460469231731687303715884105728,170141183460469231731687303715884105727]
- UINT8: [0,255]
- UINT16: [0,65535]
- UINT32: [0,4294967295]
- UINT64: [0,18446744073709551615]
- UINT128: [0,340282366920938463463374607431768211455]
Nếu kích thước của INT của bạn vượt quá các giới hạn được đề cập ở trên, Python sẽ tự động thay đổi loại của nó và phân bổ nhiều bộ nhớ hơn để xử lý sự gia tăng này trong các giá trị tối đa/tối đa. Trong trường hợp trong Python 2, nó sẽ chuyển đổi thành 'Long', giờ đây nó chỉ chuyển đổi thành kích thước tiếp theo của int.
Ví dụ: Nếu bạn đang sử dụng hệ điều hành 32 bit, giá trị tối đa của bạn sẽ là 2147483647 theo mặc định. Nếu giá trị từ 2147483648 trở lên được gán, loại sẽ được thay đổi thành Int64.
Có nhiều cách khác nhau để kiểm tra kích thước của INT và đó là phân bổ bộ nhớ. Lưu ý: Trong Python 3, sử dụng phương thức loại tích hợp [] sẽ luôn trả về cho dù bạn đang sử dụng kích thước nào.
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
Python3
Bàn luận
Xem xét dưới đây chương trình Python. & NBSP;
x
=
10000000000000000000000000000000000000000000
x
=
x
100000000000000000000000000000000000000000013
100000000000000000000000000000000000000000014
10000000000000000000000000000000000000000001
10000000000000000000000000000000000000000001
5 10000000000000000000000000000000000000000001
6this 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.
Đầu ra: & nbsp;
Trong Python, giá trị của một số nguyên không bị hạn chế bởi số lượng bit và có thể mở rộng đến giới hạn của bộ nhớ có sẵn [Nguồn: Điều này và điều này]. Do đó, chúng tôi không bao giờ cần bất kỳ sự sắp xếp đặc biệt nào để lưu trữ số lượng lớn [tưởng tượng làm trên số học trong C/C ++]. Như một lưu ý phụ, trong Python 3, chỉ có một loại Int Int cho tất cả các loại số nguyên. Trong Python 2.7. Có hai loại riêng biệt của Int Int [là 32 bit] và Long Long Int, giống như của Int Int của Python 3.x, tức là, có thể lưu trữ số lượng lớn tùy ý. & NBSP;
100000000000000000000000000000000000000000015
1
2
3
Bàn luận
100000000000000000000000000000000000000000015
1
2
3
Xem xét dưới đây chương trình Python. & NBSP;
Python3
Trong Python, giá trị của một số nguyên không bị hạn chế bởi số lượng bit và có thể mở rộng đến giới hạn của bộ nhớ có sẵn [Nguồn: Điều này và điều này]. Do đó, chúng tôi không bao giờ cần bất kỳ sự sắp xếp đặc biệt nào để lưu trữ số lượng lớn [tưởng tượng làm trên số học trong C/C ++]. Như một lưu ý phụ, trong Python 3, chỉ có một loại Int Int cho tất cả các loại số nguyên. Trong Python 2.7. Có hai loại riêng biệt của Int Int [là 32 bit] và Long Long Int, giống như của Int Int của Python 3.x, tức là, có thể lưu trữ số lượng lớn tùy ý. & NBSP;
100000000000000000000000000000000000000000015
1
2
3
Bàn luận
100000000000000000000000000000000000000000015
1
2
3
Xem xét dưới đây chương trình Python. & NBSP;
x
=
10000000000000000000000000000000000000000000
Python3
x
=
x
100000000000000000000000000000000000000000013
100000000000000000000000000000000000000000014Abhay Rathi. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
Đã có hai thay đổi lớn trong cách Python 3 xử lý các số: Phân chia thực sự thay thế phân chia cắt ngắn và loại whole_minutes = seconds // 60
5 được hợp nhất thành whole_minutes = seconds // 60
6.
Phần này mô tả những thay đổi này một cách chi tiết, cùng với những thay đổi khác, nhỏ.
Phân công¶
- FIXER: Không có: None
- Nhập khẩu trong tương lai:
whole_minutes = seconds // 60
7 - Tỷ lệ lưu hành: chung
Trong Python 2, việc chia hai số nguyên dẫn đến một số nguyên:
Bộ phận cắt ngắn này được kế thừa từ các ngôn ngữ dựa trên C, nhưng những người bối rối, những người không biết các ngôn ngữ đó, chẳng hạn như những ngôn ngữ đến từ JavaScript hoặc Toán thuần túy.
Trong Python 3, việc chia hai số nguyên dẫn đến một chiếc phao:
Toán tử
whole_minutes = seconds // 608, được thêm vào tất cả các cách trở lại trong Python 2.2, luôn thực hiện bộ phận cắt ngắn:
whole_minutes = seconds // 60
Chỉ thị
whole_minutes = seconds // 607 khiến toán tử
class CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__0 hoạt động giống nhau trong Python 2 như trong Python 3. Chúng tôi khuyên bạn nên thêm nó vào tất cả các mô -đun sử dụng toán tử phân chia, do đó sự khác biệt giữa các phiên bản Python là tối thiểu.
Khi thêm nhập trong tương lai, hãy kiểm tra tất cả các bộ phận trong tệp và quyết định xem nhà điều hành có nên được thay đổi thành
whole_minutes = seconds // 608 hay không.
Phương pháp đặc biệt
Để quá tải toán tử
class CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__0 cho một lớp trong Python 2, một người đã xác định phương pháp đặc biệt
class CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__3. Với sự thay đổi phân chia, có hai phương pháp để xác định:
class CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__
4Xác định hành vi của toán tử
whole_minutes = seconds // 60
8.class CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__
6Xác định hành vi của toán tử
class CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__
0 trong Python 3 và trong Python 2 khi nhập khẩu tương laiclass CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__
8 có hiệu lực.class CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__
3Xác định hành vi của toán tử
class CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__
0 trong Python 2, khi nhập trong tương laiclass CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__
8 không có hiệu lực.Hoàn toàn không được sử dụng trong Python 3.
Kiểm tra tất cả các lớp xác định
class CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__3 và thêm
class CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__4 và/hoặc
class CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__6 khi cần thiết. Điều này có thể được thực hiện với một bí danh đơn giản:
class CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__
Hợp nhất whole_minutes = seconds // 60
6 và ________ 45¶
Python 3 không có loại
whole_minutes = seconds // 605. Thay vào đó, bản thân
whole_minutes = seconds // 606 cho phép các giá trị lớn [chỉ giới hạn bởi bộ nhớ có sẵn]; Trên thực tế, Python 2,
whole_minutes = seconds // 605 được đổi tên thành
whole_minutes = seconds // 606.
Sự thay đổi này có một số hậu quả.
Loại bỏ loại whole_minutes = seconds // 60
5
- Fixer:
x
2:x
2 - Tỷ lệ lưu hành: chung
Trong Python 2, việc chia hai số nguyên dẫn đến một số nguyên:
Bộ phận cắt ngắn này được kế thừa từ các ngôn ngữ dựa trên C, nhưng những người bối rối, những người không biết các ngôn ngữ đó, chẳng hạn như những ngôn ngữ đến từ JavaScript hoặc Toán thuần túy.
Trong Python 3, việc chia hai số nguyên dẫn đến một chiếc phao:
Toán tử
whole_minutes = seconds // 608, được thêm vào tất cả các cách trở lại trong Python 2.2, luôn thực hiện bộ phận cắt ngắn:
Chỉ thị
whole_minutes = seconds // 607 khiến toán tử
class CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__0 hoạt động giống nhau trong Python 2 như trong Python 3. Chúng tôi khuyên bạn nên thêm nó vào tất cả các mô -đun sử dụng toán tử phân chia, do đó sự khác biệt giữa các phiên bản Python là tối thiểu.
Khi thêm nhập trong tương lai, hãy kiểm tra tất cả các bộ phận trong tệp và quyết định xem nhà điều hành có nên được thay đổi thành
whole_minutes = seconds // 608 hay không.
Phương pháp đặc biệt
- Để quá tải toán tử
class CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__
0 cho một lớp trong Python 2, một người đã xác định phương pháp đặc biệtclass CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__
3. Với sự thay đổi phân chia, có hai phương pháp để xác định::=
9 [but see below] - Xác định hành vi của toán tử
whole_minutes = seconds // 60
8.
Xác định hành vi của toán tử
class CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__0 trong Python 3 và trong Python 2 khi nhập khẩu tương lai
class CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__8 có hiệu lực.
Xác định hành vi của toán tử
class CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__0 trong Python 2, khi nhập trong tương lai
class CustomClass[object]: def __div__[self, other]: return _divide[self, other] __truediv__ = __div__8 không có hiệu lực.
Hoàn toàn không được sử dụng trong Python 3.octal literal fixes described below.
Nếu loại cụ thể là quan trọng, bạn sẽ cần phải tái cấu trúc mã để nó không dựa vào sự khác biệt, như đã thảo luận ở trên.
Hậu tố =
8 giảm xuống từ đại diện
- FIXER: Không có: None
- Tỷ lệ lưu hành: Hiếm
Trong Python 2, các đại diện kinh điển của các số nguyên dài bao gồm hậu tố =
8. Ví dụ,
1000000000000000000000000000000000000000000102 là
1000000000000000000000000000000000000000000103 trên hầu hết các hệ thống. Trong Python 3, hậu tố không xuất hiện. Lưu ý rằng điều này chỉ ảnh hưởng đến
1000000000000000000000000000000000000000000104, biểu diễn chuỗi [được đưa ra bởi
1000000000000000000000000000000000000000000105 hoặc
1000000000000000000000000000000000000000000106] không có hậu tố.
Các đại diện kinh điển hiếm khi được sử dụng, ngoại trừ trong các tài liệu.
Như đã thảo luận trước đây, dựa vào sự khác biệt ____ 46/________ 45 là mong manh. Bằng cách mở rộng, dựa vào đầu ra của
1000000000000000000000000000000000000000000104 của số dài cũng rất dễ vỡ. Gọi
1000000000000000000000000000000000000000000105 thay vì
1000000000000000000000000000000000000000000111 khi kết quả có thể là một số nguyên [dài].
Theo nghĩa ba chữ Octal
- Fixer:
=
9 [nhưng xem bên dưới]:=
9 [but see below] - Tỷ lệ: Không phổ biến
Python 2, sự nắm giữ khác từ các ngôn ngữ dựa trên C là cú pháp của các nghĩa đen: số không có sự thay đổi được giải thích trong cơ sở 8. Ví dụ, giá trị của
1000000000000000000000000000000000000000000113 là
1000000000000000000000000000000000000000000114 và
1000000000000000000000000000000000000000000115 gây ra cú pháp khá vô ích. Điều này là đáng ngạc nhiên đối với những người không quen thuộc với C, và nó có thể dẫn đến các lỗi khó có điểm.
Python 2.6 đã giới thiệu tiền tố
1000000000000000000000000000000000000000000116 như là một giải pháp thay thế cho đơn giản
1000000000000000000000000000000000000000000117. Python 3 giảm tiền tố
1000000000000000000000000000000000000000000117: Các chữ số nguyên bắt đầu với
1000000000000000000000000000000000000000000117 là bất hợp pháp [ngoại trừ chính nó và ________ 120/________ 116/________ 122 tiền tố].
Bạn sẽ cần phải thay đổi số 0 hàng đầu trong tất cả các chữ ____ 117-prefix thành
1000000000000000000000000000000000000000000116. Trình sửa chữa được đề xuất sẽ tự động thực hiện việc này, cùng với các bản sửa lỗi dài theo nghĩa đen được mô tả ở trên.long literal fixes described above.