Đây là một số tính năng thú vị có trong Python nhưng ít được biết đến.
Copy một list
Giả dụ chúng ta có đoạn code sau:
>>> A = [1, 2, 3, 4, 5] >>> B = A
thì nếu chúng ta in list B thì sẽ được các phần tử của list A, nhưng thực ra B chỉ là một biến tham chiếu đến A trong bộ nhớ, tức là thực chất trong bộ nhớ chỉ có 1 list [1, 2, 3, 4, 5] và cả A và B cùng trỏ đến list đó chứ không phải A và B có 2 list giống nhau.
>>> C = A[:]
Còn trong dòng code trên thì chúng ta mới thực sự tạo ra một list khác là C có các phần tử giống như list A.
Bây giờ chúng ta thử đổi một phần tử trong list A:
>>> A[0] = 8 >>> A >>> [8, 2, 3, 4, 5] >>> B >>> [8, 2, 3, 4, 5] >>> C >>> [1, 2, 3, 4, 5]
Rõ ràng khi in list A và B đều cho kết quả giống nhau vì chúng cùng tham chiếu tới một list, nhưng C thì lại khác vì các phần tử trong list C tồn tại độc lập.
Khởi tạo giá trị mặc định cho đối tượng Dictionary
Các đối tượng Dictionary
được tạo ra là rỗng. Nhiều khi chúng ta làm việc với Dictionary
mà không biết khóa đó có giá trị hay chưa nên truy xuất giá trị sẽ bị lỗi, do đó chúng ta có thể dùng phương thức get()
rồi truyền thêm giá trị mặc định vào, tức là nếu khóa đó không có giá trị thì Python sẽ gán giá trị mặc định vào luôn.
>>> D = dict() >>>> D['cat'] += 1 Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'cat' >>> D['cat'] = D.get('cat', 0) + 1 >>> D['cat'] 1 >>> D['cat'] = D.get('cat', 0) + 1 >>> D['cat'] = D.get('cat', 0) + 1 >>> D['cat'] = D.get('cat', 0) + 1 >>> D['cat'] = D.get('cat', 0) + 1 >>> D['cat'] 5 >>> D['dog'] = D.get('dog', 0) + 1 >>> D['dog'] = D.get('dog', 0) + 1 >>> D['dog'] = D.get('dog', 0) + 1 >>> D['dog'] 3 >>> D {'dog': 3, 'cat': 5}
Gán nhiều giá trị cùng một lúc
Bạn có thể gán một lúc nhiều giá trị vào nhiều biến. Tính năng này đặc biệt hữu ích cho việc hoán đổi giá trị giữa 2 phần tử. Với Python bạn không cần phải khai báo biến tạm như temp = a; a = b; b = temp;
để thực hiện công việc hoán đổi giá trị nữa.
>>> x, y = 1, 2 #multiple assignment >>> x 1 >>> y 2 >>> x, y = y, x #swapping >>> x 2 >>> y 1
Có thể gọi bất cứ thứ gì
Chúng ta có thể hầu như gọi bất cứ thứ gì một cách ngẫu nhiên nhưng thường thì cũng không nên làm như vậy vì sẽ rất khó kiểm soát.
>>> number = '123' >>> number*2 '123123' >>> # hmmm ... ... >>> int(number) * 2 246 >>> i = int >>> i(number) * 2 246
Đặt tên biến Unicode
Để có thể sử dụng tên Unicode thì chúng ta viết code trong file script là lưu lại với định dạng UTF-8.
>>> biến = 1 >>> print(biến)
Truyện tranh Python
Bạn có thể import antigravity
để… mở một trang truyện tranh về Python trên trình duyệt 😀
import antigravity
Cú pháp for…else
Ví dụ:
for i in foo: if i == 0: break else: print("Hello world!")
Cú pháp điều kiện
Thay vì dùng câu lệnh if..else
như thường chúng ta có thể dùng nhanh cú pháp sau đây:
>>> x = 3 if(y == 1) else 2
Dòng trên có nghĩa là nếu y = 1 thì gán x = 3, ngược lại thì gán x = 2. Cú pháp này giống như toán tử ?:
trong C++, Java… vậy.
Python còn rất nhiều tính năng khác, trên đây chỉ là một số tính năng thú vị của Python.