Lập trình python từ cơ bản đến nâng cao

9 21 0
Lập trình python từ cơ bản đến nâng cao

Đang tải... (xem toàn văn)

Thông tin tài liệu

1|9 KHÓA PYTHON CƠ BẢN HOWKTEAM.COM Bài 34: KIỂU DỮ LIỆU FUNCTION TRONG PYTHON – LAMBDA Xem học website để ủng hộ Kteam: Kiểu liệu function Python – Lambda Mọi vấn đề lỗi website làm ảnh hưởng đến bạn thắc mắc, mong muốn khóa học mới, nhằm hỗ trợ cải thiện Website Các bạn vui lòng phản hồi đến Fanpage How Kteam nhé! Dẫn nhập Trong trước, Kteam giới thiệu đến bạn YIELD – KIỂU DỮ LIỆU FUNCTION TRONG PYTHON Và Kteam lại tìm hiểu với KIỂU DỮ LIỆU FUNCTION TRONG PYTHON – LAMBDA Nội dung Để đọc hiểu tốt bạn cần:       Cài đặt sẵn MÔI TRƯỜNG PHÁT TRIỂN CỦA PYTHON Xem qua CÁCH CHẠY CHƯƠNG TRÌNH PYTHON Nắm CÁCH GHI CHÚ BIẾN TRONG PYTHON CÁC KIỂU DỮ LIỆU ĐƯỢC GIỚI THIỆU TRONG PYTHON CÂU ĐIỀU KIỆN IF TRONG PYTHON VÒNG LẶP WHILE VÒNG LẶP FOR TRONG PYTHON Copyright © Howkteam.com 2|9 KHĨA PYTHON CƠ BẢN HOWKTEAM.COM Bạn Kteam tìm hiểu nội dung sau      Mở đầu Giới thiệu lambda Vì dùng lambda? Câu điều kiện cho lambda Lambda chồng lambda Mở đầu Ngồi từ khóa “def”, Python hỗ trợ cho bạn cách khác để khai báo function object, lambda Nó khác từ khóa “def” chỗ, thay def tạo hàm với tên xác định lambda trả hàm Thế nên người ta hay gọi lambda hàm nặc danh (anonymous) Nó thường sử dụng thường xuyên để tạo hàm với dòng lệnh Giới thiệu lambda Ta có cú pháp sau: lambda argument_1, argument_2, …, argument_n : expression Như nói trên, lambda hoạt động bạn dùng từ khóa “def” khai báo hàm Tuy nhiên, có vài ưu điểm trội lambda so với cách bình thường:   lambda expression, câu lệnh (Khái niệm expression Kteam giới thiệu) Do lambda có vài chỗ mà “def” khơng thể có (bạn đọc biết phần sau) lambda dịng expression nhất, khơng phải khối lệnh Phần expression lambda giống với phần khối lệnh hàm với lệnh return cuối hàm với lambda bạn cần ghi giá trị mà Copyright © Howkteam.com 3|9 KHĨA PYTHON CƠ BẢN HOWKTEAM.COM không cần ghi return Bạn đọc hiểu rõ phần sau biết lambda sử dụng câu lệnh điều kiện mà không cần phải sử dụng tới lệnh “if” Nhờ thiết kế vậy, lambda ưu tiên dùng cho việc tạo hàm đơn giản, cịn phức tạp ta sử dụng đến từ khóa “def” Để hiểu hơn, mời bạn đọc xem qua ví dụ sau Đây bạn sử dụng từ khóa “def” >>> def ave(a, b, c): return (a + b + c)/3 >>> ave(1, 3, 2) 2.0 Còn sử dụng lambda >>> ave = lambda a, b, c: (a + b+ c)/3 >>> ave(1, 3, 2) 2.0 Bạn nhớ default argument chứ? >>> def x_power_a(x, a = 2): return x ** a >>> x_power_a(2) >>> x_power_a(2, 3) Điều làm với lambda >>> x_power_a = lambda x, a=2: x ** a >>> x_power_a(2) >>> x_power_a(2, 3) Bạn lưu ý thêm lambda phân biệt global local Copyright © Howkteam.com 4|9 KHÓA PYTHON CƠ BẢN HOWKTEAM.COM >>> def kteam(): mem = lambda x: x + ' is a member of Kteam' return mem # trả hàm nặc danh >>> call_mem = kteam() # lấy biến call_mem giữ hàm nặc danh >>> call_mem('Long') # giá trị chuỗi đưa vào cho biến x 'Long is a member of Kteam' >>> call_mem('Giau') 'Giau is a member of Kteam' >>> call_mem Vì dùng lambda? Chung quy lambda cơng cụ nhanh gọn để bạn tạo hàm sử dụng Việc sử dụng thay cho “def” hay khơng tùy bạn Đương nhiên bạn sử dụng “def” thơi được, hồn tồn được, đặc biệt lúc mà hàm bạn phức tạp, cần nhiều câu lệnh bạn khơng cần phải suy nghĩ nhiều mà nên dùng “def” Nhưng giả sử bạn cần khởi tạo hàm cấu trúc đơn giản tái sử dụng nhiều lần sao? Lúc nghĩ tới lambda nhé! Chúng ta đến với số ví dụ mà lambda hồn toàn chiếm ưu so với “def” >>> kteam_lst = [lambda x: x**2, lambda x: x**3, lambda x: x**4] # list với phần tử hàm nặc danh >>> kteam_lst[0] >>> kteam_lst[0](2) # 2**2 >>> kteam_lst[-1](4) # 4**4 256 >>> for func in kteam_lst: func(3) # 3**2, 3**3, 3**4 27 81 Copyright © Howkteam.com 5|9 KHĨA PYTHON CƠ BẢN HOWKTEAM.COM Rất tiện lợi phải không nào, dĩ nhiên điều “def” khơng thể có đề cập phần trên, lambda expression, câu lệnh Nên lambda nhiều nơi mà “def” khơng thể Với ví dụ bên bạn muốn sử dụng “def”, bạn phải khởi tạo hàm đưa vào list >>> def f1(x): return x**2 >>> def f2(x): return x**3 >>> def f3(x): return x**4 >>> kteam_lst = [f1, f2, f3] >>> kteam_lst[0] >>> kteam_lst[-1](2) # 2**4 16 >>> for func in kteam_lst: func(3) 27 81 Khơng list, bạn sử dụng lambda với dictionary Mời bạn đọc xem ví dụ sau đây: >>> key = 'Kteam' >>> {'Google': lambda: 'Goooooooog', 'YouTube': lambda: 'Youuuuuuuuu', 'Kteam': lambda: 'Free Education'}[key]() 'Free Education' Lưu ý: Bạn để ý ví dụ trên, phần argument lambda ta để trống, điều hoàn toàn cú pháp phần argument optional (khơng bắt buộc) phần expression bắt buộc phải có expression Ta thử lại ví dụ khơng dùng lambda mà dùng “def” Copyright © Howkteam.com KHĨA PYTHON CƠ BẢN HOWKTEAM.COM 6|9 >>> def f1(): return 'Goooooooog' >>> def f2(): return 'Youuuuuuuuu' >>> def f3(): return 'Free Education' >>> key = 'Kteam' >>> {'Google': f1, 'YouTube': f2, 'Kteam': f3}[key]() 'Free Education' Nó lambda thơi, rõ ràng ta thấy lambda tiện lợi “def” vài dòng code Điểm mạnh vượt trội lambda so với “def” hoàn toàn thể với hàm tính tốn đơn giản nhanh chóng Hơn nữa, dùng “def”, bạn phải tạo tên cho nó, đơi việc bạn nghĩ tên cho hàm thực không đơn giản (việc xảy ra) Bạn thấy lambda tiện lợi nhiều bạn tìm hiểu hàm map (Kteam giới thiệu khác) Câu điều kiện cho lambda Rõ ràng bạn thấy, lambda nhận expression, đó, bạn khơng thể chèn câu lệnh điều kiện bình thường mà phải theo cách khác Giả sử với lệnh if sau if a: b else: c Thì viết dạng expression với cách sau Cách 1: Copyright © Howkteam.com 7|9 KHĨA PYTHON CƠ BẢN HOWKTEAM.COM b if a else c Cách 2: (a and b) or c Bạn có cần nhớ khơng? Khơng cần thiết đâu, Kteam khuyến khích bạn đọc ghi nhớ dùng cách rõ ràng dĩ nhiên không nên bối rối thấy cách Hãy đến với ví dụ để hiểu thêm >>> find_greater = lambda x, y: x if x > y else y >>> find_greater(1, 3) >>> find_greater(6, 2) Ví dụ sau kiểm tra xem số có hai ước hay khơng? Nếu có trả 1, khơng Ví dụ hồn tồn sử dụng lambda cách sử dụng “and” Kteam muốn bạn biết lồng expression lên >>> cd_of_2_3 = lambda x: (1 if x % == else 0) if x % == else >>> cd_of_2_3(6) >>> cd_of_2_3(8) >>> cd_of_2_3(9) >>> cd_of_2_3(12) Ở ví dụ trên, phần if bạn thu gọn biểu thức tẹo cách dùng phủ định >>> cd_of_2_3 = lambda x: (1 if not (x % 3) else 0) if not (x % 2) else >>> cd_of_2_3(6) >>> cd_of_2_3(9) >>> cd_of_2_3(8) Copyright © Howkteam.com 8|9 KHÓA PYTHON CƠ BẢN HOWKTEAM.COM >>> cd_of_2_3(12) Lambda chồng lambda Phần rắc rối bạn chưa thực hiểu lambda Bạn chồng lambda lên lúc Nhưng phải ý để biết làm >>> def kteam(first_string): return lambda second_string: first_string + second_string # trả hàm, lưu biến first_string >>> slogan = kteam('How Kteam ') # gửi giá trị cho biến first_string >>> slogan >>> slogan('Free Education') # gửi nốt giá trị lại cho second_string 'How Kteam Free Education' Ví dụ ta sử dụng “def”, bạn để ý hàm sử dụng “def” ta hồn tồn sử dụng lambda thay >>> kteam = lambda first_string: (lambda second_string: first_string + second_string) >>> slogan = kteam('How Kteam ') >>> slogan('Free Education') 'How Kteam Free Education' >>> (lambda first_string: (lambda second_string: first_string + second_string))('How Kteam ')('Free Education') 'How Kteam Free Education' Thực tế lambda chồng lambda phức tạp Python vốn khơng thích khó hiểu, phức tạp, thiếu lịch nên thường việc chồng lambda khơng khuyến khích Kết luận Copyright © Howkteam.com KHĨA PYTHON CƠ BẢN HOWKTEAM.COM 9|9 Qua viết này, Bạn biết hàm nặc danh lambda Ở tiếp theo, Kteam nói đến MỘT SỐ HÀM HAY SỬ DỤNG KẾT HỢP VỚI HÀM NẶC DANH TRONG PYTHON Cảm ơn bạn theo dõi viết Hãy để lại bình luận góp ý để phát triển viết tốt Đừng qun “Luyện tập – Thử thách – Khơng ngại khó” Copyright © Howkteam.com ... HAY SỬ DỤNG KẾT HỢP VỚI HÀM NẶC DANH TRONG PYTHON Cảm ơn bạn theo dõi viết Hãy để lại bình luận góp ý để phát triển viết tốt Đừng quyên “Luyện tập – Thử thách – Khơng ngại khó” Copyright © Howkteam.com... >>> kteam_lst[0](2) # 2**2 >>> kteam_lst[-1](4) # 4**4 256 >>> for func in kteam_lst: func(3) # 3**2, 3**3, 3**4 27 81 Copyright © Howkteam.com 5|9 KHÓA PYTHON. .. lambda chồng lambda phức tạp Python vốn khơng thích khó hiểu, phức tạp, thiếu lịch nên thường việc chồng lambda khơng khuyến khích Kết luận Copyright © Howkteam.com KHĨA PYTHON CƠ BẢN HOWKTEAM.COM

Ngày đăng: 17/12/2021, 22:48

Tài liệu cùng người dùng

Tài liệu liên quan