Hướng dẫn a python int can represent indefinitely large numbers. - một int python có thể đại diện cho số lượng lớn vô hạn.

Loại ngôn ngữ nào là của bạn?

Show

Có một loại số nguyên tự động điều chỉnh theo độ lớn của một số sẽ không hiệu quả như loại Int64 chặt chẽ chẳng hạn.

Tương tác với phao, với FFI, với mọi thứ cũng bị ảnh hưởng.

Python sử dụng gõ động và không được biết đến với tốc độ của nó.

Nhưng tôi đã bị mắc kẹt về cách đọc và giải thích các byte, bởi vì C wasn đã cho chúng tôi các định dạng định dạng điển hình và tôi không thể nghĩ ra cách đọc các con số từ bộ nhớ.

Trừ khi bạn muốn tự thực hiện nó (có lẽ là 1000 dòng mã, một bài tập thú vị), bạn sẽ sử dụng thư viện.

Mọi người đã đề cập đến GMP, một thư viện khổng lồ mà bạn thường dự kiến ​​sẽ xây dựng từ nguồn, tuy nhiên được chôn vùi với các nguồn là một phiên bản nhỏ, tôi tin rằng

>>> type(1.0)
<class 'float'>
5, được triển khai dưới dạng hai tệp nguồn C (
>>> type(1.0)
<class 'float'>
6 và
>>> type(1.0)
<class 'float'>
7, hoặc một cái gì đó tương tự).

Bạn sẽ không thể sử dụng

>>> type(1.0)
<class 'float'>
8 của C để hiển thị nó hoặc
>>> type(1.0)
<class 'float'>
9 để đọc một số nguyên lớn; Bạn sẽ phải xem xét những cơ sở GMP để chuyển đổi đến và từ văn bản.

.

Điều này đảm bảo số học bình thường chạy nhanh nhất có thể. Mã cần số lượng lớn là rất hiếm, và nó cần được yêu cầu rõ ràng, do đó

>>> float("1.25")
1.25
0 sẽ tràn Int64, nhưng
>>> float("1.25")
1.25
1 cho giá trị phù hợp. Tôi sử dụng thư viện của riêng mình cũng sử dụng số thập phân, không phải nhị phân, đại diện.)

Ưu điểm của các số điểm nổi là chúng có thể biểu thị một phạm vi giá trị lớn hơn nhiều so với số nguyên có thể. Nhược điểm là có những con số mà chúng không thể đại diện chính xác. Các hệ thống hiện đại hỗ trợ số học dấu phẩy động trong phần cứng, với một loạt các giá trị hạn chế.

int global_min = INT_MIN #infinitely small number

Điều nào sau đây không phải là một loại dữ liệu Python được tích hợp trong chuỗi hợp lý Float Float?

Hướng dẫn a python int can represent indefinitely large numbers. - một int python có thể đại diện cho số lượng lớn vô hạn.

Câu trả lời là tùy chọn một số và chuỗi B. Trong Python, kiểu dữ liệu số không có ở đó nhưng Python sử dụng int để xác định một biến cho số. Ngoài ra, không có kiểu dữ liệu chuỗi trong Python thay vào đó có kiểu Datatat để xác định một biến chuỗi.

Có thể tính toán chức năng hỗn loạn bằng máy tính không?11 gold badges62 silver badges94 bronze badges

Một chức năng hỗn loạn không thể được tính toán bởi một máy tính.Mar 27, 2020 at 14:18

Hướng dẫn a python int can represent indefinitely large numbers. - một int python có thể đại diện cho số lượng lớn vô hạn.

6

Khi tôi muốn bắt đầu một số cho vô số nhỏ/lớn để không có số nào khác lớn hơn/nhỏ hơn - có phiên bản C ++ - int_min:

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')

Phiên bản tương đương Python cho siêu nhỏ, siêu lớn là gì?Mar 27, 2020 at 14:29

ÐаnViswa

10,8K11 Huy hiệu vàng62 Huy hiệu bạc94 Huy hiệu đồng1 silver badge14 bronze badges

1

Đã hỏi ngày 27 tháng 3 năm 2020 lúc 14:18
You can create an infinite float, though, and all integers will be less than that:

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True

Đối với số lượng nhỏ hoặc số lớn chỉ đơn giản là sử dụng

>>> float("1.25")
1.25
2 sau khi nhập
>>> float("1.25")
1.25
3.Mar 27, 2020 at 14:26

Hướng dẫn a python int can represent indefinitely large numbers. - một int python có thể đại diện cho số lượng lớn vô hạn.

Đã trả lời ngày 27 tháng 3 năm 2020 lúc 14:29molbdnilo

Viswaviswa3 gold badges41 silver badges77 bronze badges

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ệ.numbers are an integral part of any programming language, and Python is no exception.

Trong hướng dẫn này, bạn sẽ học cách:

  • Tạo số nguyên và số điểm nổiintegers and floating-point numbers
  • Số tròn đến một số vị trí thập phân nhất định to a given number of decimal places
  • Định dạng và số hiển thị trong chuỗistrings

Bắt đầu nào!

Số nguyên và số điểm nổi

Python có ba loại dữ liệu số tích hợp: số nguyên, số dấu phẩy động và số phức. Trong phần này, bạn sẽ tìm hiểu về số nguyên và số dấu phẩy động, là hai loại số được sử dụng phổ biến nhất. Bạn sẽ tìm hiểu về các số phức tạp trong một phần sau.

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ụ,

>>> float("1.25")
1.25
4 là một số nguyên, nhưng
>>> float("1.25")
1.25
5 isn. Tên cho kiểu dữ liệu số nguyên là
>>> float("1.25")
1.25
6, mà bạn có thể thấy với
>>> float("1.25")
1.25
7:integer is a whole number with no decimal places. For example,
>>> float("1.25")
1.25
4 is an integer, but
>>> float("1.25")
1.25
5 isn’t. The name for the integer data type is
>>> float("1.25")
1.25
6, which you can see with
>>> float("1.25")
1.25
7:

>>>

>>> type(1)
<class 'int'>

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

>>> float("1.25")
1.25
8 cho biến
>>> float("1.25")
1.25
9:

Khi bạn tạo một số nguyên như thế này, giá trị

>>> float("1.25")
1.25
8 đượ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

>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
1. Ví dụ: sau đây chuyển đổi chuỗi
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
2 thành số nguyên
>>> float("1.25")
1.25
8:

>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
4 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 (

>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
5). 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

>>> float("1.25")
1.25
8 cho biến
>>> float("1.25")
1.25
9:

Khi bạn tạo một số nguyên như thế này, giá trị >>> float("1.25") 1.25 8 đượ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

>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
1. Ví dụ: sau đây chuyển đổi chuỗi
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
2 thành số nguyên
>>> float("1.25")
1.25
8:floating-point number, or float for short, is a number with a decimal place.
>>> float("1.25")
1.25
5 is a floating-point number, as is
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
7. The name of the floating-point data type is
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
8:

>>>

>>> type(1.0)
<class 'float'>

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

>>> float("1.25")
1.25
8 cho biến
>>> float("1.25")
1.25
9:floating-point literals or by converting a string to a float with
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
9:

>>>

>>> 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

>>> float("1.25")
1.25
8 cho biến
>>> float("1.25")
1.25
9:

>>>

>>> 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

>>> float("1.25")
1.25
8 cho biến
>>> float("1.25")
1.25
9:E notation to create a float literal.

Khi bạn tạo một số nguyên như thế này, giá trị

>>> float("1.25")
1.25
8 đượ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

>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
1. Ví dụ: sau đây chuyển đổi chuỗi
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
2 thành số nguyên
>>> float("1.25")
1.25
8:

>>>

>>> 200000000000000000.0
2e+17

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

>>> float("1.25")
1.25
8 cho biến
>>> float("1.25")
1.25
9:

Khi bạn tạo một số nguyên như thế này, giá trị

>>> float("1.25")
1.25
8 đượ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

>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
1. Ví dụ: sau đây chuyển đổi chuỗi
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
2 thành số nguyên
>>> float("1.25")
1.25
8:

>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
4 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.

>>>

>>> n = 2e400
>>> n
inf
>>> type(n)
<class 'float'>

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

>>> float("1.25")
1.25
8 cho biến
>>> float("1.25")
1.25
9:

Có lẽ bạn đã thắng được tình cờ gặp

>>> n = 2e400
>>> n
inf
>>> type(n)
<class 'float'>
5 và
>>> n = 2e400
>>> n
inf
>>> type(n)
<class 'float'>
9 rất thường xuyên với tư cách là một lập trình viên trừ khi bạn thường xuyên làm việc với số lượng cực lớn.

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 tạo hai biến,

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
02 và
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
03. Cả
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
02 và
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
03 nên được gán số nguyên theo nghĩa đen
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
06, một bản viết có dấu gạch dưới và một không có. In
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
02 và
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
03 trên hai dòng riêng biệt.

Bạn có thể mở rộng khối bên dưới để xem giải pháp:

Đầu tiên, gán giá trị

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
06 cho
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
02 mà không có bất kỳ dấu gạch dưới nào:

Tiếp theo, trên một dòng mới, gán giá trị

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
11 cho biến
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
03:

In cả hai biến trên các dòng riêng biệt bằng cách chuyển từng biến cho các cuộc gọi riêng biệt của

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
13:

Trong đầu ra, bạn có thể thấy rằng cả hai số đều giống nhau:

Mặc dù cả hai biến được gán giá trị

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
06, việc viết giá trị bằng cách sử dụng dấu gạch dưới cho các chữ số nhóm giúp con người nhanh chóng tìm ra số lượng là dễ dàng hơn nhiều. Không còn nheo mắt vào màn hình và cố gắng đếm số 0!

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ử

>>> 200000000000000000.0
2e+17
7:

Hai số ở hai bên của toán tử

>>> 200000000000000000.0
2e+17
7 đượ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

>>> float("1.25")
1.25
6 vào
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
8 mà không có vấn đề gì:

Lưu ý rằng kết quả của

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
19 là
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
20, đó là
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
8. Bất cứ khi nào
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
8 được thêm vào một số, kết quả là một
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
8 khác. Thêm hai số nguyên với nhau luôn luôn dẫn đến một
>>> float("1.25")
1.25
6.

Phép trừ

Để trừ hai số, chỉ cần đặt một toán tử

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
25 giữa chúng:

>>>

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
0

Cũng giống như thêm hai số nguyên, trừ hai số nguyên luôn dẫn đến

>>> float("1.25")
1.25
6. Bất cứ khi nào một trong các toán hạng là
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
8, kết quả cũng là
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
8.

Toán tử

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
25 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:

>>>

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
1

Cũng giống như thêm hai số nguyên, trừ hai số nguyên luôn dẫn đến

>>> float("1.25")
1.25
6. Bất cứ khi nào một trong các toán hạng là
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
8, kết quả cũng là
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
8.

Toán tử

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
25 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

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
30 với dấu ngoặc đơn để làm cho nó thậm chí còn rõ ràng hơn rằng
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
25 thứ hai đang sửa đổi
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
32:

>>>

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
2

Cũng giống như thêm hai số nguyên, trừ hai số nguyên luôn dẫn đến

>>> float("1.25")
1.25
6. Bất cứ khi nào một trong các toán hạng là
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
8, kết quả cũng là
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
8.

Toán tử import math #x is infinitely small x = float('-inf') #y is infinitely large y = float('+inf') 25 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:

>>>

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
3

Cũng giống như thêm hai số nguyên, trừ hai số nguyên luôn dẫn đến

>>> float("1.25")
1.25
6. Bất cứ khi nào một trong các toán hạng là
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
8, kết quả cũng là
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
8.

Toán tử

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
25 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 import math #x is infinitely small x = float('-inf') #y is infinitely large y = float('+inf') 30 với dấu ngoặc đơn để làm cho nó thậm chí còn rõ ràng hơn rằng import math #x is infinitely small x = float('-inf') #y is infinitely large y = float('+inf') 25 thứ hai đang sửa đổi import math #x is infinitely small x = float('-inf') #y is infinitely large y = float('+inf') 32:

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 (

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
48), also known as the floor division operator:

>>>

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
4

Cũng giống như thêm hai số nguyên, trừ hai số nguyên luôn dẫn đến

>>> float("1.25")
1.25
6. Bất cứ khi nào một trong các toán hạng là
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
8, kết quả cũng là
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
8.

Toán tử

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
25 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

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
30 với dấu ngoặc đơn để làm cho nó thậm chí còn rõ ràng hơn rằng
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
25 thứ hai đang sửa đổi
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
32:

>>>

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
5

Python cung cấp cho bạn một

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
67, cho bạn biết rằng bạn chỉ cố gắng phá vỡ một quy tắc cơ bản của vũ trụ.

Số mũ

Bạn có thể nâng một số lên nguồn điện bằng toán tử

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
68:

>>>

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
6

Số mũ don don phải là số nguyên. Chúng cũng có thể là phao:

>>>

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
7

Tăng một số vào sức mạnh của

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
69 giống như lấy căn bậc hai, nhưng lưu ý rằng mặc dù căn bậc hai của
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
70 là một số nguyên, Python trả về
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
8
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
20.

Đối với các toán hạng tích cực, toán tử

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
68 sẽ trả về
>>> float("1.25")
1.25
6 nếu cả hai toán hạng là số nguyên và
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
8 nếu bất kỳ một trong các toán hạng là số điểm nổi.

Bạn cũng có thể tăng số lên các quyền lực tiêu cực:

>>>

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
8

Tăng một con số lên một sức mạnh tiêu cực giống như chia

>>> float("1.25")
1.25
4 cho số được nâng lên công suất tích cực. Vì vậy,
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
77 giống như
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
78, giống như
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
79 hoặc
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
69. Tương tự,
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
81 giống như
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
82, giống như
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
83 hoặc
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
84.

Toán tử mô đun

Toán tử

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
85 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:

>>>

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
9

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
32 Chia
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
87 Một lần với phần còn lại là
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
45, vì vậy
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
89 là
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
45. Tương tự,
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
91 chia
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
92 hai lần với phần còn lại là
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
93. Trong ví dụ cuối cùng,
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
94 chia hết cho
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
95, vì vậy
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
96 là
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
66. Bất cứ khi nào số ở bên trái của
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
85 đều chia hết cho số bên phải, kết quả là
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
66.

Một trong những cách sử dụng phổ biến nhất của

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
85 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ố
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
01 là ngay cả khi và chỉ khi
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
02 là
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
66. Bạn nghĩ gì
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
04 trở lại? Hãy để thử nó ra:

>>>

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
0

Điều này có ý nghĩa bởi vì

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
04 đưa ra phần còn lại của việc chia
>>> float("1.25")
1.25
4 cho
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
66. Nhưng bạn có thể chia
>>> float("1.25")
1.25
4 cho
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
66, vì vậy Python tăng
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
67.

Mọi thứ trở nên khó khăn khi bạn sử dụng toán tử

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
85 với số âm:

>>>

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
1

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

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
12 chia số
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
13 cho một số
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
14, Python sử dụng phương trình
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
15.

Ví dụ: để tìm

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
16, Python lần đầu tiên tìm thấy
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
17. Vì
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
18 là khoảng
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
19, điều đó có nghĩa là
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
20 là
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
51. Bây giờ Python nhân với
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
30 để nhận
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
93. Cuối cùng, Python trừ
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
93 từ
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
87 để nhận
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
26.

Biểu thức số học

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ị.expression is a combination of numbers, operators, and parentheses that Python can compute, or evaluate, to return a value.

Dưới đây là một số ví dụ về biểu thức số học:

>>>

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
2

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.order of operations.

Các toán tử

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
33,
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
37,
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
48 và
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
85 đề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ử
>>> 200000000000000000.0
2e+17
7 và
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
25. Đây là lý do tại sao
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
33 trả về
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
87 chứ không phải
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
35.
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
36 được đánh giá đầu tiên, vì
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
33 có quyền ưu tiên cao hơn toán tử
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
25.precedence, or priority, in an expression, and each of these has a higher precedence than the
>>> 200000000000000000.0
2e+17
7 and
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
25 operators. This is why
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
33 returns
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
87 and not
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
35.
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
36 is evaluated first, because
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
33 has higher precedence than the
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
25 operator.

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:

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)

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,

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
39 có khả năng rõ ràng hơn 2*3 - 1.

Làm cho Python nói dối bạn

Bạn nghĩ

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
40 là gì? Câu trả lời là
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
41, phải không? Hãy để xem những gì Python nói về nó. Hãy thử điều này trong cửa sổ tương tác:

>>>

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
3

Đó cũng là . . . gần như đúng. Điều gì đang xảy ra ở đây? Đây có phải là một lỗi trong Python?

Không, nó không phải là một lỗi! Nó có một lỗi đại diện cho điểm nổi, và nó không liên quan gì đến Python. Nó có liên quan đến cách lưu trữ số điểm nổi trong bộ nhớ máy tính.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.

Số

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
42 có thể được biểu diễn dưới dạng phân số
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
43. Cả số
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
42 và phân số
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
43 của nó là các biểu diễn thập phân hoặc các biểu diễn cơ sở-10. Tuy nhiên, máy tính lưu trữ các số điểm nổi trong biểu diễn cơ sở-2, thường được gọi là biểu diễn nhị phân.decimal representations, or base-10 representations. Computers, however, store floating-point numbers in base-2 representation, more commonly called binary representation.

Khi được đại diện trong nhị phân, một cái gì đó quen thuộc nhưng có thể bất ngờ xảy ra với số thập phân

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
42. Phân số
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
47 không có biểu diễn thập phân hữu hạn. Đó là,
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
48 với vô số 3 giây sau điểm thập phân. Điều tương tự cũng xảy ra với phân số
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
43 trong nhị phân.

Biểu diễn nhị phân của

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
43 là phần lặp lại vô hạn sau đây:

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
4

Máy tính có bộ nhớ hữu hạn, do đó số

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
42 phải được lưu trữ dưới dạng xấp xỉ và không phải là giá trị thực của nó. Phép tính gần đúng được lưu trữ cao hơn một chút so với giá trị thực tế và trông như thế này:

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
5

Tuy nhiên, bạn có thể nhận thấy rằng khi được yêu cầu in

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
42, in python
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
42 và không phải là giá trị xấp xỉ ở trên:

Python không chỉ cắt các chữ số trong biểu diễn nhị phân cho

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
42. 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

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
42 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ả

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
42 và
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
57 đề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,

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
40 không bằng
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
41. Python cộng với các xấp xỉ nhị phân cho
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
42 và
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
61, đưa ra một số không phải là xấp xỉ nhị phân cho
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
41.

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:

  1. >>> 2**256
    115792089237316195423570985008687907853269984665640564039457584007913129639936
    >>> -2**256
    -115792089237316195423570985008687907853269984665640564039457584007913129639936
    >>> import math
    >>> 2 ** 256 < math.inf
    True
    >>> - 2 ** 256 > -math.inf
    True
    
    63, để làm tròn số vào một số vị trí thập phân
    , for rounding numbers to some number of decimal places
  2. >>> 2**256
    115792089237316195423570985008687907853269984665640564039457584007913129639936
    >>> -2**256
    -115792089237316195423570985008687907853269984665640564039457584007913129639936
    >>> import math
    >>> 2 ** 256 < math.inf
    True
    >>> - 2 ** 256 > -math.inf
    True
    
    64, để nhận được giá trị tuyệt đối của một số
    , for getting the absolute value of a number
  3. >>> 2**256
    115792089237316195423570985008687907853269984665640564039457584007913129639936
    >>> -2**256
    -115792089237316195423570985008687907853269984665640564039457584007913129639936
    >>> import math
    >>> 2 ** 256 < math.inf
    True
    >>> - 2 ** 256 > -math.inf
    True
    
    65, để 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 >>> 2**256 115792089237316195423570985008687907853269984665640564039457584007913129639936 >>> -2**256 -115792089237316195423570985008687907853269984665640564039457584007913129639936 >>> import math >>> 2 ** 256 < math.inf True >>> - 2 ** 256 > -math.inf True 63

Bạn có thể sử dụng

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
63 để làm tròn một số vào số nguyên gần nhất:

>>>

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
6

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
63 có một số hành vi bất ngờ khi số kết thúc trong
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
46:

>>>

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
7

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
63 có một số hành vi bất ngờ khi số kết thúc trong
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
46:

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
43 được làm tròn xuống
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
45 và
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
72 được làm tròn lên đến
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
35. Hầu hết mọi người mong đợi một con số kết thúc trong
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
46 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.
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
43 and
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
76 are ties, but
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
77 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.

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
43 và
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
76 là mối quan hệ, nhưng
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
77 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

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
43 vòng xuống đến
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
45 và
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
72 vòng lên đến
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
35.

>>>

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
8

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
63 có một số hành vi bất ngờ khi số kết thúc trong
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
46:

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
43 được làm tròn xuống
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
45 và
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
72 được làm tròn lên đến
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
35. Hầu hết mọi người mong đợi một con số kết thúc trong
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
46 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.

>>>

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
9

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
63 có một số hành vi bất ngờ khi số kết thúc trong
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
46:

>>>

>>> type(1)
<class 'int'>
0

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
63 có một số hành vi bất ngờ khi số kết thúc trong
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
46:

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
43 được làm tròn xuống
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
45 và
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
72 được làm tròn lên đến
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
35. Hầu hết mọi người mong đợi một con số kết thúc trong
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
46 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.

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
43 và
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
76 là mối quan hệ, nhưng
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
77 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 import math #x is infinitely small x = float('-inf') #y is infinitely large y = float('+inf') 43 vòng xuống đến import math #x is infinitely small x = float('-inf') #y is infinitely large y = float('+inf') 45 và >>> 2**256 115792089237316195423570985008687907853269984665640564039457584007913129639936 >>> -2**256 -115792089237316195423570985008687907853269984665640564039457584007913129639936 >>> import math >>> 2 ** 256 < math.inf True >>> - 2 ** 256 > -math.inf True 72 vòng lên đến >>> 2**256 115792089237316195423570985008687907853269984665640564039457584007913129639936 >>> -2**256 -115792089237316195423570985008687907853269984665640564039457584007913129639936 >>> import math >>> 2 ** 256 < math.inf True >>> - 2 ** 256 > -math.inf True 35.

Giá trị tuyệt đối của số n chỉ là n nếu n dương và -n nếu n là âm. Ví dụ: giá trị tuyệt đối của

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
32 là
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
32, trong khi giá trị tuyệt đối của
>>> type(1)
<class 'int'>
01 là
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
87.

Để có được giá trị tuyệt đối của một số trong Python, bạn sử dụng

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
64:

>>>

>>> type(1)
<class 'int'>
1

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
64 luôn trả về một số dương của cùng loại với đối số của nó. Đó là, giá trị tuyệt đối của một số nguyên luôn là một số nguyên dương và giá trị tuyệt đối của một chiếc phao luôn là một phao dương.

Nâng lên một sức mạnh với >>> 2**256 115792089237316195423570985008687907853269984665640564039457584007913129639936 >>> -2**256 -115792089237316195423570985008687907853269984665640564039457584007913129639936 >>> import math >>> 2 ** 256 < math.inf True >>> - 2 ** 256 > -math.inf True 65

Trước đó, bạn đã học được cách nâng một số lên một nguồn điện bằng toán tử

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
68. Bạn cũng có thể sử dụng
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
65 để đạt được kết quả tương tự.

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
65 có hai đối số. Đối số đầu tiên là cơ sở, hoặc số được nâng lên thành một nguồn điện và đối số thứ hai là số mũ, hoặc sức mạnh mà số sẽ được nâng lên.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.

Ví dụ: sử dụng sau đây

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
65 để nâng
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
45 lên số mũ
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
32:

Giống như với

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
68, số mũ trong
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
65 có thể âm:

Vì vậy, những gì khác biệt giữa

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
68 và
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
65?

Hàm

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
65 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,
>>> type(1)
<class 'int'>
17 tương đương với
>>> type(1)
<class 'int'>
18.

Ở đây, một ví dụ trong đó

>>> type(1)
<class 'int'>
19,
>>> type(1)
<class 'int'>
20 và
>>> type(1)
<class 'int'>
21:

Đầu tiên,

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
45 được nâng lên sức mạnh
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
32 để có được
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
95. Sau đó,
>>> type(1)
<class 'int'>
25 được tính toán, đó là
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
66 vì
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
45 chia
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
95 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ư

>>> type(1)
<class 'int'>
29,
>>> type(1)
<class 'int'>
30 và
>>> type(1)
<class 'int'>
31. 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

>>> type(1)
<class 'int'>
32 trả về
>>> type(1)
<class 'int'>
33 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ề
>>> type(1)
<class 'int'>
34:integral—meaning it has no fractional part—and otherwise returns
>>> type(1)
<class 'int'>
34:

>>>

>>> type(1)
<class 'int'>
2

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
64 luôn trả về một số dương của cùng loại với đối số của nó. Đó là, giá trị tuyệt đối của một số nguyên luôn là một số nguyên dương và giá trị tuyệt đối của một chiếc phao luôn là một phao dương.

Nâng lên một sức mạnh với

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
65

Trước đó, bạn đã học được cách nâng một số lên một nguồn điện bằng toán tử

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
68. Bạn cũng có thể sử dụng
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
65 để đạt được kết quả tương tự.

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
65 có hai đối số. Đối số đầu tiên là cơ sở, hoặc số được nâng lên thành một nguồn điện và đối số thứ hai là số mũ, hoặc sức mạnh mà số sẽ được nâng lên.

Ví dụ: sử dụng sau đây

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
65 để nâng
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
45 lên số mũ
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
32:

Giống như với

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
68, số mũ trong
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
65 có thể âm:

>>> type(1)
<class 'int'>
3

Vì vậy, những gì khác biệt giữa

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
68 và
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
65?

Hàm

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
65 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,
>>> type(1)
<class 'int'>
17 tương đương với
>>> type(1)
<class 'int'>
18.

Ở đây, một ví dụ trong đó

>>> type(1)
<class 'int'>
19,
>>> type(1)
<class 'int'>
20 và
>>> type(1)
<class 'int'>
21:

Đầu tiên,

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
45 được nâng lên sức mạnh
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
32 để có được
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
95. Sau đó,
>>> type(1)
<class 'int'>
25 được tính toán, đó là
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
66 vì
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
45 chia
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
95 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ư

>>> type(1)
<class 'int'>
29,
>>> type(1)
<class 'int'>
30 và
>>> type(1)
<class 'int'>
31. 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

>>> type(1)
<class 'int'>
32 trả về
>>> type(1)
<class 'int'>
33 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ề
>>> type(1)
<class 'int'>
34:

>>> type(1)
<class 'int'>
5

Một cách sử dụng cho

>>> type(1)
<class 'int'>
32 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

>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
63,
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
64 và
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
65 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.

>>> type(1)
<class 'int'>
6

Để 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:

>>>

>>> type(1)
<class 'int'>
7

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

>>> type(1)
<class 'int'>
39:

>>>

>>> type(1)
<class 'int'>
8

>>> type(1)
<class 'int'>
4

>>> type(1)
<class 'int'>
51 trong
>>> type(1)
<class 'int'>
50 làm tròn con số đến hai vị trí thập phân và
>>> type(1)
<class 'int'>
53 bảo Python hiển thị
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
01 dưới dạng số điểm cố định. Điều này có nghĩa là số được hiển thị với chính xác hai vị trí thập phân, ngay cả khi số ban đầu có ít vị trí thập phân hơn.fixed-point number. This means that the number is displayed with exactly two decimal places, even if the original number has fewer decimal places.

Khi

>>> type(1)
<class 'int'>
55, kết quả của
>>> type(1)
<class 'int'>
47 là
>>> type(1)
<class 'int'>
57. Giống như với
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
63, Python làm tròn mối quan hệ ngay cả khi định dạng số bên trong chuỗi. Vì vậy, nếu bạn thay thế
>>> type(1)
<class 'int'>
55 bằng
>>> type(1)
<class 'int'>
60, thì kết quả của
>>> type(1)
<class 'int'>
47 là
>>> type(1)
<class 'int'>
62:

>>>

>>> type(1)
<class 'int'>
9

Để làm tròn một vị trí thập phân, hãy thay thế

>>> type(1)
<class 'int'>
51 bằng
>>> type(1)
<class 'int'>
64:

>>>

>>> 1000000
1000000

>>> 1_000_000
1000000
0

Để làm tròn một vị trí thập phân, hãy thay thế

>>> type(1)
<class 'int'>
51 bằng
>>> type(1)
<class 'int'>
64:

>>>

>>> 1000000
1000000

>>> 1_000_000
1000000
1

Để làm tròn một vị trí thập phân, hãy thay thế

>>> type(1)
<class 'int'>
51 bằng
>>> type(1)
<class 'int'>
64:

>>>

>>> 1000000
1000000

>>> 1_000_000
1000000
2

Để làm tròn một vị trí thập phân, hãy thay thế

>>> type(1)
<class 'int'>
51 bằng
>>> type(1)
<class 'int'>
64:

>>>

>>> 1000000
1000000

>>> 1_000_000
1000000
3

Để làm tròn một vị trí thập phân, hãy thay thế

>>> type(1)
<class 'int'>
51 bằng
>>> type(1)
<class 'int'>
64:

>>>

>>> 1000000
1000000

>>> 1_000_000
1000000
4

Để làm tròn một vị trí thập phân, hãy thay thế

>>> type(1)
<class 'int'>
51 bằng
>>> type(1)
<class 'int'>
64:

Khi bạn định dạng một số là điểm cố định, nó luôn luôn hiển thị với số lượng chính xác của số thập phân mà bạn chỉ định:

>>>

>>> 1000000
1000000

>>> 1_000_000
1000000
5

Để làm tròn một vị trí thập phân, hãy thay thế

>>> type(1)
<class 'int'>
51 bằng
>>> type(1)
<class 'int'>
64:

Khi bạn định dạng một số là điểm cố định, nó luôn luôn hiển thị với số lượng chính xác của số thập phân mà bạn chỉ định:

Bạn có thể chèn dấu phẩy để nhóm phần số nguyên của hàng ngàn số lượng lớn với tùy chọn

>>> type(1)
<class 'int'>
65:

Để làm tròn một số vị trí thập phân và cả hàng ngàn địa điểm và cũng được nhóm, đặt

>>> type(1)
<class 'int'>
65 trước
>>> type(1)
<class 'int'>
67 vào đặc tả định dạng của bạn:

Bộ xác định

>>> type(1)
<class 'int'>
68 rất hữu ích để hiển thị các giá trị tiền tệ:

Một tùy chọn hữu ích khác là

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
85, được sử dụng để hiển thị tỷ lệ phần trăm. Tùy chọn
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
85 nhân số một số với
>>> type(1)
<class 'int'>
71 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

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
85 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
>>> type(1)
<class 'int'>
53. Ví dụ:
>>> type(1)
<class 'int'>
74 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:

>>>

>>> 1000000
1000000

>>> 1_000_000
1000000
6

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

>>>

>>> 1000000
1000000

>>> 1_000_000
1000000
7

Mở rộng khối bên dưới để kiểm tra sự hiểu biết của bạn:

>>>

>>> 1000000
1000000

>>> 1_000_000
1000000
8

In số

>>> type(1)
<class 'int'>
75 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ỹ.

>>>

>>> 1000000
1000000

>>> 1_000_000
1000000
9

Bạn có thể mở rộng khối bên dưới để xem giải pháp:

>>>

>>> type(1.0)
<class 'float'>
0

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ị

>>> type(1)
<class 'int'>
75 mà không có bất kỳ định dạng nào trông như thế này:

Đ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 (

>>> type(1)
<class 'int'>
48) sau số
>>> type(1)
<class 'int'>
75, tiếp theo là chữ cái
>>> type(1)
<class 'int'>
53:

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

>>> type(1)
<class 'int'>
51 giữa
>>> type(1)
<class 'int'>
48 và
>>> type(1)
<class 'int'>
53:real part and an imaginary part.

Để 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 (

>>> type(1)
<class 'int'>
65) giữa dấu hai chấm (
>>> type(1)
<class 'int'>
48) và dấu chấm (
>>> type(1)
<class 'int'>
67):

Cuối cùng, thêm một dấu hiệu đô la (

>>> type(1)
<class 'int'>
86) ở đầu chuỗi để chỉ ra rằng giá trị bằng đô la Mỹ:

F-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.

>>>

>>> type(1.0)
<class 'float'>
1

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ó.

>>>

>>> type(1.0)
<class 'float'>
2

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.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

>>> type(1)
<class 'int'>
91 is
>>> type(1)
<class 'int'>
92.

Ngoại trừ toán tử phân chia sàn (

import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
48), 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.0)
<class 'float'>
3

Thậ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

>>> float("1.25")
1.25
6 và
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
8 cũng có các thuộc tính
>>> type(1)
<class 'int'>
88 và
>>> type(1)
<class 'int'>
89 cũng như phương pháp
>>> type(1)
<class 'int'>
90:

>>>

>>> type(1.0)
<class 'float'>
4

Thậ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

>>> float("1.25")
1.25
6 và
>>> 1000000.0
1000000.0

>>> 1_000_000.0
1000000.0

>>> 1e6
1000000.0
8 cũng có các thuộc tính
>>> type(1)
<class 'int'>
88 và
>>> type(1)
<class 'int'>
89 cũng như phương pháp
>>> type(1)
<class 'int'>
90:

Đối với phao và số nguyên,

>>> type(1)
<class 'int'>
88 và
>>> type(1)
<class 'int'>
90 luôn tự trả lại số và
>>> type(1)
<class 'int'>
89 luôn trả về
import math

#x is infinitely small
x = float('-inf')

#y is infinitely large
y = float('+inf')
66. Tuy nhiên, một điều cần chú ý là
>>> 1000000
1000000

>>> 1_000_000
1000000
03 và
>>> 1000000
1000000

>>> 1_000_000
1000000
04 Trả về một số nguyên nếu
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
01 là một số nguyên và nổi nếu
>>> 2**256
115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> -2**256
-115792089237316195423570985008687907853269984665640564039457584007913129639936
>>> import math
>>> 2 ** 256 < math.inf
True
>>> - 2 ** 256 > -math.inf
True
01 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:arithmetic operators
  • 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 expressions using PEP 8 best practices
  • 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 PEPfloating-point numbers are and why they may not always be 100 percent accurate
  • 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 %round numbers with
    >>> 2**256
    115792089237316195423570985008687907853269984665640564039457584007913129639936
    >>> -2**256
    -115792089237316195423570985008687907853269984665640564039457584007913129639936
    >>> import math
    >>> 2 ** 256 < math.inf
    True
    >>> - 2 ** 256 > -math.inf
    True
    
    63
  • Cách làm tròn số với
    >>> 2**256
    115792089237316195423570985008687907853269984665640564039457584007913129639936
    >>> -2**256
    -115792089237316195423570985008687907853269984665640564039457584007913129639936
    >>> import math
    >>> 2 ** 256 < math.inf
    True
    >>> - 2 ** 256 > -math.inf
    True
    
    63complex numbers are and how they’re supported in Python

Những con số phức tạp là gì và cách họ hỗ trợ trong 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

Phao phần cứng có thể biểu thị một phạm vi giá trị lớn hơn so với phần cứng int không?

Ưu điểm của các số điểm nổi là chúng có thể biểu thị một phạm vi giá trị lớn hơn nhiều so với số nguyên có thể.Nhược điểm là có những con số mà chúng không thể đại diện chính xác.Các hệ thống hiện đại hỗ trợ số học dấu phẩy động trong phần cứng, với một loạt các giá trị hạn chế.they can represent a much larger range of values than can integers. The disadvantage is that there are numbers that they cannot represent exactly. Modern systems support floating-point arithmetic in hardware, with a limited range of values.

Điều nào sau đây không phải là một loại dữ liệu Python được tích hợp trong chuỗi hợp lý Float Float?

Câu trả lời là tùy chọn một số và chuỗi B.Trong Python, kiểu dữ liệu số không có ở đó nhưng Python sử dụng int để xác định một biến cho số.Ngoài ra, không có kiểu dữ liệu chuỗi trong Python thay vào đó có kiểu Datatat để xác định một biến chuỗi.numbers and B String. In Python, number datatype is not there but python use int to define a variable for numbers. Also, there is no string data type in Python instead has str datatype to define a string variable.

Có thể tính toán chức năng hỗn loạn bằng máy tính không?

Một chức năng hỗn loạn không thể được tính toán bởi một máy tính.can't be computed by a computer.