Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
5 lỗi thường gặp trong Python
Trong quá trình lập trình với Python, có những lỗi tuy nhỏ nhưng lại rất dễ bị bỏ qua, gây ra những kết quả không mong muốn và tiêu tốn hàng giờ để gỡ lỗi. Việc nhận biết trước các lỗi phổ biến này sẽ giúp bạn tránh được những sai lầm không đáng có, từ đó làm việc hiệu quả hơn và tiết kiệm thời gian. Dưới đây là 5 lỗi thường gặp mà bạn nên biết để cải thiện chất lượng code của mình.

Ghép chuỗi mà không dùng dấu "+" trong Python
Python cho phép ghép hai chuỗi lại với nhau chỉ bằng cách viết chúng liền nhau, ngay cả khi không dùng toán tử +. Điều này có thể dẫn đến lỗi khi bạn vô tình quên dấu phẩy trong một danh sách chuỗi.
Ví dụ lỗi:
my_list = ["one",
           "two"
           "three",
           "four",
           "five"]
>>> len(my_list)  # Độ dài danh sách
4
>>> my_list  # Kết quả
["one", "twothree", "four", "five"]
Giải thích: Python không báo lỗi mà ngầm hiểu "two" "three" là một chuỗi duy nhất "twothree".
Bài viết này được đăng tại [free tuts .net]
Cách sửa:
Luôn kiểm tra kỹ các dấu phẩy khi khai báo danh sách chuỗi.
Biểu thức điều kiện và gán nhiều biến trong Python
Khi kết hợp gán nhiều biến trên một dòng với biểu thức điều kiện (conditional expression), thứ tự đánh giá có thể dẫn đến kết quả không mong muốn.
Ví dụ lỗi:
condition = True x, y = (0, 1) if condition else None, None >>> x, y ((0, 1), None) # Không như mong đợi
Giải thích: Dấu ngoặc đơn thay đổi cách Python phân tích cú pháp, khiến x nhận giá trị (0, 1) thay vì 0.
Cách sửa:
Sử dụng dấu ngoặc đồng bộ hoặc viết rõ ràng hơn với câu lệnh if-else:
# Sửa bằng dấu ngoặc đồng bộ
x, y = (0, 1) if condition else (None, None)
# Hoặc dùng if-else
if condition:
    x, y = 0, 1
else:
    x, y = None, None
Tạo tuple với một phần tử trong Python
Khi tạo tuple chỉ với một phần tử, bạn bắt buộc phải thêm dấu phẩy. Nếu không, Python sẽ hiểu nhầm là một kiểu dữ liệu khác.
Ví dụ lỗi:
t = ("one")  # Đây không phải tuple, mà là string
for i in t:
    print(i)
# Output: In ra từng ký tự
# o
# n
# e
Giải thích: Nếu không có dấu phẩy, Python hiểu ("one") là một chuỗi.
Cách sửa:
Thêm dấu phẩy vào khi tạo tuple một phần tử:
t = ("one",)
Chú ý: Khi dùng hàm tuple() với chuỗi, nó sẽ tạo tuple chứa từng ký tự:
t = tuple("one")
# Output: ('o', 'n', 'e')
Câu lệnh assert với dấu ngoặc trong Python
Câu lệnh assert kiểm tra một điều kiện, nếu sai sẽ trả về AssertionError. Nhưng nếu bạn sử dụng dấu ngoặc, Python sẽ không hoạt động như mong đợi.
Ví dụ lỗi:
a = "python" b = "javascript" assert (a == b, "Both languages are different") # Không báo lỗi! Nhưng có cảnh báo: # SyntaxWarning: assertion is always true, perhaps remove parentheses?

            Các kiểu dữ liệu trong C ( int - float - double - char ...)        
            Thuật toán tìm ước chung lớn nhất trong C/C++        
            Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)        
            ComboBox - ListBox trong lập trình C# winforms        
            Random trong Python: Tạo số random ngẫu nhiên        
            Lệnh cin và cout trong C++        
                Cách khai báo biến trong PHP, các loại biến thường gặp            
                Download và cài đặt Vertrigo Server            
                Thẻ li trong HTML            
                Thẻ article trong HTML5            
                Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên            
                Cách dùng thẻ img trong HTML và các thuộc tính của img            
                Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng