Khai báo python thập phân

Số dấu phẩy động như 12. 345 là một loại cơ bản, nhưng có một số phức tạp do tính không chính xác của chúng. Phần này có thể được hoãn lại cho đến khi bạn thực sự cần các số khác với số nguyên

1. 14. 1. Phao, Phép chia, Loại hỗn hợp¶

Khi bạn chuyển sang trường học từ phép chia số nguyên đầu tiên sang phân số và số thập phân, bạn có thể nghĩ 6/8 là một phân số và có thể chuyển đổi thành số thập phân. 75. Python cũng có thể thực hiện các phép tính thập phân, xấp xỉ

Hãy thử tất cả các đường giới hạn trong phần này trong Shell

6/8
6/3
2.3/25.7

Có nhiều thứ đang diễn ra ở đây hơn là bắt mắt. Như bạn nên biết, biểu diễn thập phân của các giá trị có thể là một nỗi đau. Chúng có thể không được thể hiện với số lượng ký tự hữu hạn. Thử

2/3

Ngoài ra, như bạn có thể đã nhấn mạnh trong lớp khoa học, các phép đo số thực thường không chính xác và do đó kết quả tính toán với chúng không chính xác. Trên thực tế, có vô số số thực nằm trong khoảng từ 0 đến 1 và máy tính là hữu hạn. Nó không thể lưu trữ chính xác tất cả những con số đó. Mặt khác, Python lưu trữ chính xác các số nguyên [ít nhất là vượt xa số lượng nguyên tử trong vũ trụ - cuối cùng, ngay cả các số nguyên cũng có thể trở nên quá lớn để lưu trữ trong máy tính]. Sự khác biệt trong cách lưu trữ và xử lý số nguyên và số thập phân dẫn đến số thập phân và số nguyên là các loại khác nhau trong Python. Thử

type[3.5]

Lưu ý rằng 3. 5 thuộc loại 'phao', không phải 'thập phân'. Có một số lý do khiến tên đó liên quan đến cách thực tế loại được lưu trữ nội bộ. “Số thập phân” ngụ ý cơ số mười, cách thông thường của chúng ta để viết các số có mười chữ số 0,1,2,3,4,5,6,7,8,9. Máy tính thực sự sử dụng cơ số hai, chỉ có hai ký hiệu 0,1. [Bạn có để ý ký hiệu nào trong ngôn ngữ máy trong Ngữ cảnh không?] Ngoài ra, số float sử dụng mã hóa giống như ký hiệu khoa học từ lớp khoa học, với số mũ cho phép . 2345. 6 = [2. 3456]103

Thử

type[-2]
type[-2.0]

Ngay cả một số thực sự là số nguyên cũng có thể được biểu diễn theo kiểu float nếu có dấu thập phân

Hãy luôn nhớ rằng số float có thể không chính xác. Việc sử dụng cơ số hai làm cho điều này đúng ngay cả trong trường hợp số thập phân có thể được biểu thị chính xác. Tìm hiểu thêm về điều đó trong Định dạng chuỗi cho độ chính xác nổi .

Đôi khi điều quan trọng là phải biết loại số của kết quả của phép toán nhị phân. Bất kỳ sự kết hợp nào của +, - và * với toán hạng kiểu int đều tạo ra một kiểu int. Nếu có một phép toán /, hoặc nếu một trong hai toán hạng thuộc kiểu float, thì kết quả là float. Hãy thử từng cái trong Shell [và đoán loại kết quả]. [1]

3.3 - 1.1
2.0 + 3
2*2.5

[1]

Python 3 thực hiện những gì bạn mong đợi về mặt toán học với một biểu thức như

2/3
2

thận trọng. Đây không phải là trường hợp trong các ngôn ngữ phổ biến khác như Java và C++ [hoặc với Python 2]. Họ xử lý thao tác / bằng các số nguyên như // Python hiện tại, vì vậy kết quả của biểu thức trên là 0, vì

2/3
3 là 0

1. 14. 2. Luỹ thừa, Căn bậc hai¶

Luỹ thừa là tìm lũy thừa. Trong ký hiệu toán học, [3][3][3][3]=34. Trong Python không có kiểu chữ ưa thích với các ký hiệu số mũ được nâng lên như số 4, vì vậy Python sử dụng ** trước một lũy thừa. Thử trong Shell

3**4
5*2**3

Nếu bạn mong đợi 1000 cho biểu thức thứ hai, hãy nhớ rằng phép lũy thừa thậm chí còn được ưu tiên cao hơn phép nhân và phép chia. 2**3 là 2*2*2 hoặc 8 và 5*8 là 40

Số mũ không nhất thiết phải là số nguyên. Một ví dụ hữu ích là 0. 5 sức mạnh. nó tạo ra một căn bậc hai. Thử trong Shell

________số 8

Kết quả của phép toán lũy thừa là kiểu int chỉ khi cả hai tham số đều là số nguyên và kết quả đúng là số nguyên

1. 14. 3. Định dạng chuỗi cho độ chính xác nổi¶

Bạn thường không muốn hiển thị kết quả dấu phẩy động của một phép tính ở dạng thô, thường có một số lượng lớn các chữ số sau dấu thập phân, chẳng hạn như 23. 457413902458498. Bạn có thể muốn làm tròn nó thành một cái gì đó như 23. 46. Có hai cách tiếp cận

Đầu tiên, có một hàm định dạng [không phải phương thức] với tham số thứ hai được phép chuyên định dạng các đối tượng dưới dạng chuỗi. Đọc trình tự trình thông dịch ví dụ sau hiển thị các khả năng khi một float đang được định dạng

>>> x = 23.457413902458498
>>> s = format[x, '.5f']
>>> s
'23.45741'
>>> format[x, '.2f']
'23.46'
>>> x
23.457413902458498

Lưu ý rằng kết quả được làm tròn không cắt bớt. kết quả đến hai nơi là 23. 46 chứ không phải 23. 45. Chuỗi định dạng

2/3
4 có nghĩa là làm tròn đến 5 chữ số sau dấu thập phân. Tương tự như vậy
2/3
5 có nghĩa là làm tròn đến hai chữ số thập phân

Cảnh báo

Hàm

2/3
6 này trả về chuỗi đã định dạng. Nó không thay đổi các thông số. Là một câu lệnh hoàn chỉnh trong chương trình
2/3
7, là vô dụng.
2/3
8 được trả lại và vứt đi, không ảnh hưởng gì đến
2/3
9

Phiên bản đầu tiên, lưu giá trị được định dạng thành

type[3.5]
0, sẽ cho phép sử dụng lại chuỗi đã định dạng [dưới dạng
type[3.5]
0]

Ký hiệu làm tròn này cũng có thể được đặt sau dấu hai chấm bên trong dấu ngoặc nhọn của chuỗi định dạng, để sử dụng với phương thức định dạng chuỗi. Bạn có thể đặt dấu hai chấm

type[3.5]
2 và thông tin định dạng mà chúng tôi đã sử dụng trong phương pháp định dạng đơn giản ở trên [chẳng hạn như
type[3.5]
3. nhưng KHÔNG có dấu ngoặc kép] Hãy nhớ lại có nhiều cách để chỉ ra giá trị nào cần thay thế thành một chuỗi định dạng. Cách đầu tiên được giới thiệu chỉ là bỏ qua bất kỳ tham chiếu nào đến các biến và thay thế các tham số của phương thức theo thứ tự như trong

type[3.5]
0

Phần đầu tiên bên trong dấu ngoặc nhọn định dạng cũng có thể cho biết giá trị nào cần thay thế, như khi sử dụng từ điển

type[3.5]
1

Các hướng dẫn để chèn dữ liệu cũng có thể được cung cấp theo chỉ mục vị trí [từ phần cuối tùy chọn của Thao tác định dạng chuỗi ].

2/3
0

Trong mỗi cách tiếp cận này, đặc tả định dạng và dấu hai chấm xuất hiện ở cuối biểu thức bên trong dấu ngoặc nhọn, ngay trước dấu đóng

type[3.5]
4. Điều này tuân theo
type[3.5]
5 và các ký hiệu [nếu có] xác định giá trị nào sẽ được sử dụng để thay thế

Có nhiều tùy chọn định dạng lạ mắt hơn cho phương thức chuỗi

2/3
6 mà chúng ta sẽ không thảo luận

Ngược lại, và sử dụng định dạng có nhiều chữ số, bạn có thể kiểm tra xem Python không nhất thiết phải nhớ chính xác các số thập phân đơn giản

2/3
1

Python lưu trữ các số chính xác đến khoảng 16 hoặc 17 chữ số. Bạn có thể không quan tâm đến những lỗi nhỏ như vậy, nhưng bạn sẽ có thể kiểm tra trong Chương 3 rằng nếu Python kiểm tra các biểu thức. 1 +. 2 và. 3 cho bình đẳng, nó quyết định rằng họ không bình đẳng. Trên thực tế, như bạn có thể thấy ở trên, các xấp xỉ mà Python lưu trữ cho hai biểu thức không hoàn toàn bằng nhau

Cảnh báo

Không phụ thuộc vào tính chính xác của số học dấu phẩy động, ngay cả đối với các biểu thức rõ ràng đơn giản

Mã định dạng dấu phẩy động tương tự như phần này cũng có trong chương trình ví dụ

type[3.5]
7

1. 14. 3. 1. Bài tập dấu chấm động¶

Viết chương trình,

type[3.5]
8, nhắc người dùng về giá gốc và phần trăm chiết khấu và in ra giá mới chính xác đến xu. Ví dụ nếu người dùng nhập 2. 89 cho giá và 20 cho phần trăm chiết khấu, giá trị sẽ là

[1 - 20/100] * 2. 89

làm tròn đến hai chữ số thập phân, 2. 31. để biết giá. 65 với chiết khấu 25 phần trăm, giá trị sẽ là

[1 - 25/100] *. 65

làm tròn đến hai chữ số thập phân,. 49. [2]

Viết mã tính toán chung theo mẫu tính toán được minh họa trong hai ví dụ cụ thể

Chủ Đề