- Hàm là một tập hợp các dòng lệnh được viết ra nhằm phục vụ cho việc tái sử dụng lại sau này.
- Để khai báo hàm trong Python, ta sử dụng từ kháo
def
với cú pháp như sau: def <tênhàm>(<cácđối_số>):
Khai báo và sử dụng hàm
# Gọi một hàm
func_name(<các_đối_số>)
def func_name(): # Không truyền tham số
print("Hello world!")
func_name()
def func_name(a, b): # Có truyền các đối số
print("sum = " + str(a + b))
func_name(4,5)
# Hàm có kế quả trả về
def sum(a, b):
return a + b
c = sum(4, 5);
print("Kết quả là " + str(c))
## Unpacking a function
def sum_and_div(num1, num2):
sum_nums = num1 + num2
div_nums = num1 / num2
return sum_nums, div_nums # multiple returns
sum, div = sum_and_div(18, 9)
print(sum, div) #KQ: 27 2.0
Hàm vô danh (Lambda function)
- Trong Python, hiểu đơn giản hàm vô danh là hàm được định nghĩa mà không có tên hàm. Cú pháp lambda <thamsố>: <biểuthức>
-
Thật tiện lợi nhưng đừng sử dụng thường xuyên, hãy sử dụng def để thay thế.
x = lambda a : a + 10 print(x(5)) #KQ: 15 # Bạn có thể sử dụng def def x(a): return a + 10 print(x(5)) #KQ: 15
-
if else với hàm lambda
lambda row: 'good' if (row>=80) else ('bad' if row<80 else '')
Xử lý ngoại lệ (Exception Handling)
Ngoại lệ (Exception) là lỗi xảy ra trong quá trình thực thi một chương trình. Khi nó xảy ra, Python tạo ra một exception để xử lý vấn đề đó tránh cho ứng dụng hay server của bạn bị crash. Có thể được xử lý bằng bằng các cấu trúc sau:
try:
# codes
except:
# codes chạy nếu có một ngoại lệ
try:
# codes
except:
# codes chạy nếu có một ngoại lệ
else:
# không có ngoại lệ
try:
# try codes
except FileNotFoundError as fnf_error:
print(fnf_error)
except AssertionError as error:
print(error)
-
Ví dụ 1
if par1 is None: msg = "par1 phải ở kiểu `int`" raise TypeError(msg)
-
Ví dụ 2
d = 0 # Phép chia này có vấn đề, cho cho 0 # Một lỗi được phát ra tại đây. value = 10 / d # Dòng mã dưới đây sẽ không được thực thi. print ("Let's go!")
Sửa lại một tí ta được:
d = 0 try : # Phép chia này có vấn đề, chia cho 0. # Một lỗi được phát ra tại đây (ZeroDivisionError). value = 10 / d print ("Value = ", value) except ZeroDivisionError as e : print ("Error: ", str(e) ) print ("Ignore to continue ...") print ("Let's go!")
-
Ví dụ 3: Xây dựng một Exception
try: x = input('Nhập một số trong khoảng 1-10: ') if x<1 or x>10: raise Exception print 'Bạn vừa nhập một số hợp lệ :D' except: print 'Số bạn vừa nhập nằm ngoài khoảng cho phép mất rồi!'
-
Ví dụ 4
element = 'mean' try: print(float(element)) #element là kiểu str không phải float nên xuất hiện exception except ValueError: if element == 'mean': print('hello mean')
- Bạn có thể kiểm tra các trường họp ngoại lệ khác tại đây