Python Variables
Biến là gì?
Trong Python, biến là một tên được đặt cho một vùng nhớ trong máy tính để lưu trữ dữ liệu. Khi bạn gán một giá trị cho một biến, giá trị đó sẽ được lưu trữ tại vùng nhớ đó và bạn có thể truy cập, thay đổi giá trị đó bằng cách sử dụng tên biến.
Cách đặt tên biến trong Python
- Bắt đầu bằng chữ cái hoặc dấu gạch dưới (_): Ví dụ:
ten_bien
,_gia_tri
. - Không được bắt đầu bằng số: Ví dụ:
123ten
là sai. - Phân biệt chữ hoa và chữ thường:
ten_bien
khác vớiTen_Bien
. - Không chứa các ký tự đặc biệt: Ngoại trừ dấu gạch dưới (_).
- Nên đặt tên có ý nghĩa: Giúp bạn và người khác dễ hiểu vai trò của biến đó trong chương trình.
Kiểu dữ liệu của biến
Python là ngôn ngữ lập trình động, tức là bạn không cần khai báo kiểu dữ liệu của biến trước khi sử dụng. Kiểu dữ liệu sẽ được xác định tự động dựa vào giá trị gán cho biến.
- Kiểu số:
int
(số nguyên),float
(số thực),complex
(số phức). - Kiểu chuỗi:
str
(dãy các ký tự). - Kiểu Boolean:
bool
(True hoặc False). - Kiểu danh sách:
list
(một tập hợp các phần tử có thứ tự, có thể thay đổi). - Kiểu tuple:
tuple
(một tập hợp các phần tử có thứ tự, không thể thay đổi). - Kiểu tập hợp:
set
(một tập hợp các phần tử không có thứ tự, không trùng lặp). - Kiểu từ điển:
dict
(một tập hợp các cặp khóa-giá trị).
Các phép toán với biến
- Phép gán:
=
- Phép so sánh:
==
,!=
,<
,>
,<=
,>=
- Phép toán số học:
+
,-
,*
,/
,//
,%
,**
- Phép toán logic:
and
,or
,not
Phạm vi của biến
- Biến toàn cục: Khai báo bên ngoài tất cả các hàm, có thể truy cập từ mọi nơi trong chương trình.
- Biến cục bộ: Khai báo bên trong một hàm, chỉ có thể truy cập bên trong hàm đó.
Một số lưu ý khi sử dụng biến
- Tên biến nên ngắn gọn và dễ hiểu.
- Không nên sử dụng tên biến trùng với từ khóa của Python.
- Nên sử dụng các quy tắc đặt tên biến để tạo ra mã code dễ đọc và bảo trì.
Tổng kết:
Biến là một khái niệm cơ bản và quan trọng trong lập trình Python. Hiểu rõ về biến sẽ giúp bạn viết được các chương trình Python hiệu quả và dễ đọc.
Khai báo số phức trong Python
Số phức trong Python được biểu diễn bằng một phần thực và một phần ảo. Phần ảo được đánh dấu bằng chữ j
.
Cách khai báo:
# Khai báo số phức
z = 2 + 3j
Trong ví dụ trên:
2
là phần thực.3j
là phần ảo.
Ví dụ khác:
# Các cách khai báo khác
z1 = complex(2, 3) # Sử dụng hàm complex()
z2 = complex(5) # Phần ảo mặc định là 0
z3 = 3j # Phần thực mặc định là 0
Truy cập phần thực và phần ảo:
# Truy cập phần thực
print(z.real) # In ra: 2.0
# Truy cập phần ảo
print(z.imag) # In ra: 3.0
Các phép toán với số phức:
Python hỗ trợ đầy đủ các phép toán số học với số phức:
- Cộng, trừ, nhân, chia:
Python
z1 = 2 + 3j z2 = 1 - 2j tong = z1 + z2 hieu = z1 - z2 tich = z1 * z2 thuong = z1 / z2
- Lấy phần liên hợp:
Python
lien_hop = z1.conjugate() # Kết quả: 2-3j
- Tính module:
Python
module = abs(z1) # Tính độ dài của vector biểu diễn số phức
Một số hàm hữu ích khác:
complex(real, imag)
: Tạo một số phức từ phần thực và phần ảo.z.real
: Trả về phần thực của số phức.z.imag
: Trả về phần ảo của số phức.z.conjugate()
: Trả về số phức liên hợp.abs(z)
: Trả về module của số phức.
Ví dụ:
import cmath
z = 2 + 3j
# Tính căn bậc hai của số phức
can_bac_hai = cmath.sqrt(z)
print(can_bac_hai)
# Tính sin của số phức
sin_z = cmath.sin(z)
print(sin_z)
Lưu ý:
- Để thực hiện các phép toán phức tạp hơn liên quan đến số phức, bạn có thể sử dụng module
cmath
của Python. - Số phức được sử dụng rộng rãi trong các lĩnh vực như điện tử, toán học, vật lý, xử lý tín hiệu,...
Khai báo kiểu dữ liệu danh sách trong Python
Danh sách (list) trong Python là một cấu trúc dữ liệu có thứ tự, có thể chứa các phần tử thuộc nhiều kiểu dữ liệu khác nhau (số, chuỗi, boolean, thậm chí cả các danh sách khác).
Cách khai báo danh sách:
- Sử dụng dấu ngoặc vuông []:
Python
danh_sach_rong = [] # Tạo một danh sách rỗng danh_sach_so = [1, 2, 3, 4, 5] danh_sach_chuoi = ["apple", "banana", "cherry"] danh_sach_hon_hop = [1, "hello", True, [1, 2, 3]]
Truy cập phần tử trong danh sách:
- Sử dụng chỉ số: Chỉ số bắt đầu từ 0.
Python
print(danh_sach_so[0]) # In ra phần tử đầu tiên: 1 print(danh_sach_chuoi[2]) # In ra phần tử thứ 3: cherry
- Slicing: Lấy ra một phần của danh sách.
Python
print(danh_sach_so[1:4]) # In ra các phần tử từ chỉ số 1 đến 3 (không bao gồm 4): [2, 3, 4]
Thay đổi phần tử trong danh sách:
danh_sach_so[2] = 10 # Thay đổi phần tử ở vị trí 2 thành 10
Các phép toán cơ bản với danh sách:
- Thêm phần tử:
append()
: Thêm phần tử vào cuối danh sách.insert()
: Thêm phần tử vào vị trí chỉ định.
- Xóa phần tử:
remove()
: Xóa phần tử theo giá trị.pop()
: Xóa phần tử ở vị trí chỉ định và trả về giá trị đó.
- Kiểm tra độ dài:
len()
- Kiểm tra xem phần tử có trong danh sách hay không:
in
- Kết hợp danh sách:
+
- Nhân danh sách:
*
(lặp lại các phần tử)
Ví dụ:
fruits = ["apple", "banana", "cherry"]
fruits.append("orange") # Thêm "orange" vào cuối danh sách
fruits.insert(1, "grape") # Thêm "grape" vào vị trí 1
fruits.remove("banana") # Xóa "banana"
print(len(fruits)) # In ra độ dài của danh sách
print("apple" in fruits) # Kiểm tra xem "apple" có trong danh sách hay không
Các phương thức khác của danh sách:
sort()
: Sắp xếp danh sách.reverse()
: Đảo ngược thứ tự các phần tử.count()
: Đếm số lần xuất hiện của một phần tử.index()
: Trả về chỉ số của phần tử đầu tiên tìm thấy.- ...
Lưu ý:
- Danh sách là đối tượng có thể thay đổi (mutable), nghĩa là bạn có thể thêm, xóa hoặc thay đổi các phần tử sau khi tạo danh sách.
- Danh sách có thể chứa các kiểu dữ liệu khác nhau, nhưng việc sử dụng các danh sách đồng nhất về kiểu dữ liệu thường giúp cho code dễ đọc và bảo trì hơn.
Ví dụ về danh sách chứa các danh sách:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # Ma trận 3x3
Tổng hợp các phương thức chuỗi trong Python:
Python cung cấp một loạt các phương thức để thao tác với chuỗi, giúp bạn thực hiện nhiều tác vụ khác nhau như:
-
Chuyển đổi chữ cái:
upper()
: Chuyển đổi tất cả chữ cái thành chữ in hoa.lower()
: Chuyển đổi tất cả chữ cái thành chữ thường.capitalize()
: Viết hoa chữ cái đầu tiên của chuỗi.title()
: Viết hoa chữ cái đầu tiên của mỗi từ trong chuỗi.swapcase()
: Đổi chữ hoa thành chữ thường và ngược lại.
-
Kiểm tra chuỗi:
isalpha()
: Kiểm tra xem tất cả ký tự trong chuỗi có phải là chữ cái hay không.isdigit()
: Kiểm tra xem tất cả ký tự trong chuỗi có phải là số hay không.isalnum()
: Kiểm tra xem tất cả ký tự trong chuỗi có phải là chữ cái hoặc số hay không.isspace()
: Kiểm tra xem tất cả ký tự trong chuỗi có phải là khoảng trắng hay không.startswith(sub)
: Kiểm tra xem chuỗi có bắt đầu bằng chuỗi consub
hay không.endswith(sub)
: Kiểm tra xem chuỗi có kết thúc bằng chuỗi consub
hay không.
-
Tìm kiếm và thay thế:
find(sub)
: Tìm vị trí đầu tiên của chuỗi consub
trong chuỗi.rfind(sub)
: Tìm vị trí cuối cùng của chuỗi consub
trong chuỗi.index(sub)
: Tương tựfind()
nhưng báo lỗi nếu không tìm thấy.rindex(sub)
: Tương tựrfind()
nhưng báo lỗi nếu không tìm thấy.count(sub)
: Đếm số lần xuất hiện của chuỗi consub
trong chuỗi.replace(old, new)
: Thay thế tất cả các lần xuất hiện của chuỗiold
bằng chuỗinew
.
-
Cắt và nối chuỗi:
split(sep)
: Chia chuỗi thành một danh sách các chuỗi con dựa trên dấu phân cáchsep
.join(list)
: Nối các phần tử trong danh sáchlist
thành một chuỗi, sử dụng chuỗi hiện tại làm dấu phân cách.strip()
: Loại bỏ khoảng trắng ở đầu và cuối chuỗi.lstrip()
: Loại bỏ khoảng trắng ở đầu chuỗi.rstrip()
: Loại bỏ khoảng trắng ở cuối chuỗi.
-
Định dạng chuỗi:
format()
: Định dạng chuỗi bằng cách thay thế các placeholder bằng giá trị.
Kiểu dữ liệu từ điển trong Python (Dictionary)
Từ điển trong Python là một cấu trúc dữ liệu không có thứ tự, lưu trữ các cặp khóa-giá trị. Mỗi khóa (key) là duy nhất và được sử dụng để truy cập đến giá trị tương ứng. Từ điển rất hữu ích khi bạn cần lưu trữ và truy xuất dữ liệu theo cặp.
Cách khai báo một từ điển
# Cách 1: Sử dụng dấu ngoặc nhọn
my_dict = {'name': 'Nguyen Van A', 'age': 30, 'city': 'Ha Noi'}
# Cách 2: Sử dụng hàm dict()
my_dict = dict(name='Nguyen Van A', age=30, city='Ha Noi')
Truy cập giá trị trong từ điển
# Truy cập giá trị theo khóa
print(my_dict['name']) # Output: Nguyen Van A
Thêm hoặc cập nhật giá trị
my_dict['email'] = 'anv@example.com' # Thêm một cặp khóa-giá trị mới
my_dict['age'] = 31 # Cập nhật giá trị của một khóa
Xóa một cặp khóa-giá trị
del my_dict['city']
Kiểm tra một khóa có tồn tại trong từ điển hay không
if 'age' in my_dict:
print("Có khóa 'age' trong từ điển")
Duyệt qua tất cả các cặp khóa-giá trị
for key, value in my_dict.items():
print(f"Key: {key}, Value: {value}")
Ví dụ minh họa
# Tạo một từ điển lưu trữ thông tin sinh viên
student = {'name': 'Alice', 'age': 20, 'courses': ['Math', 'Physics', 'Chemistry']}
# Truy cập thông tin sinh viên
print(student['name']) # In ra: Alice
print(student['courses'][1]) # In ra môn học thứ hai: Physics
# Thêm một môn học mới
student['courses'].append('Biology')
# In ra tất cả thông tin sinh viên
for key, value in student.items():
print(f"{key}: {value}")
Trong hình:
- Mỗi ô vuông đại diện cho một cặp khóa-giá trị.
- Khóa (key) phải là duy nhất và không thể thay đổi.
- Giá trị (value) có thể là bất kỳ kiểu dữ liệu nào trong Python, kể cả một danh sách hoặc một từ điển khác.
Ứng dụng của từ điển
- Lưu trữ dữ liệu có cấu trúc: Từ điển rất phù hợp để lưu trữ dữ liệu có cấu trúc, ví dụ như thông tin về người dùng, sản phẩm, cấu hình hệ thống.
- Thay thế các cấu trúc dữ liệu khác: Trong một số trường hợp, từ điển có thể thay thế các cấu trúc dữ liệu khác như danh sách hoặc tuple.
- Làm việc với JSON: JSON (JavaScript Object Notation) là một định dạng dữ liệu phổ biến được sử dụng để truyền dữ liệu giữa các ứng dụng. Từ điển trong Python được sử dụng để biểu diễn dữ liệu JSON.
Các phương thức thường dùng với từ điển:
keys()
: Trả về một danh sách các khóa.values()
: Trả về một danh sách các giá trị.items()
: Trả về một danh sách các cặp khóa-giá trị.get(key, default)
: Trả về giá trị của một khóa, nếu khóa không tồn tại thì trả về giá trị mặc định.pop(key)
: Xóa một cặp khóa-giá trị và trả về giá trị của khóa đó.
Tóm lại, từ điển là một công cụ mạnh mẽ và linh hoạt trong Python. Hiểu rõ về cách sử dụng từ điển sẽ giúp bạn viết các chương trình Python hiệu quả hơn.