Skip to content

Basic python for ai

Published: at 12:18 PMSuggest Changes

Table of contents

Open Table of contents

1. Giới thiệu

Trong Python, vòng lặp (loop) là một cấu trúc điều khiển cho phép thực hiện lặp đi lặp lại một khối lệnh cho đến khi một điều kiện nào đó không còn đúng. Có hai loại vòng lặp chính trong Python: forwhile.

Dưới đây là 1 ví dụ nếu không xài vòng lặp:

# in ra các số từ 1 đến 5
print(1)
print(2)
print(3)
print(4)
print(5)

Đoạn code trên vô cùng rườm rà so với khi có xài vòng lặp:

# Vòng lặp for: in ra các số từ 1 đến 5
for i in range(1, 6):
    print(i)

# Vòng lặp while: đếm từ 1 đến 5
count = 1
while count <= 5:
    print(count)
    count += 1

2. Các mục chính

2.1. Các lỗi phổ biến

Khi chúng ta lập trình:

2.1.1. NameError

NameError xảy ra khi chương trình cố gắng sử dụng một tên (biến, hàm, lớp…) chưa được khai báo trong phạm vi hiện tại. Đây là một lỗi phổ biến khi lập trình. image image

2.1.2. SyntaxError

SyntaxError là một loại lỗi xảy ra khi trình thông dịch gặp phải mã nguồn không tuân theo cú pháp hợp lệ. Điều này có nghĩa là bạn đã viết mã theo cách mà Python không hiểu được. image image

2.1.3. ZeroDivisionError

ZeroDivisionError là một loại ngoại lệ (exception) xảy ra khi chương trình cố gắng chia một số cho 0, điều này là không hợp lệ trong toán học. image

2.1.4. TypeError

TypeError là một loại lỗi (exception) xảy ra khi bạn thực hiện một thao tác không hợp lệ giữa các kiểu dữ liệu không tương thích. Điều này thường gặp khi bạn cố gắng thực hiện các phép toán hoặc gọi hàm mà kiểu dữ liệu của đối tượng không phù hợp với yêu cầu của thao tác đó. image image

2.1.5. IndentationError

IndentationError là một lỗi xảy ra khi đoạn mã không tuân thủ đúng quy tắc thụt lề vì Python sử dụng khoảng trắng hoặc tab để xác định khối lệnh. image

2.1.6. ModuleNotFoundError

ModuleNotFoundError xảy ra khi trình thông dịch không thể tìm thấy một module mà bạn đang cố gắng import trong chương trình image

2.1.7. IndexError

IndexError xuất hiện khi bạn cố gắng truy cập vào một chỉ số vượt quá phạm vi hợp lệ của cấu trúc dữ liệu. image image

2.1.8. KeyError

KeyError xảy ra khi bạn cố gắng truy cập một khóa (key) không tồn tại trong một đối tượng có kiểu dữ liệu dictionary. image image

2.1.9. ValueError

Lỗi ValueError xuất hiện khi một hàm hoặc toán tử nhận đối số có kiểu dữ liệu đúng, nhưng giá trị của đối số không nằm trong phạm vi được chấp nhận. image

3. For Loops

vòng lặp for là một cấu trúc điều khiển cho phép lặp qua các phần tử của danh sách, chuỗi, tuple, hoặc bất kỳ tập hợp nào khác. Cú pháp cơ bản như sau:

for biến in iterable:
    khối_lệnh

Ở mỗi vòng lặp, biến sẽ lấy lần lượt từng giá trị từ iterable, và thực thi khối_lệnh với giá trị hiện tại đó.

3.1. Vòng lặp for trong comprehension

Comprehension bao gồm các kiểu dữ liệu như list, dictionary, set

3.1.1. List comprehension

List comprehension tạo ra danh sách mới từ một dãy dữ liệu có sẵn (như list, tuple, range, v.v.) một cách ngắn gọn, dễ đọc và hiệu quả hơn so với cách dùng vòng lặp for thông thường.

[expression for item in iterable if condition]

Ví dụ cơ bản: Bình phương các số

squares = [x**2 for x in range(5)]
print(squares)  # [0, 1, 4, 9, 16]

Giải thích:

Thêm điều kiện lọc

even_squares = [x**2 for x in range(10) if x % 2 == 0]
print(even_squares)  # [0, 4, 16, 36, 64]

Giải thích: Chỉ tính bình phương với các số chẵn (if x % 2 == 0).

3.1.2. Dictionary comprehension

Dictionary comprehension cho phép ta tạo ra một từ điển mới bằng cách áp dụng một biểu thức chomỗi phần tử trong một iterable.

{ key_expression : value_expression for item in iterable if condition }

Trong đó:

3.1.3. Vòng lặp for với continue

Lệnh continue được dùng khi muốn bỏ qua phần còn lại của mã lệnh trong lần lặp hiện tại và chuyển ngay đến lần lặp tiếp theo. Lưu ý là lệnh sẽ không thoát hoàn toàn khỏi vòng lặp mà chỉ bỏ qua các câu lệnh phía sau nó trong lần lặp đó. \

Cú pháp:

for biến in phạm_vi:
    if điều_kiện:
        continue
    # Các câu lệnh khác


Ví dụ minh họa:

for i in range(1, 6):
    if i == 3:
        continue
    print(i)

Kết quả:

1
2
4
5

Giải thích:

3.1.4. Vòng lặp for với break

Lệnh break được sử dụng để thoát ngay lập tức khỏi một vòng lặp (trong trường hợp này là vòng lặp for) trước khi vòng lặp hoàn thành toàn bộ các lần lặp của nó. Khi lệnh break được thực thi, chương trình sẽ ngay lập tức chuyển điều khiển ra khỏi vòng lặp và tiếp tục thực hiện các câu lệnh tiếp theo sau vòng lặp. Dưới đây là giải thích chi tiết về lệnh break trong vòng lặp for:

Cú pháp

for (khởi_tạo; điều_kiện; bước_nhảy) {
    // Khối mã
    if (điều_kiện_break) {
        break;
    }
    // Các câu lệnh khác
}

Ví dụ minh họa:

for i in range(1, 10):
    if i == 5:
        break
    print(i)

Kết quả:

1
2
3
4

Giải thích:

3.1.5. Vòng lặp for lồng

vòng lặp for lồng (nested for loop) là một cấu trúc trong đó một vòng lặp for được đặt bên trong một vòng lặp for khác. Điều này cho phép thực hiện các tác vụ lặp lại trên nhiều cấp độ, thường được sử dụng để xử lý các cấu trúc dữ liệu đa chiều (như danh sách lồng nhau) hoặc để thực hiện các phép tính phức tạp

Cú pháp cơ bản

for biến_1 in tập_hợp_1:
    # Khối lệnh của vòng lặp ngoài
    for biến_2 in tập_hợp_2:
        # Khối lệnh của vòng lặp trong

Cách hoạt động

Ví dụ minh họa:

for i in range(3):  # Vòng lặp ngoài
    for j in range(2):  # Vòng lặp trong
        print(f"i = {i}, j = {j}")

Kết quả đầu ra:

i = 0, j = 0
i = 0, j = 1
i = 1, j = 0
i = 1, j = 1
i = 2, j = 0
i = 2, j = 1

Giải thích:

4. While loops

vòng lặp while đơn giản là sẽ kiểm tra điều kiện lặp có đúng hay không, nếu đúng sẽ thực hiện lặp lại một khối lệnh liên tục cho đến khi điều kiện không còn đúng nữa

Cú pháp cơ bản:

while điều_kiện: 
	# Khối mã lệnh được thực thi nếu điều_kiện là True`

Ví dụ minh họa: In các số từ 1 đến 5

i = 1
while i <= 5:
    print(i)
    i += 1

Kết quả:

1
2
3
4
5

Giải thích:

4.1. Vòng lặp vô hạn

Như đã đề cập trên, vòng lặp chỉ dừng khi điều kiện lặp không còn đúng nữa. Dẫn tới tình trạng là nếu điều kiện vẫn giữ nguyên đúng, thì các khối lệnh sẽ được thực thi mãi mãi

while True :
	print ( " This loop will run forever and kill your pc! " )

Trong ví dụ trên, điều kiện của vòng lặp while được đặt là True, có nghĩa là vòng lặp sẽ chạy mãi mãi vì điều kiện luôn đúng. Bên trong vòng lặp, câu lệnh print(“This loop will run forever!”) được thực thi lặp đi lặp lại. Để thoát khỏi vòng lặp, chúng ta cần phải dừng chương trình bằng cách kết thúc quá trình thực thi của nó. Trong hầu hết các môi trường phát triển, chúng ta có thể làm điều này bằng cách nhấn Ctrl + C nếu chúng ta chạy chương trình bằng dòng lệnh hoặc nhấn nút stop trên công cụ lập trình.

4.2. Lệnh break trong while

Giống như lệnh break ở trong vòng lặp for, khi thực thi sẽ chấm dứt hoàn toàn vòng lặp.

4.3. Lệnh continue trong while

Giống như lệnh continue ở trong vòng lặp for, khi thực thi sẽ bỏ qua phần còn lại của khối lệnh trong lần lặp hiện tại và chuyển ngay đến lần lặp tiếp theo.

4.4. Sử dụng while với list

Kết hợp vòng lặp while với list nhằm mục đích xử lý các phần tử trong danh sách một cách linh hoạt, đặc biệt trong các tình huống cần kiểm soát điều kiện lặp phức tạp hoặc khi danh sách thay đổi động trong quá trình xử lý.

Duyệt list theo chỉ số là cách phổ biến khi cần kiểm soát thứ tự truy cập hoặc thực hiện các thao tác phức tạp.

Ví dụ:

fruits = ["apple", "banana", "orange"]
index = 0
while index < len(fruits):
    print(f"Fruit at index {index}: {fruits[index]}")
    index += 1

Kết quả:

Fruit at index 0: apple
Fruit at index 1: banana
Fruit at index 2: orange

∞. Câu hỏi


Previous Post
pretrain-bert-model-for-text-classifcation
Next Post
Homo-mex 2024 Paper 1