Hướng dẫn python data types

1. Kiểu dữ liệu số [numeric] trong Python

Python hỗ trợ các kiểu dữ liệu số: số nguyên [integer], số thực [float] và số phức [complex]. Python định nghĩa các lớp [class] là int, float và complex để lưu trữ và xử lý các kiểu dữ liệu số.

Nội dung chính

  • 1. Kiểu dữ liệu số [numeric] trong Python
  • 2. Kiểu dữ liệu luận lý [boolean] trong Python
  • 3. Kiểu dữ liệu chuỗi ký tự [string] trong Python

Nội dung chính

  • 1. Kiểu dữ liệu số [numeric] trong Python
  • 2. Kiểu dữ liệu luận lý [boolean] trong Python
  • 3. Kiểu dữ liệu chuỗi ký tự [string] trong Python

Nội dung chính

  • 1. Kiểu dữ liệu số [numeric] trong Python
  • 2. Kiểu dữ liệu luận lý [boolean] trong Python
  • 3. Kiểu dữ liệu chuỗi ký tự [string] trong Python

Số nguyên [integer]được đại diện bởi lớp int, chứa các số nguyên dương hoặc nguyên âm [không có phần thập phân]. Trong Python, số nguyên không có giới hạn về độ dài.

Số thực [float] được đại diện bởi lớp float, biểu diễn các số thực với dấu chấm động [có độ chính xác với 15 chữ số ở phần thập phân]. Các số thực có thể được biểu diễn với ký hiệu e hoặc E là một cách ghi khoa học của a10b. Ví dụ, 1.5e2 tương đương 1.5 x 102.

Số phức [complex] được đại diện bởi lớp complex. Số phức được viết dưới dạng x + yj. Trong đó, x là phần thực, y là phần ảo.

Trong Python, chúng ta có thể biểu diễn các số ở hệ nhị phân, thập lục phân [cơ số 16] và hệ bát phân. Chúng ta sẽ sử dụng tiền tố [prefix] ở trước một số để xác định số đó đang được biểu diễn ở hệ cơ số nào.

Number System Prefix
Binary ‘0b’ or ‘0B’
Octal ‘0o’ or ‘0O’
Hexadecimal ‘0x’ or ‘0X’
a = 5 print[type[a]] print["a is an integer number?", isinstance[a, int]] print[type[5.0]] c = 5 + 3j print[c + 3] print[type[c]] print["c is a complex number?", isinstance[c, complex]] # Output: 107 print[0b1101011] # Output: 253 [251 + 2] print[0xFB + 0b10] # Output: 13 print[0o15] Kết quả a is an integer number? True [8+3j] c is a complex number? True 107 253 13

Chuyển đổi giữa các kiểu dữ liệu số trong Python

Khi cộng, trừ, nhân, chia một số nguyên với một số thực thì số nguyên tự động bị ép kiểu sang số thực để thực hiện phép tính. Do đó, kết quả thực hiện phép tính sẽ là một số thực.

print[1 + 2.0] print[1 - 2.0] print[1 * 2.0] print[1 / 2.0] Kết quả3.0 -1.0 2.0 0.5

Chúng ta cũng có thể sử dụng các hàm được xây dựng sẵn trong Python như int[], float[] và complex[] để chuyển đổi  giữa các kiểu dữ liệu.

a = int[2.3] b = int[-2.8] c = float[5] d = complex['3+5j'] print[a] print[b] print[c] print[d] Kết quả2 -2 5.0 [3+5j]

Một số lưu ý khi sử dụng kiểu dữ liệu số trong Python

Khi tính toán giữa các số thực, chúng ta cần lưu ý về độ chính xác của kết quả. Ví dụ:

a = 1.1 + 2.2 print[a] print["a == 3.3?", [a==3.3]] Kết quả3.3000000000000003 a == 3.3? False

Rõ ràng, kết quả không phải là 3.3 mà là 3.3000000000000003. Điều này là do cơ chế lưu trữ dấu chấm động của phần thập phân trong máy tính bằng các số nhị phân 0 và 1 [do máy tính chỉ hiểu bit 0 và 1].

Ví dụ, số thập phân 0.1 được biểu diễn ở hệ nhị phân sẽ là một dãy nhị phân dài vô hạn là 0.000110011001100110011…. Tuy nhiên, máy tính của chúng ta chỉ lưu trữ một số hữu hạn các số nhị phân để biểu diễn số thập phân 0.1. Do đó, bất cứ số thập phân nào cũng mang tính chất chính xác tương đối.

Sử dụng module decimal trong Python

Mặc định, số thực [float] trong Python chỉ có độ chính xác với tối đa 15 chữ số ở phần thập phân. Chúng ta có thể sử dụng module decimal được cài đặt sẵn trong Python để xác định độ chính xác là bao nhiêu số thập phân.

import decimal #return 0.05000000000000000277555756156289135105907917022705078125 print[decimal.Decimal[0.05]] #return 0.05 print[decimal.Decimal['0.05']] #return a = 1.1 + 2.2 print[a] #return b = decimal.Decimal['1.1'] + decimal.Decimal['2.2'] print[b] Kết quả0.05000000000000000277555756156289135105907917022705078125 0.05 3.3000000000000003 3.3

Khi bạn muốn cộng 1.12.2 để ra kết quả chính xác là 3.3 thì nên sử dụng module decimal với decimal.Decimal['1.1']decimal.Decimal['2.2'].

Để kiểm soát độ chính xác phần thập phân có bao nhiêu chữ số, chúng ta có thể sử dụng hàm getcontext[] với thuộc tính prec. Ví dụ:

import decimal # returns 0.07692307692307692307692307692 print[decimal.Decimal[1] / decimal.Decimal[13]] decimal.getcontext[].prec = 10 #return 0.07692307692 print[decimal.Decimal[1] / decimal.Decimal[13]] Kết quả0.07692307692307692307692307692 0.07692307692

2. Kiểu dữ liệu luận lý [boolean] trong Python

Kiểu dữ liệu luận lý [boolean] trong Python chỉ có 2 giá trị là Truehoặc False. Trong Python, Trueđược đại diện bởi giá trị 1Falseđược đại diện bởi giá trị 0. Ví dụ:

x = [1 == True] y = [1 == False] a = True + 4 b = False + 10 print["x is", x] print["y is", y] print["a:", a] print["b:", b] Kết quảx is True y is False a: 5 b: 10

3. Kiểu dữ liệu chuỗi ký tự [string] trong Python

Một chuỗi ký tự [string] là một chuỗi các ký tự được bao quanh bởi dấu nháy kép. Chúng ta có thể sử dụng cả dấu nháy đơn, dấu nháy kép hoặc 3 dấu nháy kép cho một chuỗi ký tự. Chuỗi ký tự [string] trong Python được đại diện bởi lớp str.

Trong Python, không có kiểu dữ liệu ký tự [character], mà một ký tự là một chuỗi [string] có độ dài là 1 ký tự.

strings = "This is Python" char = "C" multiline_str = """This is a multiline string with more than one line code.""" unicode = u"\u00dcnic\u00f6de" raw_str = r"raw \n string" print[strings] print[char] print[multiline_str] print[unicode] print[raw_str] Kết quảThis is Python C This is a multiline string with more than one line code. Ünicöde raw \n string

Lưu ý: Chuỗi u”\u00dcnic\u00f6de” chứa các ký tự Unicode. Trong đó, \u00dc đại diện cho Ü\u00f6 đại diện cho ö. Còn r”raw \n string” là một chuỗi ký tự thô [raw string].

  • Namespace trong PHP dùng để làm gì?
  • Tham số [parameter] của hàm trong Python
  • Cấu trúc dữ liệu dạng cây là gì? Đặc điểm của cây nhị phân [Binary Tree]
  • Lớp InputStream và OutputStream trong Java
  • PHP là gì? Đặc điểm của ngôn ngữ lập trình PHP

Chủ Đề