Python – ngôn ngữ lập trình mạnh mẽ, linh hoạt và phổ biến trên toàn thế giới. Với cú pháp đơn giản và dễ đọc, Python đã trở thành một trong những công cụ yêu thích của các lập trình viên, từ người mới bắt đầu đến những chuyên gia hàng đầu. Trong bài viết này, chúng ta sẽ tìm hiểu về Python là gì và 10 bài tập Python online nâng cao, từ những đặc điểm cơ bản đến những bài tập nâng cao để giúp bạn nắm vững kiến thức và kỹ năng của mình.
Python là gì?
Python là một ngôn ngữ lập trình thông dịch, có cú pháp đơn giản và dễ hiểu. Được tạo ra vào những năm 1990 bởi Guido van Rossum, Python nhanh chóng trở thành một trong những ngôn ngữ phổ biến nhất trên thế giới. Với triết lý thiết kế tập trung vào tính đơn giản và đọc được, Python thường được sử dụng trong nhiều lĩnh vực khác nhau như phát triển web, khoa học dữ liệu, trí tuệ nhân tạo và nhiều ứng dụng khác.
Không chỉ được ưa chuộng vì tính dễ học và dễ sử dụng của nó, Python còn mạnh mẽ trong việc xử lý một loạt các nhiệm vụ lập trình. Từ phát triển ứng dụng web và phân tích dữ liệu đến trí tuệ nhân tạo và máy học, Python cung cấp các công cụ và thư viện phong phú để giải quyết mọi vấn đề lập trình.
Ngoài ra, cộng đồng Python rất lớn mạnh và nhiệt tình. Từ những diễn đàn trực tuyến đến các sự kiện hội thảo và khoá học trực tuyến, lập trình viên Python có nhiều cơ hội để học hỏi và chia sẻ kiến thức với nhau, giúp nâng cao kỹ năng và phát triển trong lĩnh vực này.
Một số ứng dụng nổi bật của Python
Python được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau do tính linh hoạt và đa dạng của nó. Dưới đây là một số lĩnh vực chính mà Python được áp dụng:
Phát triển web
Python là lựa chọn hàng đầu cho phát triển web back-end với các framework nổi tiếng như Django và Flask.
- Django là framework web full-stack mạnh mẽ, được sử dụng để xây dựng các ứng dụng web phức tạp như Instagram, Disqus, Mozilla.
- Flask là framework web nhẹ và linh hoạt, được sử dụng để xây dựng các ứng dụng web đơn giản và nhanh chóng.
Khoa học dữ liệu
Python cung cấp nhiều thư viện mạnh mẽ cho phân tích dữ liệu, học máy và trí tuệ nhân tạo như NumPy, Pandas, scikit-learn, TensorFlow, v.v.
- NumPy là thư viện cho các phép toán khoa học và xử lý mảng hiệu quả.
- Pandas là thư viện cho các thao tác xử lý dữ liệu bảng và phân tích dữ liệu.
- scikit-learn là thư viện cho các thuật toán học máy như phân loại, hồi quy, cụm dữ liệu, v.v.
- TensorFlow là thư viện cho các ứng dụng học máy sâu.
Lập trình ứng dụng
Python có thể được sử dụng để phát triển nhiều loại ứng dụng khác nhau, từ ứng dụng desktop đến ứng dụng di động và game.
- Thư viện Kivy cho phép phát triển ứng dụng di động đa nền tảng bằng Python.
- Thư viện Pygame cho phép phát triển game 2D và 3D bằng Python.
Tự động hóa
Python thường được sử dụng để tự động hóa các tác vụ lặp đi lặp lại, giúp tiết kiệm thời gian và công sức.
- Thư viện Selenium cho phép tự động hóa trình duyệt web bằng Python.
- Thư viện Robocraft cho phép tự động hóa các tác vụ trên máy tính bằng Python.
10 bài tập Python online nâng cao có code mẫu
chứa 10 bài tập lập trình nâng cao bằng ngôn ngữ Python, kèm theo mã nguồn để giúp bạn có thể xây dựng ứng dụng demo.
Quản lý danh bạ điện thoại
Bài tập cho phép tạo một ứng dụng quản lý danh bạ điện thoại cho phép người dùng thêm và hiển thị danh bạ. Trong đó, sử dụng một biến kiểu từ điển để lưu trữ thông tin liên hệ.
01
02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# Tạo biến danh bạ
danh_ba = {}
def them_lien_he(): ten = input(“Nhập tên liên hệ: “) so_dien_thoai = input(“Nhập số điện thoại: “) danh_ba[ten] = so_dien_thoai
def xem_danh_ba(): for ten, so_dien_thoai in danh_ba.items(): print(f“{ten}: {so_dien_thoai}”)
while True: print(“\n1. Thêm liên hệ”) print(“2. Xem danh bạ”) print(“3. Thoát”) lua_chon = input(“Chọn chức năng: “) if lua_chon == “1”: them_lien_he() elif lua_chon == “2”: xem_danh_ba() elif lua_chon == “3”: break |
Bạn có thể bổ sung thêm 1 số tính năng khác như xóa/sửa danh bạ (tên người dùng + số điện thoại), cũng như trang trí thêm cho chương trình.
Tính toán chuỗi Fibonacci sử dụng đệ quy
Tạo một chương trình Python để tính giá trị của số Fibonacci thứ n sử dụng phương pháp đệ quy.
Dãy Fibonacci là một chuỗi số tự nhiên bắt đầu bằng hai số 0 và 1, sau đó các số tiếp theo trong chuỗi được tạo ra bằng cách cộng hai số trước đó lại với nhau. Dãy này được đặt tên theo tên của nhà toán học người Ý Leonardo Fibonacci, người đã giới thiệu chuỗi này vào cuối thế kỷ 12 qua cuốn sách “Liber Abaci” (Sách về Số học) năm 1202.
Dãy Fibonacci bắt đầu như sau:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …
Công thức tổng quát để tính số Fibonacci thứ n (n là một số tự nhiên) là:
F(n) = F(n-1) + F(n-2)
Với F(0) = 0 và F(1) = 1 là hai điểm bắt đầu của dãy.
01
02 03 04 05 06 07 08 09 10 |
def fibonacci(n):
if n <= 0: return 0 elif n == 1: return 1 else: return fibonacci(n–1) + fibonacci(n–2)
n = int(input(“Nhập số n: “)) print(“Giá trị Fibonacci thứ”, n, “là”, fibonacci(n)) |
Xây dựng máy tính đơn giản
Tạo một ứng dụng máy tính đơn giản cho phép người dùng nhập các phép tính cộng, trừ, nhân, chia. Ngoài ra bạn còn có thể thêm 1 số phép toán khác nếu muốn.
01
02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
def cong(a, b):
return a + b
def tru(a, b): return a – b
def nhan(a, b): return a * b
def chia(a, b): if b != 0: return a / b else: return “Không thể chia cho 0”
while True: print(“\n1. Cộng”) print(“2. Trừ”) print(“3. Nhân”) print(“4. Chia”) print(“5. Thoát”) lua_chon = input(“Chọn phép tính (1/2/3/4/5): “) if lua_chon == “5”: break so1 = float(input(“Nhập số thứ nhất: “)) so2 = float(input(“Nhập số thứ hai: “)) if lua_chon == “1”: print(“Kết quả:”, cong(so1, so2)) elif lua_chon == “2”: print(“Kết quả:”, tru(so1, so2)) elif lua_chon == “3”: print(“Kết quả:”, nhan(so1, so2)) elif lua_chon == “4”: print(“Kết quả:”, chia(so1, so2)) |
Quản lý thời gian
Tạo một ứng dụng quản lý thời gian cho phép người dùng thêm và xem sự kiện. Ngoài ra, bạn có thể tự thêm chức năng xóa và sửa sự kiện nếu muốn.
01
02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 |
su_kien = {}
def them_su_kien(): ngay = input(“Nhập ngày (dd/mm/yyyy): “) noi_dung = input(“Nhập nội dung sự kiện: “) su_kien[ngay] = noi_dung
def xem_su_kien(): for ngay, noi_dung in su_kien.items(): print(f“{ngay}: {noi_dung}”)
while True: print(“\n1. Thêm sự kiện”) print(“2. Xem sự kiện”) print(“3. Thoát”) lua_chon = input(“Chọn chức năng: “) if lua_chon == “1”: them_su_kien() elif lua_chon == “2”: xem_su_kien() elif lua_chon == “3”: break |
Sắp xếp danh sách
Tạo một chương trình Python để sắp xếp một danh sách các số nguyên theo thứ tự tăng dần.
01
02 03 04 05 06 07 08 09 10 11 12 13 |
# Lấy danh sách từ người dùng
danh_sach = [] n = int(input(“Nhập số phần tử trong danh sách: “))
for i in range(n): phan_tu = int(input(“Nhập phần tử thứ {}: “.format(i+1))) danh_sach.append(phan_tu)
# Sắp xếp danh sách danh_sach.sort()
# In danh sách sau khi sắp xếp print(“Danh sách sau khi sắp xếp:”, danh_sach) |
Tạo đối tượng lớp hình học
Tạo một lớp hình học với các thuộc tính như chiều dài, chiều rộng, và các phương thức để tính diện tích và chu vi.
01
02 03 04 05 06 07 08 09 10 11 12 13 14 15 |
class HinhHoc:
def __init__(self, chieu_dai, chieu_rong): self.chieu_dai = chieu_dai self.chieu_rong = chieu_rong
def tinh_dien_tich(self): return self.chieu_dai * self.chieu_rong
def tinh_chu_vi(self): return 2 * (self.chieu_dai + self.chieu_rong)
# Sử dụng lớp HinhHoc hinh = HinhHoc(5, 3) print(“Diện tích:”, hinh.tinh_dien_tich()) print(“Chu vi:”, hinh.tinh_chu_vi()) |
Tìm số nguyên tố sử dụng Sàng Eratosthenes
Tạo một chương trình Python để tìm tất cả các số nguyên tố nhỏ hơn hoặc bằng một số n bằng cách sử dụng thuật toán Sàng Eratosthenes.
Thuật toán Sàng Eratosthenes là một phương pháp để tìm tất cả các số nguyên tố trong một phạm vi số nguyên dương cho trước. Thuật toán này được đặt tên theo nhà toán học cổ đại Eratosthenes của Cyrene, người đã phát triển nó vào thế kỷ 3 trước Công nguyên.
Cách hoạt động của thuật toán Sàng Eratosthenes như sau:
- Bắt đầu với một danh sách các số nguyên từ 2 đến n, trong đó n là giới hạn trên của phạm vi cần kiểm tra.
- Bắt đầu với số đầu tiên trong danh sách (2) và đánh dấu tất cả các bội số của nó (tức là tất cả các số lớn hơn 2 mà chia hết cho 2) là không phải số nguyên tố.
- Tiếp tục với số tiếp theo trong danh sách chưa được đánh dấu và lặp lại bước 2 cho đến khi bạn đã kiểm tra tất cả các số trong danh sách hoặc đến khi bạn đạt đến căn bậc hai của n (vì nếu một số nguyên không phải số nguyên tố, thì nó phải có một thừa số nguyên tố nhỏ hơn hoặc bằng căn bậc hai của n).
- Tất cả các số còn lại trong danh sách sau khi hoàn thành các bước trên sẽ là các số nguyên tố.
01
02 03 04 05 06 07 08 09 10 11 12 13 14 |
def sang_eratosthenes(n):
is_prime = [True] * (n + 1) p = 2 while p**2 <= n: if is_prime[p]: for i in range(p**2, n + 1, p): is_prime[i] = False p += 1
primes = [i for i in range(2, n + 1) if is_prime[i]] return primes
n = int(input(“Nhập số n: “)) print(“Các số nguyên tố nhỏ hơn hoặc bằng”, n, “là:”, sang_eratosthenes(n)) |
Chương trình quản lý công việc
Tạo một ứng dụng quản lý công việc cho phép người dùng thêm, sửa đổi, xóa và hiển thị danh sách công việc.
01
02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# Mã nguồn ứng dụng quản lý công việc
cong_viec = []
def them_cong_viec(): cv = input(“Nhập công việc: “) cong_viec.append(cv)
def xem_cong_viec(): for i, cv in enumerate(cong_viec, 1): print(f“{i}. {cv}”)
while True: print(“\n1. Thêm công việc”) print(“2. Xem danh sách công việc”) print(“3. Thoát”) lua_chon = input(“Chọn chức năng: “) if lua_chon == “1”: them_cong_viec() elif lua_chon == “2”: xem_cong_viec() elif lua_chon == “3”: break |
Máy tính đa chức năng
Khác với tạo máy tính đơn giản, máy tính đa chức năng có thêm một số hàm như lấy lũy thừa và tính căn bậc hai.
01
02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
import math
def tinh_luy_thua(a, b): return a**b
def tinh_can_bac_hai(a): return math.sqrt(a)
while True: print(“\n1. Cộng”) print(“2. Trừ”) print(“3. Nhân”) print(“4. Chia”) print(“5. Lũy thừa”) print(“6. Căn bậc hai”) print(“7. Thoát”) lua_chon = input(“Chọn phép tính (1/2/3/4/5/6/7): “) if lua_chon == “7”: break so1 = float(input(“Nhập số thứ nhất: “)) if lua_chon != “6”: so2 = float(input(“Nhập số thứ hai: “)) if lua_chon == “1”: print(“Kết quả:”, so1 + so2) elif lua_chon == “2”: print(“Kết quả:”, so1 – so2) elif lua_chon == “3”: print(“Kết quả:”, so1 * so2) elif lua_chon == “4”: if so2 != 0: print(“Kết quả:”, so1 / so2) else: print(“Không thể chia cho 0”) elif lua_chon == “5”: print(“Kết quả:”, tinh_luy_thua(so1, so2)) elif lua_chon == “6”: print(“Kết quả:”, tinh_can_bac_hai(so1)) |
Tạo trò chơi đoán số
Tạo một trò chơi đoán số cho phép người dùng đoán một số ngẫu nhiên trong khoảng từ 1 đến 100 và cố gắng đoán chính xác số đó.
01
02 03 04 05 06 07 08 09 10 11 12 13 14 15 |
import random
so_may_tinh = random.randint(1, 100) so_luot = 0
while True: so_luot += 1 so_nguoi_choi = int(input(“Đoán số (1-100): “)) if so_nguoi_choi < so_may_tinh: print(“Số bạn đoán nhỏ hơn số máy tính.”) elif so_nguoi_choi > so_may_tinh: print(“Số bạn đoán lớn hơn số máy tính.”) else: print(“Chính xác! Bạn đã đoán đúng số”, so_may_tinh, “sau”, so_luot, “lượt.”) break |
Nhớ kiểm tra và xử lý lỗi khi sử dụng các đoạn mã này để đảm bảo tính ổn định của chương trình. Chúc bạn thành công trong việc thực hiện các bài tập này!