Skip to content

Instantly share code, notes, and snippets.

@tranghaviet
Last active April 5, 2017 16:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tranghaviet/fec24861e5033dba42469075b88c525d to your computer and use it in GitHub Desktop.
Save tranghaviet/fec24861e5033dba42469075b88c525d to your computer and use it in GitHub Desktop.
using lamda to create anonymous function in python (one-line function)
# định nghĩa 1 function không nhận đầu vào, luôn trả về True, gán nó cho biến ``f``
In [1]: f = lambda: True
# gọi hàm này và nó trả về giá trị True
In [2]: f()
Out[2]: True
# định nghĩa 1 function trả về số lớn hớn số đã cho 1 đơn vị, gán function này cho biến f
In [3]: f = lambda x: x + 1
# hàm này cần 1 argument, câu gọi hàm dưới đây bị thiếu argument
In [4]: f()
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-4-0ec059b9bfe1> in <module>()
----> 1 f()
TypeError: <lambda>() takes exactly 1 argument (0 given)
# giờ thì 5 đã lên 6 rồi
In [5]: f(5)
Out[5]: 6
# định nghĩa hàm kiểm tra số đầu vào có là số chẵn không, gán hàm đó cho biến "is_even"
In [6]: is_even = lambda x: x % 2 == 0
# 5 chắc chắn là một số lẻ, vì nó chia cho 2 dư 1.
In [7]: is_even(5)
Out[7]: False
# định nghĩa hàm tính tổng 2 số, gán hàm này cho biến "sum2"
In [8]: sum2 = lambda x, y: x + y
# dòng này sai cú pháp, Python gọi hàm phải dùng dấu ()
In [9]: sum2 5 6
File "<ipython-input-9-aeffb9c1552b>", line 1
sum2 5 6
^
SyntaxError: invalid syntax
# giờ thì 6+9 bằng 15, yeah
In [10]: sum2(6, 9)
Out[10]: 15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment