Series học Python từ A tới Á - 1
Talk is cheap, show me the code.
Mở đầu
Mình vẫn đang sử dụng Python là ngôn ngữ chính trong việc lập trình hàng ngày. So với những ngôn ngữ "truyền thống" như Java, C# được học tại trường đại học, Python mặc dù còn nhiều khuyết điểm về tốc độ nhưng kèm theo đó là việc học rất nhanh, các khái niệm cực kỳ dễ tiếp thu, dễ đọc, nhiều thư viện được phát triển liên tục, mình nhận thấy sử dụng Python có thể đánh đổi 1 phần nào đó về tốc độ cũng như năng suất.
Lập Python trong những dự án mình đã từng trải qua, từng biết đến có thể kể đến: lập trình ứng dụng web (với Django, Flask,...), ứng dụng API (Django, Flask, FastAPI, Falcon,...), AI/Machine Learning (Sklearn, Pandas, Numpy,...), Data Analysis/Big Data(Pandas,...), etc... Cú pháp của Python đơn giản tới mức bạn chỉ cần đọc và hiểu chúng như ngôn ngữ tự nhiên, khiến nó trở thành 1 trong những ngôn ngữ được quan tâm nhiều nhất trong những năm gần đây. Khi những hệ thống cũ với những ngôn ngữ cồng kềnh cùng cú pháp khó hiểu đang ngày càng khó bảo trì, Python có lẽ sẽ là sự thay thế tiếp theo của những hệ thống này.
Bài viết được lược dịch và bổ sung thêm từ FreeCodeCamp: Learning Python: From Zero to Hero
Variable
Variable được biết đến là biến. Bạn có thể hình dung variable là thuật ngữ để gọi tên 1 giá trị được lưu lại và sử dụng. Khi định danh và khởi tạo 1 variable, bạn đã đồng thời gán cho 1 vùng nhớ lưu giá trị của chương trình vào 1 vùng nhớ vật lý trong RAM.
Variable trong Python sẽ không bắt buộc bạn phải gán cho nó 1 kiểu dữ liệu nhất định vì Python sẽ tự làm việc đó (weak type). Trong 1 số trường hợp đặc biệt, các framwork sẽ yêu cầu bạn làm rõ kiểu dữ liệu để tránh việc 1 biến có kiểu dữ liệu mơ hồ.
Cách khai báo 1 variable:
<ten_bien> = <gia_tri_cua_bien>
# Ví dụ:
a = 3
b = set()
c = 'Talk is cheap, show me the code'
Để kiểm tra kiểu dữ liệu của variable chúng ta sử dụng hàm build-in type()
>>> type(a)
<class 'int'>
>>> type(b)
<class 'set'>
>>> type(c)
<class 'str'>
Conditional Statements
Cấu trúc điều kiện trong Python được sử dụng để kiểm tra một điều kiện nào đó và thực hiện một hành động nào đó nếu điều kiện đó đúng, hoặc thực hiện hành động khác nếu điều kiện đó sai. Cấu trúc if-else được sử dụng để xử lý các điều kiện đơn giản, trong khi đó cấu trúc if-elif-else được sử dụng để xử lý các điều kiện phức tạp hơn. Các điều kiện được đánh giá bằng các toán tử so sánh như ==, !=, >, <, >= và <=. Cấu trúc điều kiện trong Python rất quan trọng và thường được sử dụng trong các chương trình máy tính để đưa ra các quyết định dựa trên các điều kiện khác nhau.
.Có ba loại cấu trúc điều kiện trong Python: if, if...else và if...elif...else. Các cấu trúc này có cùng cú pháp như sau:
if condition1:
# DO SOMETHING 1
pass
elif condition2:
# DO SOMETHING 2
pass
else:
# DO SOMETHING 3
pass
Các biểu thức logic có thể kết hợp với các toán tử and, or và not để tạo ra các điều kiện phức tạp hơn.
Looping
Cấu trúc vòng lặp trong Python được sử dụng để thực hiện một tập hợp các hành động nhiều lần cho đến khi một điều kiện được đáp ứng. Vòng lặp for được sử dụng để lặp qua các phần tử trong một danh sách hoặc chuỗi, trong khi đó vòng lặp while được sử dụng để lặp lại một khối mã cho đến khi một điều kiện được đáp ứng. Vòng lặp trong Python là công cụ quan trọng để xử lý các tác vụ lặp lại và giúp tối ưu hóa quá trình lập trình.
Vòng lặp for trong Python được sử dụng để lặp qua các phần tử trong một danh sách hoặc chuỗi. Ví dụ:
fruits = ['apple', 'banana', 'grape']
for fruit in fruits:
print(fruit)
#output:
#apple
#banana
#grape
Vòng lặp while trong Python được sử dụng để lặp lại một khối mã cho đến khi một điều kiện được đáp ứng. Ví dụ:
i = 1
while i < 3:
print(i)
i += 1
#output:
#1
#2
#3
Cấu trúc for dùng để duyệt qua các phần tử của một đối tượng có thể lặp như danh sách, chuỗi hoặc khoảng. Cấu trúc while dùng để lặp lại khi điều kiện là True. Có thể sử dụng các từ khóa break, continue và else để kiểm soát luồng của vòng lặp.
Lists: Collection | Array
List trong Python là một trong những kiểu dữ liệu chuỗi (sequence) cơ bản và phổ biến nhất. List được dùng để lưu trữ một tập hợp các giá trị mà có thể thay đổi được (mutable), và các giá trị này có thể thuộc bất kỳ kiểu dữ liệu nào, từ số nguyên, số thực, chuỗi ký tự, đến đối tượng, và thậm chí là một list khác. Các giá trị trong list được phân cách nhau bằng dấu phẩy và được bao quanh bởi dấu ngoặc vuông. Ví dụ:
numbers = [1, 2, 3, 4, 5]
letters = ["a", "b", "c", "d", "e"]
List có thể chứa các giá trị của bất kỳ kiểu dữ liệu nào, bao gồm số nguyên, số thực, chuỗi, đối tượng,...
Mỗi giá trị trong list có một chỉ mục, bắt đầu từ 0. Ví dụ, trong list numbers
, chỉ mục của số 1 là 0, chỉ mục của số 2 là 1, v.v. Chúng ta có thể truy cập các giá trị trong list bằng chỉ mục. Ví dụ:
print(numbers[0])
# Output: 1
print(letters[2])
# Output: c
Chúng ta cũng có thể thêm, xóa, thay đổi các giá trị trong list. Ví dụ:
# Thêm số 6 vào cuối list numbers
numbers.append(6)
# Xóa số 2 khỏi list numbers
numbers.remove(2)
# Thay thế số 3 trong list numbers bằng số 7
numbers[2] = 7
List là một cấu trúc dữ liệu quan trọng trong Python. Nó được sử dụng rộng rãi trong nhiều ứng dụng khác nhau, chẳng hạn như xử lý dữ liệu, lập trình game,...
Dictionary Key-Value Collection
Dictionary trong Python là một kiểu dữ liệu không tuần tự (unordered) dùng để lưu trữ dữ liệu dưới dạng cặp "khoá - giá trị" (key - value), trong đó mỗi khoá duy nhất tương ứng với một giá trị. Dictionary được sử dụng rộng rãi khi cần lưu trữ dữ liệu theo cặp, ví dụ như thông tin cá nhân của một người (khoá là "tên", giá trị là "John Doe"; khoá là "tuổi", giá trị là 30, v.v.).
Dictionary được khởi tạo với dấu ngoặc nhọn {}, trong đó mỗi cặp key-value được phân cách nhau bằng dấu hai chấm. Ví dụ:
dictionary = {
"key1": "value1",
"key2": "value2",
"key3": "value3",
}
Chúng ta có thể truy cập value trong dictionary bằng key. Ví dụ:
print(dictionary["key1"])
# Output: value1
Chúng ta cũng có thể thêm, xóa, thay đổi các cặp key-value trong dictionary. Ví dụ:
# Thêm cặp key-value mới vào dictionary
dictionary["key4"] = "value4"
# Xóa cặp key-value "key2" khỏi dictionary
del dictionary["key2"]
# Thay thế value của cặp key-value "key1"
dictionary["key1"] = "new_value"
Dictionary là một cấu trúc dữ liệu quan trọng trong Python. Nó được sử dụng rộng rãi trong nhiều ứng dụng khác nhau, chẳng hạn như xử lý dữ liệu, lập trình web,...
Dưới đây là một số ví dụ về cách sử dụng dictionary trong Python:
- Lưu trữ dữ liệu cấu hình
- Lưu trữ dữ liệu người dùng
- Lưu trữ dữ liệu thống kê
- Lưu trữ dữ liệu kết nối
- ...
Hy vọng bài viết này đã giúp bạn hiểu rõ hơn về khái niệm dictionary trong Python.
Iterating through these data structures
Trong Python, việc duyệt qua các cấu trúc dữ liệu như list và dictionary là một thao tác quen thuộc và hữu ích. Dưới đây là cách để thực hiện điều này cho mỗi loại cấu trúc dữ liệu:
Duyệt qua List
Một cách phổ biến để duyệt qua các phần tử trong list là sử dụng vòng lặp for
:
my_list = [1, 2, 3, 4, 5]
for item in my_list:
print(item)
Ngoài ra, bạn cũng có thể sử dụng hàm enumerate()
để cả index và giá trị của các phần tử:
for index, item in enumerate(my_list):
print(f"Index {index} has value {item}")
Duyệt qua Dictionary
Để duyệt qua các cặp khoá - giá trị trong dictionary, bạn có thể sử dụng phương thức items()
:
my_dict = {'name': 'John', 'age': 30, 'email': '[email protected]'}
for key, value in my_dict.items():
print(f"Key: {key}, Value: {value}")
Nếu bạn chỉ muốn duyệt qua khoá, sử dụng phương thức keys()
, và nếu chỉ muốn duyệt qua giá trị, sử dụng phương thức values()
:
# Duyệt qua khoá
for key in my_dict.keys():
print(key)
# Duyệt qua giá trị
for value in my_dict.values():
print(value)
Với cả list và dictionary, Python cung cấp một cách tự nhiên và dễ đọc để duyệt qua các cấu trúc dữ liệu này. Điều này giúp việc xử lý và tổ chức thông tin trở nên dễ dàng và linh hoạt.