Các kiểu dữ liệu trong Python được sử dụng để xác định kiểu của một biến. Nó xác định loại dữ liệu mà chúng ta sẽ lưu trữ trong một biến. Dữ liệu được lưu trữ trong bộ nhớ có thể có nhiều loại. Ví dụ, tuổi của một người được lưu trữ dưới dạng giá trị số và địa chỉ của họ được lưu trữ dưới dạng các ký tự và chữ số.
Python có các kiểu dữ liệu tích hợp sẵn khác nhau mà chúng ta sẽ thảo luận trong bài hướng dẫn này:
- Số: int, float, complex
- Chuỗi: str
- Dãy: list, tuple, range
- Nhị phân: bytes, bytearray, memoryview
- Ánh xạ: dict
- Boolean: bool
- Tập hợp: set, frozenset
- None: NoneType
Kiểu dữ liệu số trong Python
Kiểu dữ liệu số trong Python lưu trữ các giá trị số. Đối tượng số được tạo khi bạn gán một giá trị cho chúng. Ví dụ như sau -
var1 = 1
var2 = 10
var3 = 10.023
Python hỗ trợ bốn loại số khác nhau, bao gồm:
- int (số nguyên có dấu)
- long (số nguyên dài, chúng cũng có thể được biểu diễn dưới dạng - bát phân và thập lục phân)
- float (giá trị số thực dấu chấm động)
- complex (số phức)
Ví dụ:
Dưới đây là một số ví dụ về số
int | long | float | complex |
---|---|---|---|
10 | 51924361L | 0.0 | 3.14j |
100 | -0x19323L | 15.20 | 45.j |
-786 | 0122L | -21.9 | 9.322e-36j |
080 | 0xDEFABCECBDAECBFBAEl | 32.3+e18 | .876j |
-0490 | 535633629843L | -90. | -.6545+0J |
-0x260 | -052318172735L | -32.54e100 | 3e+26J |
0x69 | -4721885298529L | 70.2-E12 | 4.53e-7j |
-
Python cho phép bạn sử dụng chữ thường “l” với kiểu số long, nhưng khuyến khích bạn chỉ sử dụng chữ in hoa “L” để tránh nhầm lẫn với số 1. Python hiển thị số nguyên dài với chữ in hoa “L”.
-
Một số phức bao gồm một cặp số thực dấu chấm động theo thứ tự x + yj, trong đó x và y là số thực và j là đơn vị ảo.
Ví dụ:
Dưới đây là một ví dụ để minh họa việc sử dụng các số nguyên, số thực và số phức:
# integer variable.
a=100
print("The type of variable having value", a, " is ", type(a))
# float variable.
b=20.345
print("The type of variable having value", b, " is ", type(b))
# complex variable.
c=10+3j
print("The type of variable having value", c, " is ", type(c))
Kết quả
The type of variable having value 100 is <class 'int'>
The type of variable having value 20.345 is <class 'float'>
The type of variable having value (10+3j) is <class 'complex'>
Kiểu dữ liệu chuỗi trong Python
Chuỗi trong Python được xác định là một tập hợp liên tục các ký tự được biểu diễn trong dấu ngoặc kép hoặc ngoặc đơn. Python cho phép sử dụng cặp dấu ngoặc đơn hoặc kép. Các phần con của chuỗi có thể được lấy bằng toán tử slice ([ ] và [:]) với các chỉ mục bắt đầu từ 0 ở đầu chuỗi và di chuyển đến -1 ở cuối chuỗi.
Dấu cộng (+) là toán tử nối chuỗi và dấu sao (*) là toán tử lặp lại trong Python. Ví dụ:
str = 'Hello World!'
print (str) # Prints complete string
print (str[0]) # Prints first character of the string
print (str[2:5]) # Prints characters starting from 3rd to 5th
print (str[2:]) # Prints string starting from 3rd character
print (str * 2) # Prints string two times
print (str + "TEST") # Prints concatenated string
Kết quả
Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST
Kiểu dữ liệu List trong Python
List trong Python là kiểu dữ liệu phức hợp linh hoạt nhất. Một danh sách Python chứa các mục được phân tách bằng dấu phẩy và được bao quanh bởi dấu ngoặc vuông ([]). Đến một mức độ nào đó, danh sách Python tương tự như các mảng trong C. Một khác biệt giữa chúng là tất cả các mục thuộc một danh sách Python có thể có kiểu dữ liệu khác nhau trong khi mảng C chỉ có thể lưu trữ các phần tử liên quan đến một kiểu dữ liệu cụ thể.
Các giá trị được lưu trữ trong một danh sách Python có thể được truy cập bằng toán tử slice ([ ] và [:]) với các chỉ mục bắt đầu từ 0 ở đầu danh sách và di chuyển đến end - 1. Dấu cộng (+) là toán tử nối danh sách và dấu sao (*) là toán tử lặp lại. Ví dụ:
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
print (list) # Prints complete list
print (list[0]) # Prints first element of the list
print (list[1:3]) # Prints elements starting from 2nd till 3rd
print (list[2:]) # Prints elements starting from 3rd element
print (tinylist * 2) # Prints list two times
print (list + tinylist) # Prints concatenated lists
Kết quả
['abcd', 786, 2.23, 'john', 70.2]
abcd
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.2, 123, 'john']
Kiểu dữ liệu Tuple trong Python
Tuple trong Python là một kiểu dữ liệu chuỗi khác tương tự như list. Một tuple trong Python bao gồm một số giá trị được phân tách bằng dấu phẩy. Tuy nhiên, khác với list, tuple được bao quanh bởi các dấu ngoặc đơn.
Sự khác biệt chính giữa list và tuple là: List được bao quanh bởi dấu ngoặc vuông ([ ]) và các phần tử và kích thước của nó có thể thay đổi, trong khi tuple được bao quanh bởi dấu ngoặc đơn (( )) và không thể được cập nhật. Tuple có thể được xem như là danh sách chỉ đọc. Ví dụ:
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
print (tuple) # Prints the complete tuple
print (tuple[0]) # Prints first element of the tuple
print (tuple[1:3]) # Prints elements of the tuple starting from 2nd till 3rd
print (tuple[2:]) # Prints elements of the tuple starting from 3rd element
print (tinytuple * 2) # Prints the contents of the tuple twice
print (tuple + tinytuple) # Prints concatenated tuples
Kết quả
('abcd', 786, 2.23, 'john', 70.2)
abcd
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.2, 123, 'john')
Đoạn mã sau không hợp lệ với tuple, bởi vì chúng ta đã cố gắng cập nhật một tuple, điều này không được phép. Tuy nhiên chúng ta có thể thực hiện tương tự cũng với list
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tuple[2] = 1000 # Invalid syntax with tuple
list[2] = 1000 # Valid syntax with list
Phạm vi (Range) trong Python
Hàm range() trong Python là một hàm tích hợp sẵn trong Python trả về một chuỗi các số bắt đầu từ 0 và tăng lên 1 cho đến khi nó đạt đến một số được chỉ định.
Chúng ta sử dụng hàm range() với vòng lặp for và while để tạo ra một chuỗi các số. Sau đây là cú pháp của hàm:
range(start, stop, step)
Đây là mô tả các tham số được sử dụng:
- start: số nguyên để chỉ định vị trí bắt đầu (tùy chọn, mặc định: 0)
- stop: số nguyên để chỉ định vị trí kết thúc (bắt buộc)
- step: số nguyên để chỉ định bước nhảy (tùy chọn, mặc định: 1)
Ví dụ:
Dưới đây là một chương trình sử dụng vòng lặp for để in ra các số từ 0 đến 4:
for i in range(5):
print(i)
Điều này cho kết quả như sau −
0
1
2
3
4
Bây giờ chúng ta sửa đổi chương trình trên để in số bắt đầu từ 1 thay vì 0:
for i in range(1, 5):
print(i)
Điều này cho kết quả như sau −
1
2
3
4
Một lần nữa, chúng ta sửa đổi chương trình để in số bắt đầu từ 1 nhưng với bước nhảy là 2 thay vì 1:
for i in range(1, 5, 2):
print(i)
Điều này cho kết quả như sau −
1
3
Từ điển (Dictionary) trong Python
Từ điển (dictionary) trong Python là một loại bảng băm (hash table). Chúng hoạt động giống như các mảng kết hợp hoặc bảng băm được tìm thấy trong Perl và bao gồm các cặp khóa-giá trị. Một khóa từ điển có thể là bất kỳ kiểu dữ liệu Python nào, nhưng thường là số hoặc chuỗi. Giá trị, åthì có thể là bất kỳ đối tượng Python tùy ý nào.
Từ điển được bao quanh bởi các dấu ngoặc nhọn ({}) và giá trị có thể được gán và truy cập bằng cách sử dụng dấu ngoặc vuông ([]). Ví dụ:
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
print (dict['one']) # Prints value for 'one' key
print (dict[2]) # Prints value for 2 key
print (tinydict) # Prints complete dictionary
print (tinydict.keys()) # Prints all the keys
print (tinydict.values()) # Prints all the values
Kết quả
This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'john'}
['dept', 'code', 'name']
['sales', 6734, 'john']
Từ điển Python không có khái niệm về thứ tự giữa các phần tử. Nó là không chính xác nếu nói rằng các phần tử “không theo thứ tự”; chúng chỉ đơn giản là không có thứ tự.
Kiểu dữ liệu boolean trong Python
Kiểu dữ liệu boolean trong Python là một trong những kiểu dữ liệu tích hợp sẵn, đại diện cho một trong hai giá trị True hoặc False. Hàm bool() trong Python cho phép bạn đánh giá giá trị của bất kỳ biểu thức nào và trả về True hoặc False dựa trên biểu thức đó.
Ví dụ
Sau đây là một chương trình in giá trị các biến boolean a và b.
a = True
# display the value of a
print(a)
# display the data type of a
print(type(a))
Kết quả
true
<class 'bool'>
Sau đây là một chương trình khác đánh giá các biểu thức và in các giá trị trả về:
# Returns false as a is not equal to b
a = 2
b = 4
print(bool(a==b))
# Following also prints the same
print(a==b)
# Returns False as a is None
a = None
print(bool(a))
# Returns false as a is an empty sequence
a = ()
print(bool(a))
# Returns false as a is 0
a = 0.0
print(bool(a))
# Returns false as a is 10
a = 10
print(bool(a))
Kết quả
False
False
False
False
False
True
Chuyển đổi kiểu dữ liệu trong Python
Đôi khi, bạn có thể cần thực hiện chuyển đổi giữa các kiểu dữ liệu tích hợp sẵn. Để chuyển đổi dữ liệu giữa các kiểu dữ liệu Python khác nhau, bạn chỉ cần sử dụng tên kiểu như một hàm.
Chuyển đổi thành kiểu int
Dưới đây là một ví dụ để chuyển đổi số, số thực và chuỗi thành kiểu dữ liệu số nguyên.
a = int(1) # a will be 1
b = int(2.2) # b will be 2
c = int("3") # c will be 3
print (a)
print (b)
print (c)
Kết quả
1
2
3
Chuyển đổi thành kiểu float
Dưới đây là một ví dụ để chuyển đổi số, số thực và chuỗi thành kiểu dữ liệu số thực.
a = float(1) # a will be 1.0
b = float(2.2) # b will be 2.2
c = float("3.3") # c will be 3.3
print (a)
print (b)
print (c)
Kết quả
1.0
2.2
3.3
Chuyển đổi thành kiểu string
Dưới đây là một ví dụ để chuyển đổi số, số thực và chuỗi thành kiểu dữ liệu chuỗi.
a = str(1) # a will be "1"
b = str(2.2) # b will be "2.2"
c = str("3.3") # c will be "3.3"
print (a)
print (b)
print (c)
Kết quả
1
2.2
3.3
Các hàm chuyển đổi kiểu dữ liệu
Có một số hàm tích hợp sẵn để thực hiện chuyển đổi từ một kiểu dữ liệu sang kiểu dữ liệu khác. Các hàm này trả về một đối tượng mới đại diện cho giá trị đã được chuyển đổi.
Cú pháp hàm | Giải thích | Ví dụ |
---|---|---|
int(x [,base]) | Chuyển đổi x thành một số nguyên. base chỉ định cơ số nếu x là một chuỗi. | int('10') trả về 10 |
long(x [,base]) | Chuyển đổi x thành một số nguyên dài. base chỉ định cơ số nếu x là một chuỗi. | long('1000000000000000000') trả về 1000000000000000000L |
float(x) | Chuyển đổi x thành một số dấu phẩy động. | float(3) trả về 3.0 |
complex(real [,imag]) | Tạo một số phức. | complex(1,2) trả về (1+2j) |
str(x) | Chuyển đổi đối tượng x thành một chuỗi. | str(3.14) trả về '3.14' |
repr(x) | Chuyển đổi đối tượng x thành một chuỗi biểu thức. | repr(3.14) trả về '3.1400000000000001' |
eval(str) | Đánh giá một chuỗi và trả về một đối tượng. | eval('3+4') trả về 7 |
tuple(s) | Chuyển đổi s thành một tuple. | tuple([1,2,3]) trả về (1, 2, 3) |
list(s) | Chuyển đổi s thành một list. | list((1,2,3)) trả về [1, 2, 3] |
set(s) | Chuyển đổi s thành một set. | set([1,2,2,3,3,3]) trả về {1, 2, 3} |
dict(d) | Tạo một từ điển. d phải là một chuỗi các cặp (khóa,giá trị). | dict([(1,'one'),(2,'two')]) trả về {1: 'one', 2: 'two'} |
frozenset(s) | Chuyển đổi s thành một frozenset. | frozenset([1,2,3]) trả về frozenset({1, 2, 3}) |
chr(x) | Chuyển đổi một số nguyên thành một ký tự. | chr(97) trả về 'a' |
unichr(x) | Chuyển đổi một số nguyên thành một ký tự Unicode. | unichr(12354) trả về u'あ' |
ord(x) | Chuyển đổi một ký tự thành giá trị số nguyên tương ứng của nó. | ord('a') trả về 97 |
hex(x) | Chuy | |
hex(x) | Chuyển đổi một số nguyên thành một chuỗi số hex. | hex(255) trả về '0xff' |
oct(x) | Chuyển đổi một số nguyên thành một chuỗi số octal. | oct(8) trả về '010' |
Các hàm này cho phép chuyển đổi các kiểu dữ liệu khác nhau trong Python, giúp cho việc xử lý dữ liệu trở nên dễ dàng hơn. Chẳng hạn, nếu ta muốn chuyển một số nguyên sang dạng chuỗi thì có thể sử dụng hàm str(), hoặc nếu muốn chuyển một chuỗi sang số nguyên thì sử dụng hàm int(). Tương tự với các kiểu dữ liệu khác như list, tuple, set, dictionary, … Chú ý rằng các hàm này có thể có tham số khác nhau, như base trong hàm int(), hoặc real và imag trong hàm complex().
Bình luận