Trong Python thông tin nào không phải là hạng số học
Trong bài học này chúng ta sẽ xem xét chi tiết các kiểu dữ liệu số trong Python, bao gồm int, float và complex. Chúng ta cũng xem xét một số phép toán và hàm thường gặp với dữ liệu kiểu số. So với các ngôn ngữ lập trình như C# hay Java, các kiểu số trong Python đơn giản hơn (ít kiểu) nhưng lại có điểm đặc thù. Các phép toán cơ bản của Python khá tương tự như trong C và các ngôn ngữ khác. Show Giới thiệu chung về các kiểu số trong PythonSố là kiểu dữ liệu cơ bản nhất trong các ngôn ngữ lập trình. Ngôn ngữ Python hỗ trợ sẵn 3 kiểu số cơ bản: int (số nguyên có dấu lớn tùy ý), float (số thực), complex (số phức). Python căn cứ vào cách viết (literal) của giá trị để tự xác định kiểu cho giá trị số tương ứng. Ví dụ, a = 10 sẽ tạo ra một số nguyên, b = 10. sẽ tạo ra một số thực, b = 10j sẽ tạo ra một số phức. Chi tiết về cách viết các loại số sẽ trình bày trong các phần tiếp theo của bài học. Python hỗ trợ tất cả các phép toán số học toán cơ bản (+, -, *, /, v.v.) trên các kiểu số cũng như các phép toán phức tạp hơn (ở dạng các hàm) trong module math (như log, sin, cos, v.v.). Ngoài ra Python cũng rất nổi tiếng về các thư viện hỗ trợ tính toán do cộng đồng cung cấp. Một đặc điểm quan trọng của kiểu số trong Python là tính bất biến (immutability). Nghĩa là giá trị số một khi đã tạo ra trong bộ nhớ (và có biến tham chiếu tới), nó sẽ không thay đổi được nữa. Nếu bạn thay đổi giá trị của một số, trên thực tế Python sẽ tạo ra một giá trị mới trong bộ nhớ. Ví dụ nếu ban đầu bạn tạo một giá trị số qua lệnh gán a = 10, Python sẽ tạo một giá trị 10 trong bộ nhớ và để a trỏ vào giá trị này. Nếu sau đó bạn lại gán a = 10j (số phức), Python không hề thay đổi giá trị số mà a trỏ tới. Thay vào đó Python sẽ tạo một giá trị mới 10j trong bộ nhớ và để a trỏ tới giá trị mới này. Giá trị cũ 10 sẽ không còn được tham chiếu tới nữa. Sau một thời gian Garbage Collector sẽ dọn dẹp giá trị này để thu hồi bộ nhớ. Nếu bạn đã học lập trình C# thì string cũng là một kiểu dữ liệu bất biến như vậy. Mọi thay đổi trên một xâu đều dẫn đến tạo ra xâu mới. Kiểu số nguyên intKiểu int biểu diễn các số nguyên có dấu với độ lớn tùy ý. Kiểu int trong Python không sử dụng số bit cố định để biểu diễn như trong các ngôn ngữ khác. Tùy thuộc vào giá trị cụ thể Python sẽ chọn số bit phù hợp. Giá trị nguyên lớn nhất mà Python biểu diễn được chỉ phụ thuộc vào bộ nhớ. Python hỗ trợ biểu diễn số nguyên dương, số nguyên âm, số ở dạng thập phân, hệ cơ số 8, hệ cơ số 16. Khi biểu diễn số ở cơ số 8 bạn dùng tiếp tố 0o hoặc 0O (số không và chữ o hoa/thường). Khi biểu diễn số ở hệ 16 thì dùng tiếp tố 0x hoặc 0X (số 0 và chữ x/X) Dưới đây là ví dụ về cách biểu diễn số nguyên trong Python:
Chú ý khi viết số ở cơ số 8 tốt nhất là dùng chữ o (thường) do chữ O (hoa) rất dễ nhầm lẫn với số 0. Python cũng cho phép dùng ký tự gạch chân _ để nhóm các chữ số trong biểu diễn số: >>> i = 1_000_000 # tương đương với 1000000 nhưng dễ đọc hơn nhiều >>> i 1000000Kiểu boolean trong Python cũng là một kiểu con của kiểu số nguyên. Trong đó 0 tương ứng với False, mọi giá trị nguyên khác tương ứng với True. Chú ý: Python 2.x có hai kiểu số nguyên int và long. Kiểu long cần biểu diễn với hậu tố L (hoặc l). Số nguyên ở hệ cơ số 8 viết bắt đầu bằng 0. Vì vậy, khi đọc tài liệu nên lưu ý xem đó là Python 2 hay Python 3. Hai phiên bản này có nhiều điểm không tương thích. Để biến đổi từ các kiểu dữ liệu khác về số nguyên bạn có thể sử dụng hàm int(). Ví dụ: >>> age = int(input("Your age: ")) # chuyển chuỗi về số nguyên Your age: 37 >>> print('You were born in', 2020-age) You were born in 1983 >>>Kiểu số thực floatTrong Python float dùng để biểu diễn số thực dấu phảy động. Để viết số thực trong Python bạn cần đặt 1 dấu chấm thập phân. Dưới đây các cách biểu diễn giá trị thực trong Python:
Bạn có thể xem các thông tin về kiểu float như sau: >>> import sys >>> sys.float_info sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1) >>> sys.float_info.max # giá trị cực đại của kiểu float 1.7976931348623157e+308 >>> sys.float_info.min # giá trị cực tiểu của kiểu float 2.2250738585072014e-308 >>>Bạn cũng có thể dùng ký tự gạch chân đế nhóm các chữ số khi viết số thực: >>> i = 1_000_000.001 >>> i 1000000.001Để biến đổi từ kiểu dữ liệu khác về kiểu float bạn có thể sử dụng hàm float(). Trong phép toán mà toán hạng bao gồm cả số thực và số nguyên, kết quả của cả phép toán sẽ thuộc kiểu số thực. Ví dụ: >>> 1 + 2.0 # kết quả sẽ thuộc kiểu số thực 3.0 >>> 2 * 3.0 6.0 >>> 3.0 ** 2 9.0Kiểu số phức complexPython là một trong số ít các ngôn ngữ hỗ trợ trực tiếp kiểu số phức. Tuy nhiên số phức tương đối ít được sử dụng. Trong toán học, số phức được biểu diễn ở dạng tổng quát a + bi với i là đơn vị ảo. Trong Python, đơn vị ảo được biểu diễn bằng ký tự j hoặc J. Như vậy, số phức trong Python cần chứa ký tự j (hoặc J) để biểu diễn phần ảo. Dưới đây là ví dụ về cách biểu diễn số phức trong Python:
Lưu ý: j (J) phải đi kèm số thì mới được xem là đơn vị ảo. Nếu đi một mình, j hay J sẽ bị xem là tên biến. Vì vậy 1 + j là một biểu thức (với j là một biến) nhưng 1 + 1j là một số phức. Để làm việc riêng với phần thực hoặc phần ảo bạn có thể sử dụng cách sau: >>> c = 1.23 + 4.56j >>> c.real 1.23 >>> c.imag 4.56 >>>real và imag là hai thành viên của kiểu complex giúp bạn trích giá trị của phần nguyên và phần ảo. Các phép toán trên kiểu sốPython hỗ trợ tất cả các phép toán số học cơ bản trên kiểu số. Đa số các phép toán này có hình thức tương tự như trong C, một số có dạng hơi khác.
Các phép so sánh có thể áp dụng trên tất cả các kiểu số. Kết quả của phép toán so sánh thuộc về kiểu boolean (True/False).
Lưu ý trong Python 2.x có hai phép toán so sánh khác != và <>. Trong Python 3.x chỉ còn phép so sánh != (như trong C). Python hỗ trợ các phép toán gán tương tự như trong C:
Python cung cấp một số hàm xử lý số tích hợp sẵn cho kiểu số:
Nếu bạn cần thực hiện các phép toán phức tạp hơn (như lượng giác, logaritm), bạn có thể sử dụng module math như sau: import math # sử dụng thư viện math math.sin(180) math.log(1) math.factorial(10)Kết luậnTrong bài học này chúng ta đã xem xét chi tiết các kiểu dữ liệu số trong Python, bao gồm int, float và complex. Chúng ta cũng xem xét một số phép toán thường gặp với dữ liệu kiểu số. So với các ngôn ngữ lập trình như C# hay Java, các kiểu số trong Python đơn giản hơn (ít kiểu). Tuy nhiên, các kiểu số trong Python lại có điểm đặc thù là bất biến, tương tự như string của C#. Các phép toán cơ bản của Python khá tương tự như trong C và các ngôn ngữ khác. Python cũng cung cấp thư viện cho các hàm toán học math. + Nếu bạn thấy site hữu ích, trước khi rời đi hãy giúp đỡ site bằng một hành động nhỏ để site có thể phát triển và phục vụ bạn tốt hơn. |