Hotline tư vấn - khiếu nại

20 cách luyện tập với Python và những thủ thuật có thể bạn chưa biết (Phần 1)

Dưới đây là 20 tips trong Python sẽ giúp bạn rất nhiều trên con đường trở thành pro đấy, hãy cùng xem mình biết được bao nhiêu thủ thuật nhé! 
1. Sử dụng Python 3
Trong trường hợp bạn không biết: Python 2 sẽ chính thức không được hỗ trợ từ 1/1/2020. Những hướng dẫn trong bài này sẽ có rất nhiều ví dụ chỉ làm việc được trong Python 3. Vì vậy, nếu bạn đang sử dụng phiên bản 2.7 thì update đã nhé!

2. Kiểm tra phiên bản Python tối thiểu được yêu cầu
Bạn có thể xem phiên bản Python trong code để chắc chắn rằng người dùng sẽ không chạy tập lệnh của bạn với phiên bản không tương thích, dùng đoạn code sau để check thử:
𝚒𝚏 𝚗𝚘𝚝 𝚜𝚢𝚜.𝚟𝚎𝚛𝚜𝚒𝚘𝚗_𝚒𝚗𝚏𝚘 > (𝟸, 𝟽):
# 𝚋𝚎𝚛𝚊𝚝𝚎 𝚢𝚘𝚞𝚛 𝚞𝚜𝚎𝚛 𝚏𝚘𝚛 𝚛𝚞𝚗𝚗𝚒𝚗𝚐 𝚊 𝟷0 𝚢𝚎𝚊𝚛
# 𝚙𝚢𝚝𝚑𝚘𝚗 𝚟𝚎𝚛𝚜𝚒𝚘𝚗
𝚎𝚕𝚒𝚏 𝚗𝚘𝚝 𝚜𝚢𝚜.𝚟𝚎𝚛𝚜𝚒𝚘𝚗_𝚒𝚗𝚏𝚘 >= (𝟹, 𝟻):
# 𝙺𝚒𝚗𝚍𝚕𝚢 𝚝𝚎𝚕𝚕 𝚢𝚘𝚞𝚛 𝚞𝚜𝚎𝚛 (𝚜)𝚑𝚎 𝚗𝚎𝚎𝚍𝚜 𝚝𝚘 𝚞𝚙𝚐𝚛𝚊𝚍𝚎
# 𝚋𝚎𝚌𝚊𝚞𝚜𝚎 𝚢𝚘𝚞'𝚛𝚎 𝚞𝚜𝚒𝚗𝚐 𝟹.𝟻 𝚏𝚎𝚊𝚝𝚞𝚛𝚎𝚜

3. Sử dụng List Comprehension
Sử dụng comprehension, ta có thể dễ dàng tạo ra các cấu trúc dữ liệu phức tạp theo cách rất tự nhiên chỉ với ít dòng code. Cú pháp để tạo 1 list bao gồm
[ expression for item in list if conditional ]

Một ví dụ cực kì đơn giản để điền 1 list các dãy số:
𝚖𝚢𝚕𝚒𝚜𝚝 = [𝚒 𝚏𝚘𝚛 𝚒 𝚒𝚗 𝚛𝚊𝚗𝚐𝚎(𝟷0)]
𝚙𝚛𝚒𝚗𝚝(𝚖𝚢𝚕𝚒𝚜𝚝)
# [0, 𝟷, 𝟸, 𝟹, 𝟺, 𝟻, 𝟼, 𝟽, 𝟾, 𝟿]

Và bởi vì bạn có thể sử dụng biểu thức cho nên bạn cũng có thể thực hiện 1 vài phép toán:

𝚜𝚚𝚞𝚊𝚛𝚎𝚜 = [𝚡**𝟸 𝚏𝚘𝚛 𝚡 𝚒𝚗 𝚛𝚊𝚗𝚐𝚎(𝟷0)]
𝚙𝚛𝚒𝚗𝚝(𝚜𝚚𝚞𝚊𝚛𝚎𝚜)
# [0, 𝟷, 𝟺, 𝟿, 𝟷𝟼, 𝟸𝟻, 𝟹𝟼, 𝟺𝟿, 𝟼𝟺, 𝟾𝟷]
Hoặc thậm chí gọi 1 chức năng bên ngoài:

𝚍𝚎𝚏 𝚜𝚘𝚖𝚎_𝚏𝚞𝚗𝚌𝚝𝚒𝚘𝚗(𝚊):
𝚛𝚎𝚝𝚞𝚛𝚗 (𝚊 + 𝟻) / 𝟸

𝚖𝚢_𝚏𝚘𝚛𝚖𝚞𝚕𝚊 = [𝚜𝚘𝚖𝚎_𝚏𝚞𝚗𝚌𝚝𝚒𝚘𝚗(𝚒) 𝚏𝚘𝚛 𝚒 𝚒𝚗 𝚛𝚊𝚗𝚐𝚎(𝟷0)]
𝚙𝚛𝚒𝚗𝚝(𝚖𝚢_𝚏𝚘𝚛𝚖𝚞𝚕𝚊)
# [𝟸.𝟻, 𝟹.0, 𝟹.𝟻, 𝟺.0, 𝟺.𝟻, 𝟻.0, 𝟻.𝟻, 𝟼.0, 𝟼.𝟻, 𝟽.0]

Và cuối cùng, bạn có thể dùng “if” để lọc list trên, ở đây tôi sẽ chỉ giữ lại các giá trị chia hết cho 2:
𝚏𝚒𝚕𝚝𝚎𝚛𝚎𝚍 = [𝚒 𝚏𝚘𝚛 𝚒 𝚒𝚗 𝚛𝚊𝚗𝚐𝚎(𝟸0) 𝚒𝚏 𝚒%𝟸==0]
𝚙𝚛𝚒𝚗𝚝(𝚏𝚒𝚕𝚝𝚎𝚛𝚎𝚍)
# [0, 𝟸, 𝟺, 𝟼, 𝟾, 𝟷0, 𝟷𝟸, 𝟷𝟺, 𝟷𝟼, 𝟷𝟾]

Khóa học lập trình/Data cam kết đầu ra cho sinh viên/ người đi làm: https://bit.ly/2LtzHQO

4. Kiểm tra bộ nhớ của các đối tượng
Với sys.getsizeof() bạn có thể kiểm tra bộ nhớ như sau:
𝚒𝚖𝚙𝚘𝚛𝚝 𝚜𝚢𝚜

𝚖𝚢𝚕𝚒𝚜𝚝 = 𝚛𝚊𝚗𝚐𝚎(0, 𝟷0000)
𝚙𝚛𝚒𝚗𝚝(𝚜𝚢𝚜.𝚐𝚎𝚝𝚜𝚒𝚣𝚎𝚘𝚏(𝚖𝚢𝚕𝚒𝚜𝚝))
# 𝟺𝟾

5. Trả về nhiều giá trị
Các hàm trong Python có thể trả về nhiều hơn 1 biến mà không cần dictionary, list hay class. Nó sẽ chạy như thế này:

𝚍𝚎𝚏 𝚐𝚎𝚝_𝚞𝚜𝚎𝚛(𝚒𝚍):
# 𝚏𝚎𝚝𝚌𝚑 𝚞𝚜𝚎𝚛 𝚏𝚛𝚘𝚖 𝚍𝚊𝚝𝚊𝚋𝚊𝚜𝚎
# ....
𝚛𝚎𝚝𝚞𝚛𝚗 𝚗𝚊𝚖𝚎, 𝚋𝚒𝚛𝚝𝚑𝚍𝚊𝚝𝚎
𝚗𝚊𝚖𝚎, 𝚋𝚒𝚛𝚝𝚑𝚍𝚊𝚝𝚎 = 𝚐𝚎𝚝_𝚞𝚜𝚎𝚛(𝟺)

Điều này hợp đối với một số lượng hạn chế của các giá trị trả về. Nhưng bất cứ điều gì qua 3 giá trị nên được đưa vào một lớp (dữ liệu).

Nguồn: towardsdatascience.com