Một số tính năng thú vị trong Python


Được đăng vào ngày 11/05/2016 | 0 bình luận
Một số tính năng thú vị trong Python
Đánh giá bài viết

Đâ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

python

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.







Trả lời

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *