Các Kiểu Dữ Liệu Trong Python – Techacademy

Ở bài trước mình đã ra mắt qua với mọi người về ngôn từ python rồi, và ở đây mình nhắc lại một lần nữa là series này mình sẽ nói về python 3. Bài này tất cả chúng ta sẽ cùng nhau đi vào khám phá về cách khai báo các kiểu dữ liệu trong Python .

I. Khai Báo Kiểu Dữ Liệu Trong Python

Python cũng giống như một số ít các ngôn từ bậc cao khác, khi ta khai báo biến thì kiểu dữ liệu của nó sẽ tự động hóa được detect. Vì vậy nên tất cả chúng ta cũng không phải quá khó khăn vất vả khi khai báo 1 biến .

VD : Các kiểu dữ liệu cơ bản trong python .

name = "Vũ Thanh Tài"
#string

age = 22
#integer

point = 8.9
#float

option = [1,2,3,4,5]
#lists

tuple = ('Vũ Thanh Tài', 22, True)
#Tuple

dictionary = {"name": "Vu Thanh Tai", "age": 22, "male": True}
#Dictionary

Từng bài sau mình sẽ đi vào chi tiết các kiểu dữ liệu này nên các bạn cũng không cần phải quá lo lắng vì chưa biết về nó nhé.

Khai Báo Kiểu Dữ Liệu Trong Python

II. Các Kiểu Dữ Liệu Cơ Bản Trong Python

Giới thiệu

Trong lập trình, kiểu dữ liệu là một khái niệm rất quan trọng. Các biến hoàn toàn có thể tàng trữ dữ liệu thuộc nhiều kiểu khác nhau và các kiểu khác nhau hoàn toàn có thể làm những việc khác nhau .
Python có các kiểu dữ liệu sau được tích hợp sẵn theo mặc định :
* Text Type : str
* Numeric Types : int, float, complex
* Sequence Types : list, tuple, range
* Mapping Type : dict
* Set Types : set, frozenset
* Boolean Type : bool
* Binary Types : bytes, bytearray, memoryview
Bạn hoàn toàn có thể lấy kiểu dữ liệu của bất kể đối tượng người dùng nào bằng cách sử dụng hàm type ( ) :

x = 5
print(type(x))

Trong Python, kiểu dữ liệu được đặt khi bạn gán giá trị cho một biến. Nếu bạn muốn chỉ định kiểu dữ liệu, bạn hoàn toàn có thể sử dụng các hàm khởi tạo sau :

Example Data type
x = str(“Hello World”) str
x = int(20) int
x = float(20.5) float
x = complex(1j) complex
x = list((“apple”, “banana”, “cherry”)) list
x = tuple((“apple”, “banana”, “cherry”)) tuple
x = range(6) range
x = dict(name=”John”, age=36) dict
x = set((“apple”, “banana”, “cherry”)) set
x = frozenset((“apple”, “banana”, “cherry”)) frozenset
x = bool(5) bool
x = bytes(5) bytes
x = bytearray(5) bytearray
x = memoryview(bytes(5)) memoryview

Python numbers

Có ba kiểu số trong Python :

  • int
  • float
  • complex

int

Int, hoặc integer, là một số nguyên, dương hoặc âm, không có số thập phân, có độ dài không số lượng giới hạn .

x = 1
y = 35656222554887711
z = -3255522

float

Float, hoặc “ số dấu phẩy động ” là một số ít, dương hoặc âm, chứa một hoặc nhiều số thập phân .

x = 1.10
y = 1.0
z = -35.59

Float cũng hoàn toàn có thể là các số khoa học với chữ “ e ” để biểu lộ lũy thừa của 10 .

x = 35e3
y = 12E4
z = -87.7e100

Complex

Complex ( số phức ) được viết với “ j ” là phần ảo :

x = 3+5j
y = 5j
z = -5j

Python Strings

String Literals

Các ký tự chuỗi trong python được bao quanh bởi dấu ngoặc kép đơn hoặc dấu ngoặc kép .
‘ hello ’ cũng giống như “ hello ” .
Bạn hoàn toàn có thể hiển thị một chuỗi ký tự bằng hàm print ( ) :

print("Hello")
print('Hello')

Multiline Strings

Bạn hoàn toàn có thể gán một chuỗi nhiều dòng cho một biến bằng cách sử dụng ba dấu ngoặc kép :

a = """Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua."""
print(a)

Hoặc

a = '''Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.'''
print(a)

Chuỗi là Mảng

Giống như nhiều ngôn từ lập trình phổ cập khác, chuỗi trong Python là các mảng byte đại diện thay mặt cho các ký tự unicode. Tuy nhiên, Python không có kiểu dữ liệu ký tự, một ký tự đơn thuần chỉ là một chuỗi có độ dài là 1. Dấu ngoặc vuông hoàn toàn có thể được sử dụng để truy vấn các thành phần của chuỗi .
Ví dụ : Lấy ký tự ở vị trí 1 ( hãy nhớ rằng ký tự tiên phong có vị trí 0 )

a = "Hello, World!"
print(a[1])

Python Booleans

Boolean đại diện thay mặt cho một trong hai giá trị : True hoặc False .

Giá trị Boolean

Trong lập trình, bạn thường cần biết một biểu thức là True hoặc False. Bạn hoàn toàn có thể nhìn nhận bất kể biểu thức nào trong Python và nhận được một trong hai câu vấn đáp, True hoặc False. Khi bạn so sánh hai giá trị, biểu thức được nhìn nhận và Python trả về câu vấn đáp Boolean :

print(10 > 9)
print(10 == 9)
print(10 < 9)

Hầu hết các giá trị đều là True

Hầu hết mọi giá trị đều được nhìn nhận là True nếu nó có một số ít loại nội dung .
Bất kỳ chuỗi nào là True, ngoại trừ các chuỗi rỗng .
Bất kỳ số nào là True, ngoại trừ 0 .
Mọi list, tuple, set và dictionary đều True, ngoại trừ những list trống .

Một số giá trị là False

Trên trong thực tiễn, không có nhiều giá trị được nhìn nhận là False, ngoại trừ các giá trị trống, ví dụ điển hình như ( ), [ ], { }, “ ”, số 0 và giá trị None. Và tất yếu giá trị False nhìn nhận là False .

Python Lists

List là một tập hợp được sắp xếp và hoàn toàn có thể đổi khác. Trong Python, list được viết bằng dấu ngoặc vuông .

thislist = ["apple", "banana", "cherry"]
print(thislist)

Bạn truy vấn các mục trong list bằng cách tham chiếu đến số chỉ mục :

thislist = ["apple", "banana", "cherry"]
print(thislist[1])

Ngoài ra, cũng hoàn toàn có thể sử dụng hàm tạo list ( ) để tạo một list mới .

thislist = list(("apple", "banana", "cherry")) # lưu ý 2 cặp dấu ngoặc tròn
print(thislist)

Python Tuples

tuple là một tập hợp được sắp xếp theo thứ tự và không hề biến hóa. Trong Python, tuple được viết bằng dấu ngoặc tròn .

thistuple = ("apple", "banana", "cherry")
print(thistuple)

Bạn hoàn toàn có thể truy vấn thành phần của tuple bằng cách tham chiếu đến số chỉ mục, bên trong dấu ngoặc vuông :

thistuple = ("apple", "banana", "cherry")
print(thistuple[1])

Tạo Tuple với một mục

Để tạo một bộ dữ liệu tuple chỉ có một thành phần, bạn phải thêm dấu phẩy sau thành phần đó, nếu không Python sẽ không nhận ra nó là một tuple .

thistuple = ("apple",)
print(type(thistuple))

#NOT a tuple
thistuple = ("apple")
print(type(thistuple))

Cũng hoàn toàn có thể sử dụng hàm tạo tuple ( ) để tạo một bộ tuple .

thistuple = tuple(("apple", "banana", "cherry")) # lưu ý 2 cặp dấu ngoặc tròn
print(thistuple)

Khi một tuple được tạo, bạn không hề biến hóa các giá trị của nó. Tuples là không hề biến hóa, hoặc cũng được gọi không bao giờ thay đổi .
Nhưng có một cách xử lý. Bạn hoàn toàn có thể quy đổi tuple thành một list, biến hóa list và quy đổi lại list thành tuple .

Python Sets

set là một tập hợp không có thứ tự và không được lập chỉ mục. Trong Python, set được viết bằng dấu ngoặc nhọn .

thisset = {"apple", "banana", "cherry"}
print(thisset)

Bạn không hề truy vấn các mục trong một set bằng cách tham chiếu đến chỉ mục hoặc khóa .
Nhưng bạn hoàn toàn có thể lặp qua các thành phần trong set bằng vòng lặp for hoặc kiểm tra xem giá trị được chỉ định có trong set hay không bằng cách sử dụng từ khóa in .
Lặp qua tập hợp và in các giá trị :

thisset = {"apple", "banana", "cherry"}

for x in thisset:
  print(x)

Kiểm tra xem “ chuối ” có trong set không :

thisset = {"apple", "banana", "cherry"}

print("banana" in thisset)

Sau khi set được tạo, bạn không hề biến hóa các mục của nó, nhưng bạn hoàn toàn có thể thêm các mục mới .
Có thể sử dụng hàm tạo set ( ) để tạo một set .

thisset = set(("apple", "banana", "cherry")) # note the double round-brackets
print(thisset)

Python Dictionaries

dictionary là một tập hợp không có thứ tự, hoàn toàn có thể biến hóa và được lập chỉ mục. Trong Python dictionary được viết bằng dấu ngoặc nhọn và chúng có các khóa và giá trị .

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
print(thisdict)

dictionary cũng hoàn toàn có thể chứa nhiều dictionary, đây được gọi là nested dictionaries .

myfamily = {
  "child1" : {
    "name" : "Emil",
    "year" : 2004
  },
  "child2" : {
    "name" : "Tobias",
    "year" : 2007
  },
  "child3" : {
    "name" : "Linus",
    "year" : 2011
  }
}

Hoặc, nếu bạn muốn lồng ba dictionary đã sống sót dưới dạng dictionary :

child1 = {
  "name" : "Emil",
  "year" : 2004
}
child2 = {
  "name" : "Tobias",
  "year" : 2007
}
child3 = {
  "name" : "Linus",
  "year" : 2011
}

myfamily = {
  "child1" : child1,
  "child2" : child2,
  "child3" : child3
}

Cũng hoàn toàn có thể sử dụng hàm tạo dict ( ) để tạo dictionary mới :

thisdict = dict(brand="Ford", model="Mustang", year=1964)
# lưu ý rằng từ khóa không phải là chuỗi ký tự
# lưu ý việc sử dụng dấu bằng thay vì dấu hai chấm cho việc gán giá trị
print(thisdict)

Các Kiểu Dữ Liệu Cơ Bản Trong Python

III. Nhập Dữ Liệu Trong Python

Do sự phổ cập của Python3, nên trong bài viết này cũng như các bài san sẻ kiến thức và kỹ năng cho các bạn tại chuyên đề Tự học python cho người mới khởi đầu, Kiyoshi mạn phép sẽ gọi và sử dụng hàm input ( ) trong Python3 là Hàm input ( ) trong Python và coi đây là hàm nhập dữ liệu mặc định. Chúng ta sẽ cùng tìm hiểu và khám phá cụ thể về hàm này ở dưới đây .

Hàm input() trong Python là gì

Hàm input ( ) trong Python là một hàm cài sẵn, có tính năng nhận dữ liệu nhập từ bàn phím vào Python và trả về tác dụng dưới dạng kiểu chuỗi string ( str ) .

Cú pháp và cách sử dụng hàm input() trong Python

Chúng ta sử dụng hàm input ( ) trong Python với cú pháp sau đây :

input ( prompt )

Trong đó prompt là đối số duy nhất của hàm input ( ). Đây là một chuỗi ký tự bất kể có tính năng hướng dẫn hoặc gợi ý về dữ liệu nhập vào. Bạn hoàn toàn có thể tự do viết prompt hoặc hoàn toàn có thể lược bỏ đi đối số này .
Ví dụ như các cách viết sau với hàm input ( ) trong Python đều OK cả .
1. Lược bỏ promtp

input()

Màn hình nhập dữ liệu :
Nhập Dữ Liệu Trong Python
Thêm hướng dẫn, gợi ý về dữ liệu nhập vào trải qua promtp :

input("Hay nhap mot so nguyen duong:")

Màn hình nhập dữ liệu :
Nhập Dữ Liệu Trong Python
Thêm ký tự thông tin chờ nhập liệu và làm đẹp phần nhập dữ liệu trải qua promtp :

input(">>")

Màn hình nhập dữ liệu :
Nhập Dữ Liệu Trong Python
Nếu bạn chỉ định một chuỗi ký tự trong đối số promtp khi sử dụng hàm input ( ), chuỗi ký tự đó sẽ được hiển thị khi chờ nhập. Nếu bạn lược bỏ promtp, sẽ không có gì sẽ được hiển thị trên màn hình hiển thị và bạn sẽ không biết liệu mình có đang chờ nhập liệu hay không. Do đó Kiyoshi khuyên bạn sẽ tốt hơn nếu bạn sử dụng hàm input ( ) có kèm theo chỉ định đối số prompt trong hàm .
Hàm input ( ) sẽ nhận dữ liệu nhập từ bàn phím và sau đó trả về hiệu quả là một chuỗi string ( str ) chứa dữ liệu được nhập. Chúng ta hoàn toàn có thể gán tác dụng này vào biến và sử dụng trong chương trình, ví dụ như in ra màn hình hiển thị như sau :

dulieu = input("Hãy nhập dữ liệu:")
>>> Hãy nhập dữ liệu:123abc

print(dulieu)

#>> 123abc

Lưu ý là tổng thể các loại dữ liệu nhập từ bàn phím vào Python bằng hàm input ( ) đều được trả về hiệu quả là một chuỗi string ( str ). Do đó kể cả bạn có nhập số từ bàn phím vào Python chăng nữa thì số này cũng sẽ được nhận dưới dạng kiểu chuỗi mà thôi. Chúng ta hoàn toàn có thể kiểm tra kiểu dữ liệu của tác dụng nhận được bằng hàm type ( ) như dưới đây :

dulieu = input("Hãy nhập dữ liệu:")
# Hãy nhập dữ liệu:123

print(type(dulieu))
#>> 

Bạn có thể thấy số 123 nhập từ bàn phím đã được python nhận vào dưới dạng chuỗi () như trên.

Các cách nhập dữ liệu nâng cao bằng hàm input trong python

Ở phần trên tất cả chúng ta đã biết cách sử dụng hàm input ( ) cơ bản nhất để nhập dữ liệu trong Python rồi. Thực tế khi sử dụng hàm input ( ) trong Python, bằng cách phối hợp với các hàm hoặc phương pháp khác, tất cả chúng ta sẽ có vô vàn cách sử dụng input ( ) khác nhau một cách đơn thuần và thông mình hơn. Kiyoshi sẽ trình làng cho bạn 1 số ít giải pháp sử dụng nâng cao của hàm input ( ) trong Python như dưới đây :

Nhập cùng lúc nhiều dữ liệu trên một dòng vào Python

Bằng cách tích hợp với phương pháp tách chuỗi split ( ) trong Python, tất cả chúng ta hoàn toàn có thể nhập cùng lúc nhiều giá trị vào Python chỉ trên một dòng nhập dữ liệu .
Chúng ta sẽ nhập cùng lúc nhiều dữ liệu trên một dòng vào Python bằng cách nhập tổng thể các dữ liệu đó cách nhau bởi dấu cách, sau đó tách các dữ liệu đó ra bằng split ( ) và lưu tác dụng dưới dạng list như sau :

s = input(">>").split()
print(s)

Màn hình nhập dữ liệu sẽ như sau :

>> 1 23 ab
['1', '23','ab']

Nhập nhiều dữ liệu trên nhiều dòng vào Python

Bằng cách sử dụng tích hợp với cách viết nội hàm list comprehension, tất cả chúng ta hoàn toàn có thể sử dụng hàm input ( ) để nhập nhiều dữ liệu trên nhiều dòng vào Python như sau :

s = [input(">>") for i in range(3)]
print(s)

Màn hình nhập dữ liệu sẽ như sau :

>> 1
>> 23
>> ab
['1', '23','ab']

Ứng dụng cách viết này, tất cả chúng ta hoàn toàn có thể nhập n số nguyên từ bàn phím python như sau :

n = 5
s = [int(input(">>")) for i in range(n)]
print(s)

Màn hình nhập dữ liệu sẽ như sau :

>> 1
>> 23
>> 34
>> 100
>> 2
[1, 23, 34, 100, 2]

IV. Xuất Dữ Liệu Trong Python

Hàm print() trong Python

Do sự thông dụng của Python3, nên trong bài viết này cũng như các bài san sẻ kiến thức và kỹ năng cho các bạn tại chuyên đề Tự học python cho người mới khởi đầu, Kiyoshi mạn phép sẽ gọi và sử dụng hàm print ( ) trong Python3 là hàm print ( ) trong Python và coi đây là hàm xuất dữ liệu mặc định. Chúng ta sẽ cùng tìm hiểu và khám phá chi tiết cụ thể về hàm này ở dưới đây .
+ Hàm print ( ) trong Python là gì
Hàm print ( ) trong Python là một hàm cài sẵn, có công dụng hiển thị ( in ) dữ liệu ra màn hình hiển thị khi chạy chương trình python .
+ Cú pháp và cách sử dụng hàm print ( ) trong Python
Hàm print ( ) trong Python có cú pháp tổng quát với khá nhiều đối số như sau :

print ( *objects, sep=' ', end='\n', file=sys.stdout, flush=False )

Trong đó :

  • *objects : đối tượng (dữ liệu) cần in ra màn hình. Dấu * có ý nghĩa là số nhiều và chúng ta cũng có thể chỉ định nhiều đối tượng khác nhau và in chúng cùng lúc ra màn hình.
  • sep: đối tượng chỉ định sẽ được phân tách thành các phần nhỏ bằng ký tự phân tách sep trước khi được in, và mặc định giá trị này là một khoảng trắng ‘ ‘.
  • end: giá trị cuối cùng được in ra màn hình, và mặc định giá trị này là ký tự xuống dòng \n. Đối số này sẽ quyết định việc in xuống dòng hay in không xuống dòng trong Python.
  • file=sys.stdout: chỉ định lưu kết quả đầu ra vào bộ nhớ đệm sys.stdout.
  • flush=False: chỉ định cưỡng chế lưu giữ kết quả vào bộ nhớ đệm, và giá trị mặc định là false, có nghĩa là KHÔNG lưu giữ kết quả vào bộ nhớ.

Tuy nhiên trong trong thực tiễn khi sử dụng hàm print ( ) trong Python, tất cả chúng ta lược bỏ hầu hết các đối số và sử dụng cú pháp đơn thuần nhất sau đây :

print ( *objects )

Ví dụ, tất cả chúng ta chỉ định objects là 1 chuỗi ký tự và in ra màn hình hiển thị dòng chữ I LOVE PYTHON như sau :

print('I LOVE PYTHON')

Màn hình xuất dữ liệu :
Xuất Dữ Liệu Trong Python
Chúng ta cũng hoàn toàn có thể chỉ định * objects với nhiều chuỗi ký tự được cách nhau bởi dấu phẩy và in chúng cùng lúc ra màn hình hiển thị như sau :

print('I LOVE PYTHON', 'and JavaScript')

Màn hình xuất dữ liệu :
Xuất Dữ Liệu Trong Python
Lưu ý là các đối số sep, end, file và flush đều là các đối số keyword, do đó nếu bạn muốn sử dụng chúng trong hàm print ( ) thì phải viết cả keyword của nó .
Ví dụ như tất cả chúng ta sử dụng đối số end trong hàm print ( ) để in không xuống dòng trong Python như sau :

print("Việt Nam ", end='')
print("vô địch")
#>> Việt Nam vô địch

Nếu bạn bỏ quên không ghi keyword, mặc dầu lỗi không xảy ra nhưng đối số đó sẽ bị Python coi như là một đối tượng người tiêu dùng cần in ra màn hình hiển thị và bỏ lỡ công dụng của nó như sau :

print("Việt Nam ", '')
print("vô địch")

#>> Việt Nam  
#>> vô địch

V. Kiểu Dữ Liệu Boolean Trong Python

Trong bài học kinh nghiệm này tất cả chúng ta sẽ xem xét chí tiết cách sử dụng kiểu dữ liệu bool trong Python. Đây là một kiểu dữ liệu đơn thuần nhưng rất quan trọng để chuyển sang học về các cấu trúc điều khiển và tinh chỉnh ( if-elif-else, while, for ) trong Python .

Kiểu bool trong Python

Kiểu bool ( Boolean ) trong Python là kiểu dữ liệu trong đó chỉ có hai giá trị True và False. True và False là hai từ khóa trong Python .

>>> a = True
>>> type(a) # hàm cho biết kiểu của biến

>>> b = False
>>> type(b)

Nếu bạn đã học một ngôn từ trong họ C cần quan tâm giá trị là True / False ( T và F phải viết hoa ). Viết true / false là sai và sẽ bị báo lỗi như sau :

>>> a = true # Python sẽ hiểu true là một biến (vốn chưa tồn tại)
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'true' is not defined

Kiểu bool là kiểu tác dụng trả về của các phép so sánh trên số và chuỗi mà bạn đã học trong các bài trước :

>>> a = 10; b = 5
>>> a > b
True
>>> a <= b
False
>>> a != b
True
>>> a == b
False
>>> 0 < b < a < 11 # Python cho phép viết như thế này
True
>>> a = 'Hello'; b = 'Python'
>>> a != b
True
>>> a > b
False
>>> a < b
True
>>> a == b
False
>>>

Một số phương pháp của str cũng trả về giá trị bool :

>>> my_string = "Hello World"
>>> my_string.isalnum()        #kiểm tra xem chuỗi có chứa toàn chữ số
False
>>> my_string.isalpha()        # chuỗi chứa toàn chữ cái
False
>>> my_string.isdigit()        # chuỗi có chứa chứ số
False
>>> my_string.isupper()        # chuỗi chứa toàn ký tự hoa
False
>>> my_string.islower()        # chuỗi chứa toàn kỹ tự thường
False
>>> my_string.isspace()        # chuỗi chỉ chứa khoảng tráng
False
>>> my_string.endswith('d')        # kết thúc là d
True
>>> my_string.startswith('H')    # bắt đầu là H
True

Chuyển đổi kiểu dữ liệu về bool

Python được cho phép quy đổi giữa các kiểu dữ liệu khác và bool qua hàm bool ( ) theo quy tắc sau :

  • Giá trị kiểu số (số nguyên, số thực, số phức) thành giá trị True nếu số đó khác 0, và False nếu số đó bằng 0.
  • Giá trị kiểu chuỗi thành giá trị False nếu đó là chuỗi rỗng (không có ký tự nào ”), và True nếu chuỗi có dù chỉ 1 ký tự.
>>> zero_int = 0
>>> bool(zero_int)
False
>>> pos_int = 1
>>> bool(pos_int)
True
>>> neg_flt = -5.1
>>> bool(neg_flt)
True
>>> ans = 'true'
>>> bool(ans)
True
>>> ans = 'hello'
>>> bool(ans)
True
>>> ans = '' # chuỗi rỗng (không có ký tự nào)
>>> bool(ans)
False
>>> ans = ' ' # chuỗi này chứa 1 dấu cách
>>> bool(ans)
True

Python cũng hoàn toàn có thể quy đổi giá trị của các kiểu khác về bool. Ví dụ list rỗng -> False, list có thành phần -> True. Chúng ta sẽ học về các kiểu dữ liệu này sau .

Các phép toán trên kiểu bool

Các phép toán trên kiểu bool, còn được gọi là số học Boolean, là các phép toán logic chỉ trả về hiệu quả True hoặc False. Các phép toán thông dụng nhất gồm có and, or, not, = = và ! = .

>>> A = True
>>> B = False
>>> A or B
True
>>> A and B
False
>>> not A
False
>>> not B
True
>>> A == B
False
>>> A != B
True
A B not A not B A == B A =! B A or B A and B
T F F T F T T F
F T T F F T T F
T T F F T F T T
F F T T T F F

Bảng chân trị của các phép toán logic Boolean
Bạn hoàn toàn có thể ghép các phép toán trên để tạo thành biểu thức phức tạp hơn như sau :

>>> A = True
>>> B = False
>>> C = False
>>> A or (C and B)
True
>>> (A and B) or C
False

Kiểu Dữ Liệu Boolean Trong Python

VI. Các Kiểu Dữ Liệu Số Trong Python

Python tương hỗ số nguyên, số thập phân và số phức, chúng lần lượt được định nghĩa là các lớp int, float, complex trong Python. Số nguyên và số thập phân được phân biệt bằng sự xuất hiện hoặc vắng mặt của dấu thập phân. Ví dụ : 5 là số nguyên, 5.0 là số thập phân. Python cũng tương hỗ số phức và sử dụng hậu tố j hoặc J để chỉ phần ảo. Ví dụ : 3 + 5 j. Ngoài int và float, Python tương hỗ thêm 2 loại số nữa là Decimal và Fraction .
Ta sẽ dùng hàm type ( ) để kiểm tra xem biến hoặc giá trị thuộc lớp số nào và hàm isinstance ( ) để kiểm tra xem chúng có thuộc về một class đơn cử nào không .

a = 9

# Output: 
print(type(a))

# Output: 
print(type(5.0))

# Output: (10+2j)
b = 8 + 2j
print(b + 2)

# Kiểm tra xem b có phải là số phức không
# Output: True
print(isinstance(b, complex))

Số nguyên trong Python không bị giới hạn độ dài, số thập phân bị số lượng giới hạn đến 16 số sau dấu thập phân .
Những số lượng chúng là thao tác hàng ngày thường là thông số 10, nhưng lập trình viên máy tính ( thường là lập trình viên nhúng ) cần thao tác với mạng lưới hệ thống số nhị phân, thập lục phân và bát phân. Để màn biểu diễn những thông số này trong Python, ta đặt một tiền tố thích hợp trước số đó .
Tiền tố thông số cho các số Python :

Hệ thống số Tiền tố
Hệ nhị phân ‘0b’ hoặc ‘0B’
Hệ bát phân ‘0o’ hoặc ‘0O’
Hệ thập lục phân ‘0x’ hoặc ‘0X’

( Bạn đặt tiền tố nhưng không có dấu ‘ ‘ nhé ) .
Đây là ví dụ về việc sử dụng các tiền tố thông số trong Python, và khi dùng hàm print ( ) để in giá trị của chúng ra màn hình hiển thị, ta sẽ nhận được số tương ứng trong thông số 10 .

# Output: 187
print(0b10111011)

# Output: 257 (250 + 7)
print(0xFA + 0b111)

# Output: 15
print(0o17)

Các Kiểu Dữ Liệu Số Trong Python

VII. Chuỗi (String)

Kiểu dữ liệu chuỗi ( String ) trong Python là một trong các kiểu thông dụng nhất trong Python. Chuỗi ký tự trong python được bao quanh bởi dấu ngoặc kép đơn hoặc dấu ngoặc kép. Python coi các lệnh trích dẫn đơn và kép là như nhau. Ví dụ : ‘ Hello ’ tương tự với “ Hello ” .
Bạn hoàn toàn có thể hiển thị một chuỗi trong Python bằng print ( ). Ví dụ :

print("Hello")
print('Hello')

Gán chuỗi cho một biến

Việc gán một chuỗi cho một biến được triển khai với tên biến theo sau là dấu bằng và chuỗi, Ví dụ :

str1 = "Hello World!"
print(str1)

Chuỗi đa dòng

Bạn hoàn toàn có thể gán một chuỗi nhiều dòng cho một biến bằng cách sử dụng 3 dấu ngoặc kép hoặc 3 dấu nháy đơn :
Ví dụ nhập chuỗi đa dòng với 3 dấu ngoặc kép :

str1 = """Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4"""
print(str1)

Ví dụ nhập chuỗi đa dòng với 3 dấu nháy đơn :

str1 = '''Vi du nhap chuoi nhieu dong trong Python
day la dong thu 2
day la dong thu 3
day la dong thu 4'''
print(str1)

Chuỗi là một mảng

Các chuỗi trong Python là mảng các byte đại diện thay mặt cho các ký tự unicode .
Tuy nhiên, Python không có kiểu dữ liệu ký tự, một ký tự đơn thuần chỉ là một chuỗi có độ dài bằng 1 .
Dấu ngoặc vuông [ ] hoàn toàn có thể được sử dụng để truy vấn các thành phần của chuỗi. Ký tự tiên phong có chỉ số là 0 .

str1 = "Hello World!"
print(str1[0])

Kết quả :

H

Truy cập các giá trị trong String

Dấu ngoặc vuông [ ] hoàn toàn có thể được sử dụng để truy vấn các thành phần của chuỗi. Ký tự tiên phong có chỉ số là 0 .
Chuỗi (String)
Ví dụ 1 :

str1 = "HELLO"
str1 = "HELLO"
print(str1[0])
print(str1[1])
print(str1[2])
print(str1[3])
print(str1[4])

Kết quả : trả về một chuỗi con từ vị trí 6 đến 8 của chuỗi đã cho :

H
E
L
L
O

Chỉ định chỉ mục mở màn và chỉ mục kết thúc, được phân tách bằng dấu hai chấm, để trả về một phần của chuỗi .
Chuỗi (String)
Ví dụ 2 :

str1 = "HELLO"
print(str1[:])
print(str1[0:])
print(str1[:5])
print(str1[:3])
print(str1[0:2])
print(str1[1:4])

Kết quả :

HELLO
HELLO
HELLO
HEL
HE
ELL

Truy cập chuỗi bằng chỉ mục âm

Sử dụng các chỉ mục âm để lấy ra chuỗi con khởi đầu từ cuối chuỗi : Ví dụ :

str1 = "Hello World!"
print(str1[-5:-2])

Kết quả : trả về một chuỗi con từ vị trí 3 đến 5 từ từ cuối chuỗi của chuỗi đã cho :

orl

Chiều dài chuỗi trong Python

Sử dụng hàm len ( ) để tính chiều dài chuỗi trong Python, Ví dụ :

a = "Hello World!"
print(len(a))

Kết quả :

12

VIII. Danh Sách (List)

Python phân phối một loạt các dữ liệu phức tạp, thường được gọi là các chuỗi ( sequence ), sử dụng để nhóm các giá trị khác nhau. Đa năng nhất là list ( list ) .

Cách tạo list trong Python

Trong Python, list được trình diễn bằng dãy các giá trị, được phân tách nhau bằng dấu phẩy, nằm trong dấu [ ]. Các list hoàn toàn có thể chứa nhiều mục với kiểu khác nhau, nhưng thường thì là các mục có cùng kiểu .

>>> squares = [1, 4, 9, 16, 25]
>>> squares
[1, 4, 9, 16, 25]

List không số lượng giới hạn số lượng mục, bạn hoàn toàn có thể có nhiều kiểu dữ liệu khác nhau trong cùng một list, như chuỗi, số nguyên, số thập phân, …

list1 = [] # list rỗng
list2 = [1, 2, 3] # list số nguyên
list3 = [1, "Hello", 3.4] # list với kiểu dữ liệu hỗn hợp

Bạn cũng hoàn toàn có thể tạo các list lồng nhau ( list chứa trong list ), ví dụ :

a = ['a', 'b', 'c']
n = [1, 2, 3]
x = [a, n]

print (x) # Output: [['a', 'b', 'c'], [1, 2, 3]]
print (x[0]) # Output: ['a', 'b', 'c']
print(x[0][1]) # Output: b

Hoặc khai báo list lồng nhau từ đầu :

list4 = [mouse", [8, 4, 6], ['a']]

Truy cập vào phần tử của list

Có nhiều cách khác nhau để truy vấn vào thành phần của một list :

Index (chỉ mục) của list:

Sử dụng toán tử index [ ] để truy vấn vào một thành phần của list. Index mở màn từ 0, nên một list có 5 thành phần sẽ có index từ 0 đến 4. Truy cập vào thành phần có index khác index của list sẽ làm phát sinh lỗi IndexError. Index phải là một số nguyên, không hề sử dụng float, hay kiểu dữ liệu khác, sẽ tạo lỗi TypeError .

qtm_list = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']

# TypeError: list indices must be integers or slices, not float
# TypeError: index của list phải là số nguyên hoặc slice, không phải số thập phân
qtm_list[2.0]

List lồng nhau hoàn toàn có thể truy vấn bằng index lồng nhau :

qtm_list = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']
# Output: q
print(qtm_list[0])

# Output: a
print(qtm_list[2])

# Output: t
print(qtm_list[4])

# List lồng nhau
ln_list = ["Happy", [1,3,5,9]]

# Index lồng nhau

# Output: a
print(ln_list[0][1])

# Output: 9
print(ln_list[1][3])

Index âm:

Python được cho phép lập chỉ mục âm cho các chuỗi. Index - 1 là thành phần sau cuối, - 2 là thành phần thứ 2 từ ở đầu cuối lên. Nói đơn thuần là index âm dùng khi bạn đếm thành phần của chuỗi ngược từ cuối lên đầu .

qtm_list = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']

# Code by Quantrimang.com
# Output: m
print(qtm_list[-1])
# Output: i
print(qtm_list[-9])

Cắt lát (slice) list trong Python

Python được cho phép truy vấn vào một dải thành phần của list bằng cách sử dụng toán tử cắt lát : ( dấu hai chấm ). Mọi hành vi cắt list đều trả về list mới chứa những yếu tố được nhu yếu .

qtm_list = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']
# Code by Quantrimang.com
# Output: ['u', 'a', 'n', 't']
print(qtm_list[1:5])
# Output: ['q', 'u', 'a', 'n', 't', 'r', 'i']
print(qtm_list[:-8])
# Output: ['n', 'g', '.', 'c', 'o', 'm']
print(qtm_list[9:])

Để cắt lát list, bạn chỉ cần sử dụng dấu : giữa 2 index cần lấy các thành phần. [ 1 : 5 ] sẽ lấy thành phần 1 đến 5, [ : - 8 ] lấy từ 0 đến thành phần - 8, …

Nếu thực hiện hành động cắt sau thì nó sẽ trả về một list mới là bản sao của list ban đầu:

qtm_list = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']

# Output: ['q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g', '.', 'c', 'o', 'm']
print(qtm_list[:])

Thay đổi hoặc thêm phần tử vào list

List cũng tương hỗ các hoạt động giải trí như nối list :

>>> squares + [36, 49, 64, 81, 100]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

Không giống như chuỗi, bị gán cố định và thắt chặt, list là kiểu dữ liệu hoàn toàn có thể đổi khác. Ví dụ, bạn hoàn toàn có thể đổi khác các mục trong list :

>>> cubes = [1, 8, 27, 65, 125] # có vẻ sai sai
>>> 4 ** 3 # lập phương của 4 là 64, không phải 65!
64
>>> cubes[3] = 64 # thay thế giá trị sai
>>> cubes
[1, 8, 27, 64, 125]

Bạn cũng hoàn toàn có thể cho thêm mục mới vào cuối list bằng cách sử dụng các phương pháp, ví dụ điển hình như append ( ) :

>>> cubes.append(216) # thêm lập phương của 6
>>> cubes.append(7 ** 3) # và lập phương của 7
>>> cubes
[1, 8, 27, 64, 125, 216, 343]

Việc gán cho lát cũng hoàn toàn có thể thực thi và thậm chí còn hoàn toàn có thể biến hóa cả size của list hay xóa nó trọn vẹn :

>>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> # thay thế vài giá trị
>>> letters[2:5] = ['C', 'D', 'E']
>>> letters
['a', 'b', 'C', 'D', 'E', 'f', 'g']
>>> # giờ thì xóa chúng
>>> letters[2:5] = []
>>> letters
['a', 'b', 'f', 'g']
>>> # xóa list bằng cách thay tất cả các phần tử bằng một list rỗng
>>> letters[:] = []
>>> letters
[]

Hàm len ( ) cũng hoàn toàn có thể vận dụng với list :

>>> letters = ['a', 'b', 'c', 'd']
>>> len(letters)
4

Xóa hoặc loại bỏ phần tử khỏi list trong Python

Bạn hoàn toàn có thể xóa một hoặc nhiều thành phần khỏi list sử dụng từ khóa del, hoàn toàn có thể xóa trọn vẹn cả list .

my_list = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']

# xóa phần tử có index là 2
del my_list[2]

# Output: ['q', 'u', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g', '.', 'c', 'o', 'm'] 
print(my_list)

# xóa phần tử có index từ 1 đến 7
del my_list[1:7]

# Output: ['q', 'a', 'n', 'g', '.', 'c', 'o', 'm']
print(my_list)

# xóa toàn bộ list my_list
del my_list

# Error: NameError: name 'my_list' is not defined
print(my_list)

Bạn cũng hoàn toàn có thể sử dụng remove ( ) để vô hiệu những thành phần đã cho hoặc pop ( ) để vô hiệu thành phần tại một index nhất định. pop ( ) vô hiệu thành phần và trả về thành phần sau cuối nếu index không được chỉ định. Điều này giúp tiến hành list dưới dạng stack ( ngăn xếp ) ( cấu trúc dữ liệu first in last out – vào tiên phong, ra ở đầu cuối ) .
Ngoài ra, phương pháp clear ( ) cũng được dùng để làm rỗng một list ( xóa toàn bộ các thành phần trong list ) .

my_list = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']
my_list.remove('.')

# Output: ['q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g', 'c', 'o', 'm'] 
print(my_list)

# Output: n
print(my_list.pop(3))

# Output: ['q', 'u', 'a', 't', 'r', 'i', 'm', 'a', 'n', 'g', 'c', 'o', 'm']
print(my_list)

# Output: m
print(my_list.pop())

# Output: ['q', 'u', 'a', 't', 'r', 'i', 'm', 'a', 'n', 'g', 'c', 'o']
print(my_list)

my_list.clear()

# Output: [] (list rỗng)
print(my_list)

Cách ở đầu cuối để xóa các thành phần trong một list là gán một list rỗng cho các lát thành phần .

>>> my_list = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']
>>> my_list[11:15]=[]
>>> my_list
['q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g']

Phương thức list trong Python

Những phương pháp có sẵn cho list trong Python gồm :

  • append(): Thêm phần tử vào cuối list.
  • extend(): Thêm tất cả phần tử của list hiện tại vào list khác.
  • insert(): Chèn một phần tử vào index cho trước.
  • remove(): Xóa phần tử khỏi list.
  • pop(): Xóa phần tử khỏi list và trả về phần tử tại index đã cho.
  • clear(): Xóa tất cả phần tử của list.
  • index(): Trả về index của phần tử phù hợp đầu tiên.
  • count(): Trả về số lượng phần tử đã đếm được trong list như một đối số.
  • sort(): Sắp xếp các phần tử trong list theo thứ tự tăng dần.
  • reverse(): Đảo ngược thứ tự các phần tử trong list.
  • copy(): Trả về bản sao của list.

Ví dụ 1 :

QTM = [9,8,7,6,8,5,8]

# Output: 2
print(QTM.index(7))

# Output: 3
print(QTM.count(8))

QTM.sort()

# Output: [5, 6, 7, 8, 8, 8, 9]
print(QTM)

QTM.reverse()

# Output: [9, 8, 8, 8, 7, 6, 5]
print(QTM)

Ví dụ 2 :

QTM = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']

# Output: 3
print(QTM.index('n'))

# Output: 2
print(QTM.count('a'))

QTM.sort()

# Output: ['.', 'a', 'a', 'c', 'g', 'i', 'm', 'm', 'n', 'n', 'o', 'q', 'r', 't', 'u']
print(QTM)

QTM.reverse()

# Output: ['u', 't', 'r', 'q', 'o', 'n', 'n', 'm', 'm', 'i', 'g', 'c', 'a', 'a', '.']
print(QTM)

List comprehension: Cách tạo list mới ngắn gọn

List comprehension là một biểu thức đi kèm với lệnh for được đặt trong cặp dấu ngoặc vuông [ ] .
Ví dụ :

cub3 = [3 ** x for x in range(9)]

# Output: [1, 3, 9, 27, 81, 243, 729, 2187, 6561]
print(cub3)

Code trên tương tự với :

cub3 = []
for x in range (9):
cub3.append(3**x)
print(cub3)

Ngoài for, if cũng hoàn toàn có thể được sử dụng trong một list comprehension của Python. Lệnh if hoàn toàn có thể lọc các thành phần trong list hiện tại để tạo thànhKiểm tra thành phần có trong list không
Sử dụng keyword in để kiểm tra xem một thành phần đã có trong list hay chưa. Nếu thành phần đã sống sót, hiệu quả trả về là True, và ngược lại sẽ trả về False. list mới. Dưới đây là ví dụ :

cub3 = [3 ** x for x in range(9) if x > 4]

# Output: [243, 729, 2187, 6561]
print(cub3)

so_le = [x for x in range (18) if x % 2 == 1]

# Output: [1, 3, 5, 7, 9, 11, 13, 15, 17]
print(so_le)

noi_list = [x+y for x in ['Ngôn ngữ ','Lập trình '] for y in ['Python','C++']]

# Output: ['Ngôn ngữ Python', 'Ngôn ngữ C++', 'Lập trình Python', 'Lập trình C++']
print(noi_list)

Kiểm tra phần tử có trong list không

Sử dụng keyword in để kiểm tra xem một thành phần đã có trong list hay chưa. Nếu thành phần đã sống sót, hiệu quả trả về là True, và ngược lại sẽ trả về False .

QTM = ['q','u','a','n','t','r','i','m','a','n','g','.','c','o','m']

# Output: True
print('q' in QTM)

# Output: True
print('.' in QTM)

# Output: False
print('z' in QTM)

Vòng lặp for trong list

Sử dụng vòng lặp for để lặp qua các thành phần trong list như ví dụ dưới đây :

for ngon_ngu in ['Python','Java','C']:
print("Tôi thích lập trình",ngon_ngu)

Kết quả trả về sẽ như sau :

Tôi thích lập trình Python
Tôi thích lập trình Java
Tôi thích lập trình C

Các hàm Python tích hợp với list

Các hàm Python tích hợp sẵn như all ( ), any ( ), enumerate ( ), len ( ), max ( ), min ( ), list ( ), sorted ( ), … thường được sử dụng với list để triển khai những trách nhiệm khác nhau .

  • all(): Trả về giá trị True nếu tất cả các phần tử của list đều là true hoặc list rỗng.
  • any(): Trả về True khi bất kỳ phần tử nào trong list là true. Nếu list rỗng hàm trả về giá trị False.
  • enumerate(): Trả về đối tượng enumerate, chứa index và giá trị của tất cả các phần tử của list dưới dạng tuple.
  • len(): Trả về độ dài (số lượng phần tử) của list.
  • list(): Chuyển đổi một đối tượng có thể lặp (tuple, string, set, dictionary) thành list.
  • max(): Trả về phần tử lớn nhất trong list.
  • min(): Trả về phần tử nhỏ nhất trong list.
  • sorted(): Trả về list mới đã được sắp xếp.
  • sum(): Trả về tổng của tất cả các phần tử trong list.

Danh Sách (List)

IX. Tuple

Bài này tất cả chúng ta sẽ liên tục tìm hiểu và khám phá về kiểu dữ liệu thứ 4 trong ngôn từ lập trình Python, đó là kiểu Tuple .

1, Tuple Trong Python là gì?

Tuple trong Python là một kiểu dữ liệu dùng để tàng trữ các đối tượng người dùng không biến hóa về sau ( giống như hằng số ). Còn lại thì cách tàng trữ của nó cũng khá giống như kiểu dữ liệu list mà bài trước tất cả chúng ta đã được tìm hiểu và khám phá .
Để khai báo một enum thì mọi người sử dụng cú pháp sau :

(val1, val2,.., valn)

Trong đó, val1, val2, .., valn là các giá trị của tuple .
VD : Mình sẽ khai báo 1 Tuple chứa các ngày trong tuần .

day = ('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday')

Nếu bạn khai báo 1 biến chứa các giá trị mà không được bao quang bởi dấu ( ) thì Python cũng đánh giá và nhận định nó là một tuple ( nhưng mình khuyên mọi người lên sử dụng cách tiên phong cho code được tường minh ) .
VD :

day = 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'

Và nếu như bạn muốn khai báo 1 tuple trống thì bạn chỉ cần khai báo như sau :

a = ();

Còn nếu như tuple của bạn chỉ chứa duy nhất một giá trị thì bắt buộc bạn phải thêm một dấu, nữa đằng sau giá trị đó .
VD :

a = (10,)

2, Truy cập đến các phần tử trong Tuple.

Để truy vấn đến các thành phần trong Tuple thì các bạn thực thi tựa như như so với chuỗi và list .

  • Các phần tử trong Tuple được đánh dấu từ 0 theo chiều từ trái qua phải.
  • Và ngược lại từ -1 theo chiều từ phải qua trái.

VD: Mình sẽ truy cập đến các phần tử trong tuple day ở trong VD trên.

day = ('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday')
day[0] # monday

day[-2] # saturday

Và nếu như bạn muốn lấy ra một tuple con trong tuple hiện tại thì bạn hoàn toàn có thể sử dụng cú pháp sau ( giống với list và string ) :

tupleName[start:end]

Trong đó:

  • start là vị trí bắt đầu lấy. Nếu để trống start thì nó sẽ lấy từ đầu Tuple.
  • end là vị trí kết thúc. Nếu để trống end thì nó sẽ lấy đến hết Tuple.

VD:

day = ('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday')
day[1:3] # ('tuesday', 'wednesday')

day[:3] # ('monday', 'tuesday', 'wednesday')

day[1:] # ('tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday')

3, Các tác vụ khác trên Tuple.

Xóa Tuple.

Như mình đã nói ở trên thì khi một tuple đã được khai báo giá trị thì tất cả chúng ta không hề sửa đổi hay xóa các giá trị đó được mà tất cả chúng ta chỉ hoàn toàn có thể xóa cả tuple đi được thôi .
Để xóa một hay nhiều tuple thì tất cả chúng ta sử dụng hàm del .
VD : Mình sẽ xóa Tuple day .

day = ('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday')
del day

print(day) # Error: name 'day' is not defined

Thêm mới phần tử.

Thực ra đây chỉ là cách lách luật thôi, chứ một tuple đã được khai báo thì tất cả chúng ta chỉ được gọi và không được sửa đổi hay thêm mới bất kể một cái gì cả. Nhưng tất cả chúng ta hoàn toàn có thể tạo ra được một tuple mới từ các tuple đã có bằng biểu thức + hai tuple .
VD : Mình sẽ ghép 2 tuple day1 và day2 thành tuple day .

day1 = ('monday', 'tuesday', 'wednesday')
day2 = ('thursday', 'friday', 'saturday', 'sunday')

day = day1 + day2

print(day)
# ('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday')

4, Tuple lồng.

Cũng giống như list, bạn cũng hoàn toàn có thể khai báo các tuple lồng nhau .
VD :

day1 = ('monday', 'tuesday', 'wednesday')
day2 = ('thursday', 'friday', 'saturday', 'sunday', day1)

# day = day1 + day2

print(day2)
# ('thursday', 'friday', 'saturday', 'sunday', ('monday', 'tuesday', 'wednesday'))

print(day2[4][0]) # monday

Và bạn hoàn toàn có thể lồng bao nhiêu cấp cũng được. Và lồng bất kỳ một kiểu dữ liệu nào cũng ok .
Tuple

X. Set

Set trong python là gì?

Set
Set trong python là một tập các giá trị không có thứ tự. Mỗi giá trị trong set là duy nhất, không hề lặp lại và không bao giờ thay đổi ( tức bạn không hề đổi khác giá trị các thành phần trong set ) .
Tuy nhiên các set hoàn toàn có thể biến hóa. Chúng ta hoàn toàn có thể thêm, xóa các thành phần trong set .
Các set hoàn toàn có thể được sử dụng để thực thi các phép tập hợp như phép giao, hợp, …

Cách tạo một set trong python

Mỗi set được tạo bằng cách đặt các thành phần của nó vào trong dấu { }, được phân tách bằng dấu phẩy, hoặc sử dụng hàm dựng sẵn set ( ) .
Các thành phần của set hoàn toàn có thể thuộc nhiều kiểu dữ liệu khác nhau như : numbers, string, … Nhưng các thành phần không được là các kiểu dữ liệu hoàn toàn có thể biến hóa như list hay dictionary .

 
#một set kiểu numbers
set1={5,7,8,6}
print(set1)    #return {8, 5, 6, 7}
 
#một set kiểu string
set2={"hello", "hi", "xin chao"}
print(set2)    #return  {'hi', 'hello', 'xin chao'}
 
#set với kiểu dữ liệu hỗn hợp
set3 = {"hello", 5, (1,5,7)}
print(set3)    #return {(1, 5, 7), 5, 'hello'}

Lưu ý : nếu khi tạo set mà có các thành phần trùng nhau thì sẽ tự động hóa vô hiệu các thành phần lặp .

 
name = {'hieu', 'hieu'}
print(name)
#return {'hieu'}

Truy cập các phần tử trong set

Không thể truy vấn đến một thành phần trải qua vị trí của chúng, vì set không có thứ tự các thành phần. Thay vào đó, ta phải sử dụng vòng for .

 
myset = {5,7,6,4}
for item in myset:
   print(item)

hiệu quả :

 
4
5
6
7

XI. Dictionary

1, Dictionary là gì?

Kiểu dữ liệu dictionary trong Python là một kiểu dữ liệu tàng trữ các giá trị chứa key và value, nhìn một cách tổng quát thì nó giống với Json. Và so với kiểu dữ liệu này thì các giá trị bên trong nó không được sắp xếp theo một trật tự nào cả .
Để khai báo một dictionary tất cả chúng ta sử dụng cặp dấu { } theo cú pháp sau :

{key1: value1, key2: value2,..., keyN: valueN}

Trong đókey1: value1, key2: value2,..., keyN: valueN là các key và giá trị của kiểu dữ liệu dictionary. Và tên của key thì các bạn phải tuân thủ theo một số quy tắc sau:

  • Các phần tử đều phải có key.
  • Và Key chỉ có thể là số hoặc chuỗi.
  • Key phải là duy nhất, nếu không nó sẽ nhận giá trị của phần tử có key được xuất hiện cuối cùng.
  • Key khi đã được khai báo thì không thể đổi được tên.
  • Key có phân biệt hoa thường.

VD: Mình sẽ khai báo một dictionary có tên là person.

person = {
    'name': 'Vũ Thanh Tài',
    'age': 22,
    'male': True,
    'status': 'single'        
    }

2, Truy cập đến các phần tử trong dictionary.

Ở trên mình có nói là các thành phần trong dictionary được sắp xếp không theo một thứ tự nào cả, nên cũng chính vì điều đó mà tất cả chúng ta không thể nào sử dụng được cú pháp như so với string và list mà tất cả chúng ta sẽ dựa vào các key của nó để truy xuất .
- Để truy vấn đến các thành phần trong dictionary thì các bạn sử dụng cú pháp sau :

dicName[key]

Trong đó:

  • dicName là tên của của dictionary.
  • key là tên của key các bạn muốn lấy ra trong dictionary.

VD: Mình sẽ lấy ra name và status của dictionary person trên.

person = {
    'name': 'Vũ Thanh Tài',
    'age': 22,
    'male': True,
    'status': 'single'        
    }
person['name'] # Vũ Thanh Tài

person['status'] # signle

3, Thay đổi giá trị của dictionary.

Để đổi khác giá trị của thành phần trong dictionary thì ta cũng là tựa như như so với list là truy vấn đến thành phần cần truy vấn và đổi khác giá trị của nó .
VD : Mình sẽ đổi status thành married ( an ủi mình tí : D ) .

person = {
    'name': 'Vũ Thanh Tài',
    'age': 22,
    'male': True,
    'status': 'alone'        
    }

person['status'] = 'married'
print(person)
#{'name': 'Vu Thanh Tài', 'age': 22, 'male': True, 'status': 'married'}

4, Xóa phần tử trong diction.

Để xóa một thành phần trong dictionary thì tất cả chúng ta sử dụng hàm del và chọn thành phần cần xóa .
VD :

person = {
    'name': 'Vũ Thanh Tài',
    'age': 22,
    'male': True,
    'status': 'alone'        
    }

del person['status']
print(person)
#{'name': 'Vu Thanh Tài', 'age': 22, 'male': True}

Và nếu như bạn muốn xóa tổng thể các thành phần bên trong dictionary thì bạn sử dụng phương pháp clear theo cú pháp :

dictName.clear();

Trong đó, dictName là dictionary mà bạn muốn xóa hết thành phần .
VD :

person = {
    'name': 'Vũ Thanh Tài',
    'age': 22,
    'male': True,
    'status': 'alone'        
    }

person.clear()
print(person)
#{}

Và nếu như bạn muốn xóa hẳn dictionary thì bạn dùng hàm del để xóa .
VD :

person = {
    'name': 'Vũ Thanh Tài',
    'age': 22,
    'male': True,
    'status': 'alone'        
    }

del person
print(person)
#error: name 'person' is not defined

5, Dictionary lồng nhau.

Cũng giống như kiểu dữ liệu list, tuple thì trong dicrtionary các bạn cũng hoàn toàn có thể lồng bất kể kiểu dữ liệu nào bạn thích vào trong nó .
VD : Mình sẽ lồng một dictionary vào trong dictionary và đồng thời truy vấn luôn đến dictionary con .

person = {
    'name': 'Vũ Thanh Tài',
    'option': {
                'age': 22,
                'male': True,
                'status': 'alone'
            }        
    }

print(person['option']['age'])
# 22

Dictionary

XII. Ép Kiểu Dữ Liệu Trong Python

1. Ép kiểu dữ liệu ngầm trong Python

Đây là thao tác tự động hóa quy đổi một loại dữ liệu sang loại dữ liệu khác của Python, quy trình này không cần bất kể sự tham gia của lập trình viên .
Chúng ta hãy xem ví dụ dưới đây, trong đó Python quy đổi kiểu dữ liệu thấp hơn ( số nguyên ) sang kiểu dữ liệu cao hơn ( float ) để tránh mất dữ liệu .

num_int = 123
num_flo = 1.23
 
num_new = num_int + num_flo
 
print("Kiểu dữ liệu của num_int:",type(num_int))
print("Kiểu dữ liệu của num_flo:",type(num_flo))
 
print("Giá trị của num_new:",num_new)
print("Kiểu dữ liệu của num_new:",type(num_new))

Kết quả của chương trình này như sau :

Kiểu dữ liệu của num_int: 
Kiểu dữ liệu của num_flo: 
Giá trị của num_new: 124.23
Kiểu dữ liệu của num_new: 

Ép Kiểu Dữ Liệu Trong Python
Trong chương trình trên thì :

Mình đã định nghĩa hai biến num_int và num_flo, sau đó tạo một biến num_new để lưu trữ tổng của hai biến đó.
Tiếp theo sẽ dùng hàm type để kiểm tra kiểu dữ liệu của cả ba biến, thật bất ngờ vì num_new đã mang kiểu float vì đây là kiểu số lớn hơn kiểu int. Như vậy biến num_new đã được chuyển đổi ngầm.
Bây giờ, hãy thử thêm một chuỗi và một số nguyên và xem Python xử lý thế nào.

Ví dụ : Bổ sung kiểu dữ liệu chuỗi ( cao hơn ) và kiểu dữ liệu số nguyên ( thấp hơn )

num_int = 123
num_str = "456"
 
print("Kiểu dữ liệu của num_int:",type(num_int))
print("Kiểu dữ liệu của num_str:",type(num_str))
 
# Dòng này sẽ lỗi vì string và number không chuyển ngầm được
print(num_int+num_str)

Khi chạy chương trình trên, hiệu quả sẽ là :

Traceback (most recent call last):
  File "C:Usersgf63IdeaProjectsLearnPythonhelloworld.py", line 7, in 
    print(num_int+num_str)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Kiểu dữ liệu của num_int: 
Kiểu dữ liệu của num_str: 

Ép Kiểu Dữ Liệu Trong Python
Như vậy mặc định Python không hề tự động hóa quy đổi ngầm giữa string và number .

2. Ép kiểu trong Python tường minh

Trong ép kiểu tường minh thì lập trình viên sẽ quy đổi loại dữ liệu của một đối tượng người dùng thành loại dữ liệu thiết yếu theo nhu yếu của họ .
Chúng ta sử dụng các hàm được xác lập trước như int ( ), float ( ), str ( ), v.v để triển khai quy đổi loại rõ ràng .
Chuyển đổi loại này cũng được gọi là typecasting vì người dùng ép ( đổi khác ) kiểu dữ liệu của các đối tượng người dùng. Cú pháp như sau :

(required_datatype)(expression)

Ví dụ dưới đây sẽ bộc lộ việc ép kiểu từ string sang int trong Python, chương trình sẽ không báo lỗi .

num_int = 123
num_str = "456"
 
print("Kiểu dữ liệu của num_int:",type(num_int))
print("Kiểu dữ liệu của num_str trước khi ép kiểu:",type(num_str))
 
num_str = int(num_str)
print("Kiểu dữ liệu của num_str sau khi ép kiểu:",type(num_str))
 
num_sum = num_int + num_str
 
print("Tổng của num_int và num_str:",num_sum)
print("Kiểu dữ liệu của sum:",type(num_sum))

Chạy lên kế quả sẽ như sau :

Kiểu dữ liệu của num_int: 
Kiểu dữ liệu của num_str trước khi ép kiểu: 
Kiểu dữ liệu của num_str sau khi ép kiểu: 
Tổng của num_int và num_str: 579
Kiểu dữ liệu của sum: 

Trong ví dụ trên thì bạn thấy mình đã sử dụng hàm int ( ) để thực thi quy đổi, ép kiểu một cách rõ ràng .

num_str = int(num_str)

XIII. Xuống Dòng Trong Python

Hướng dẫn cách xuống dòng trong python. Bạn sẽ học được cách xuống dòng bên ngoài câu lệnh python bằng cách sử dụng ký tự xuống dòng trong python, cách xuống dòng bên trong câu lệnh python và viết câu lệnh đó trên nhiều dòng, cách in xuống dòng trong python cũng như cách in không xuống dòng trong python trong bài học kinh nghiệm này .

Xuống dòng bên ngoài câu lệnh python

Về cơ bản, một câu lệnh trong python được viết trên môt dòng và được kết thúc bằng cách sử dụng ký tự xuống dòng được tạo ra khi bạn nhấn phím ENTER .
Đây là điểm này rất độc lạ so với các ngôn từ khác như JavaScript vốn hoàn toàn có thể tùy ý xuống dòng tạo bởi phím ENTER khi viết câu lệnh .
Khi câu lệnh đã kết thúc và bạn đang ở ngoài câu lệnh, bạn hoàn toàn có thể tùy ý xuống dòng bằng cách nhấn phím ENTER khi viết code python cho dễ nhìn. Các khoảng trống này cũng sẽ được bỏ lỡ khi chương trình được giải quyết và xử lý .
Ví dụ, tất cả chúng ta hoàn toàn có thể xuống dòng bên ngoài câu lệnh python tùy ý như sau :

str1 = "Hello"

str2 =", Việt Nam"



print (str1 + str2)

Kết quả của ví dụ trên cũng giống như cách viết sau :

str1 = "Hello"
str2 =", Việt Nam"
print (str1 + str2)

Kết quả

Hello, Việt Nam

Xuống dòng bên trong câu lệnh python

+ Bạn không hề xuống dòng bên trong câu lệnh python chỉ bằng cách nhấn ENTER
Ở phần trên tất cả chúng ta đã biết, một câu lệnh trong python được viết trên môt dòng và được kết thúc bởi ký tự xuống dòng tạo ra khi bạn nhấn phím ENTER .
Do vậy, trong một câu lệnh quá dài, nếu bạn muốn xuống dòng trong câu lệnh và viết câu lệnh trên nhiều dòng cho dễ nhìn, bạn không hề đơn thuần xuống dòng chỉ bằng cách nhấn phím ENTER .
Python sẽ coi câu lệnh đó kết thúc tại vị trí ấn phím ENTER và bỏ lỡ phần còn lại của câu lệnh, khiến cho câu lệnh bị lỗi khi chạy .
Ví dụ như câu lệnh dưới đây :

num = 10 + 20 + 30 + 40 + 50 + 60 + 70 
print (num)

Giả sử bạn muốn xuống dòng ở vị trí sau ký tự 40 +, nếu bạn xuống dòng bằng cách nhấn phím ENTER thì lỗi sẽ xảy ra như sau :

num = 10 + 20 + 30 + 40 +
50 + 60 + 70 
print (num)

Lỗi SyntaxError bị trả về :

File "Main.py", line 1
    num = 10 + 20 + 30 + 40 +
                            ^
SyntaxError: invalid syntax

Do đó bạn không hề đơn thuần nhấn phím ENTER để xuống dòng giữa chừng câu lệnh trong python .
+ Sử dụng dấu backslash \ để xuống dòng bên trong câu lệnh python
Để xuống dòng bên trong câu lệnh python và viết câu lệnh trên nhiều dòng, hãy thêm dấu backslash \ vào trước vị trí muốn xuống dòng trong câu lệnh .
Cú pháp viết sẽ như sau :

abc \
xyz

Trong đó abc và xyz là các phần của câu lệnh mà bạn muốn viết xuống dòng giữa chừng .
Dấu \ tại vị trí xuống dòng sẽ báo cho python biết bạn muốn xuống dòng bên trong câu lệnh python và viết câu lệnh trên nhiều dòng, do đó python sẽ không kết thúc câu lệnh ở vị trí này mà liên tục đọc nối câu lệnh ở các dòng tiếp theo ở phía dưới .
Với ví dụ bị lỗi ở trên, tất cả chúng ta cần viết lại nó với dấu \ như sau :

num = 10 + 20 + 30 + 40 + \
50 + 60 + 70
print (num)

Hãy thử cách viết này với chính sách tương tác :
Xuống Dòng Trong Python
Hãy quan tâm tới ký tự tiền yên, đây chính là dấu \ được trình diễn trong windows. Và hãy quan tâm tới dấu ba chấm …, đó là do python sau khi giải quyết và xử lý dấu \ đã đánh giá và nhận định câu lệnh vẫn đang còn liên tục, do đó bạn hoàn toàn có thể xuống dòng viết câu lệnh ở trên .
Qua ví dụ trên, bạn hoàn toàn có thể thấy việc dùng dấu \ đã giúp tất cả chúng ta xuống dòng giữa chừng một câu lệnh quá dài để viết tiếp mà nó vẫn chạy được .

In xuống dòng trong python

Trong python, tất cả chúng ta sử dụng hàm print để in các ký tự ra màn hình hiển thị .
Có nhiều cách dùng hàm print, trong đó cú pháp hàm print cơ bản không chỉ định option như sau :

print(line)

line là dòng tác dụng bạn muốn in ra màn hình hiển thị. Bạn hoàn toàn có thể chỉ định trực tiếp giá trị của line hoặc gán nó vào một biến và in giá trị của biến đó ra .
Về mặc định sau khi kết thúc một câu lệnh sử dụng hàm print cơ bản, thì hiệu quả hiển thị ra màn hình hiển thị sẽ tự động hóa in xuống dòng trong python
Do đó bạn không cần lo ngại dòng tác dụng có được in xuống dòng trong python khi sử dụng hàm print cơ bản hay không .
Hãy cùng xem ví dụ đơn cử sau đây :

# chỉ định trực tiếp dòng kết quả muốn in ra màn hình
print("Hello")
print("Viet Nam")
print("Hello Viet Nam")

# gán biến và in ra màn hình
xinchao = "Hello"
tennuoc= "Viet Nam"
print(xinchao)
print(tennuoc)
print(xinchao + tennuoc)

Hãy thử cả hai ví dụ trên trong chính sách tương tác của python, bạn hoàn toàn có thể thấy chúng đều đưa ra tác dụng giống nhau, cũng như các hiệu quả đều tự động hóa in xuống dòng trong python :

>>> print("Hello")
Hello
>>> print("Viet Nam")
Viet Nam
>>> print("Hello Viet Nam")
Hello Viet Nam

>>> xinchao = "Hello"
>>> tennuoc= "Viet Nam"
>>> print(xinchao)
Hello
>>> print(tennuoc)
Viet Nam
>>> print(xinchao + tennuoc)
Hello Viet Nam

Xuống Dòng Trong Python

In không xuống dòng trong python

Ở phần trên tất cả chúng ta đã biết Về mặc định sau khi kết thúc một câu lệnh sử dụng hàm print cơ bản không option, thì tác dụng hiển thị ra màn hình hiển thị sẽ tự động hóa in xuống dòng trong python .
Câu hỏi đặt ra là vậy để in không xuống dòng trong python tất cả chúng ta phải làm thế nào ?
Cách làm rất đơn thuần, tất cả chúng ta cần thêm option bằng cách chỉ định thêm tham số endtrong hàm print như sau :

print(line, end='')

Bằng cách thêm tham số end = ” vào hàm print như trên, các hiệu quả sẽ được in không xuống dòng trong python như ví dụ sau :

# in không xuống dòng trong python
print("Việt Nam ", end='')
print("vô địch")

Kết quả in không xuống dòng trong python :

Việt Nam vô địch

XIV. Bài Tập Về Kiểu Dữ Liệu Trong Python

Trong bài này mình sẽ tổng hợp các bài tập Python thực hành thực tế với các kiểu dữ liệu như kiểu mảng list, tuple, set, dictionary. Đây là những bài tập ở mức cơ bản dành cho newbie .

Bài 01:

Câu hỏi :
Viết chương trình tìm toàn bộ các số chia hết cho 7 nhưng không phải bội số của 5, nằm trong đoạn 2000 và 3200 ( tính cả 2000 và 3200 ). Các số thu được sẽ được in thành chuỗi trên một dòng, cách nhau bằng dấu phẩy .
Gợi ý :
Sử dụng range ( # begin, # end )
Code mẫu :

j=[]
for i in range(2000, 3201):
    if (i%7==0) and (i%5!=0):
        j.append(str(i))
print (','.join(j))

Bài 02:

Câu hỏi :
Viết một chương trình hoàn toàn có thể tính giai thừa của một số ít cho trước. Kết quả được in thành chuỗi trên một dòng, phân tách bởi dấu phẩy. Ví dụ, số cho trước là 8 thì hiệu quả đầu ra phải là 40320 .
Gợi ý :
Trong trường hợp dữ liệu nguồn vào được phân phối, bạn hãy chọn cách để người dùng nhập số vào .
Code mẫu :

x=int(input("Nhập số cần tính giai thừa:"))
def fact(x):
    if x == 0:
        return 1
    return x * fact(x - 1)
print (fact(x))

Bài 03:

Câu hỏi :
Với số nguyên n nhất định, hãy viết chương trình để tạo ra một dictionary chứa ( i, i * i ) như thể số nguyên từ 1 đến n ( gồm có cả 1 và n ) sau đó in ra dictionary này. Ví dụ : Giả sử số n là 8 thì đầu ra sẽ là : { 1 : 1, 2 : 4, 3 : 9, 4 : 16, 5 : 25, 6 : 36, 7 : 49, 8 : 64 } .
Gợi ý :
Viết lệnh nhu yếu nhập số nguyên n .
Code mẫu :

n=int(input("Nhập vào một số:"))
d=dict()
for i in range(1,n+1):
    d[i]=i*i
    #Code by Quantrimang.com

print (d)

Bài 04:

Câu hỏi :
Viết chương trình gật đầu một chuỗi số, phân tách bằng dấu phẩy từ giao diện điều khiển và tinh chỉnh, tạo ra một list và một tuple chứa mọi số .
Ví dụ : Đầu vào được cung ứng là 34,67,55,33,12,98 thì đầu ra là :
[’34’, ’67’, ’55’, ’33’, ’12’, ’98’]
(’34’, ’67’, ’55’, ’33’, ’12’, ’98’)
[ ’ 34 ’, ’ 67 ’, ’ 55 ’, ’ 33 ’, ’ 12 ’, ’ 98 ’ ] ( ’ 34 ’, ’ 67 ’, ’ 55 ’, ’ 33 ’, ’ 12 ’, ’ 98 ’ )

Gợi ý:

Viết lệnh nhu yếu nhập vào các giá trị sau đó dùng quy tắc quy đổi kiểu dữ liệu để hoàn tất .
Code mẫu :

values=input("Nhập vào các giá trị:")
l=values.split(",")
t=tuple(l)
print (l)
print (t)

Bài Tập Về Kiểu Dữ Liệu Trong Python

Các Kiểu Dữ Liệu Trong Python – Techacademy

Bài viết liên quan
Hotline 24/7: O984.666.352
Alternate Text Gọi ngay