Module & Function
Th.S Trần Đức Lợi
Pythonvietnam.info
Ôn tập bài cũ
• Ôn lại nội dung đã học về tập hợp
• Chữa bài Quản lý học sinh
PythonBeginnerClass @loitd
#pythonvietnam.info
Mục đích bài học
• Tìm hiểu về hàm và module trong python
PythonBeginnerClass @loitd
#pythonvietnam.info
Function
• Print ‘pythonvietnam’
• Print ‘loitd’
• Print ‘lấy thông tin 1’
• Print ‘lấy thông tin 2’
• Print ‘Kết quả của bạn là …’
• Print ‘xin chào’
PythonBeginnerClass @loitd
#pythonvietnam.info
Function: lưu trữ và sử dụng lại
Welcome()
• Print ‘pythonvietnam’
• Print ‘loitd’
Processing()
• Print ‘lấy thông tin 1’
• Print ‘lấy thông tin 2’
getResult()
• Print ‘Kết quả của bạn là …’
• Print ‘xin chào’
PythonBeginnerClass @loitd
#pythonvietnam.info
Fuction
• Có 2 loại hàm trong python
– Hàm Built-in
– Các hàm do người dùng tự định nghĩa
• Tránh sử dụng tên biến là tên các hàm built-in
PythonBeginnerClass @loitd
#pythonvietnam.info
Function: Định nghĩa
• Một hàm được định nghĩa bằng từ khóa def
• Về mặt định nghĩa:
– Reusable code
– Parameters
– Results
• Chúng ta có thể gọi hàm bằng tên_hàm(tham
số)
PythonBeginnerClass @loitd
#pythonvietnam.info
Function: Định nghĩa
• N = len([2,3,4.567,8])
• Ta đã gọi hàm len() với tham số là một list
• Def bay(ga):
– Ga.canh = dap(1000)
– Ga.chay = False
• Bay(ga_quay)
PythonBeginnerClass @loitd
#pythonvietnam.info
Function: built-in
• Các hàm ép kiểu
• Các hàm khởi tạo tập hợp
• Các hàm i/o
PythonBeginnerClass @loitd
#pythonvietnam.info
Function: tự xây dựng
• Từ khóa def + tên hàm + ( + tham số + ):
• Căn lề thân (nội dung) hàm
• Hàm được định nghĩa nhưng chưa được chạy
• Để chạy hàm cần được gọi
• Khi đã định nghĩa một hàm, ta có thể gọi lại vô
số lần -> sử dụng lại code
PythonBeginnerClass @loitd
#pythonvietnam.info
Function: argument & parameters &
results
• Def bay(ga):
– Ga.canh = dap(1000)
– Ga.chay = False
– Return True
• Bay(ga_quay)
• Hãy phân tích và chỉ ra 3 thông số
PythonBeginnerClass @loitd
#pythonvietnam.info
Function: nhiều tham số
• Def bay(ga, docao, tocdo):
• Def bay(ga, docao, tocdo=100):
• Def bay(ga, docao=101, tocdo):
• Def bay(ga, docao=101, tocdo=100):
PythonBeginnerClass @loitd
#pythonvietnam.info
Function: tham số mặc định
• Def bay(ga, docao=100):
– Ga.canh = dap(1000)
– Ga.chay = False
– Ga.docao = docao
– Return True
• Bay(ga_quay)
• Bay(ga_quay, 1000)
PythonBeginnerClass @loitd
#pythonvietnam.info
Function
• Bài tập:
– Hãy viết chương trình tính số tiền lương trong
tháng của người lao động với hệ số lương a, lương
cơ bản b (mặc định 400), số giờ làm thêm c, hệ số
làm thêm d (mặc định 1.5), bảo hiểm e, công đoàn
phí f. Phím ‘Q’ để thoát
PythonBeginnerClass @loitd
#pythonvietnam.info
Function: biến toàn cục và biến cục bộ
• Biến cục bộ:
• Ví dụ:
– Def func(x):
– Print ‘x1: ’, x
– X = 43 #declare the local x
– Print ‘x2: ’, x
– X = 50
– Func(x)
– Print ‘x3: ‘, x
PythonBeginnerClass @loitd
#pythonvietnam.info
Function: biến toàn cục và biến cục bộ
• Biến toàn cục
– Từ khóa global
• Ví dụ:
– Def func(x):
– Print ‘x1: ’, x
– Global X = 43 #declare the local x
– Print ‘x2: ’, x
– X = 50
– Func(x)
– Print ‘x3: ‘, x
PythonBeginnerClass @loitd
#pythonvietnam.info
Function: chỉ định tham số truyền giá
trị
• Nếu như với một hàm có rất nhiều tham số
nhưng ta chỉ muốn truyền vào 1-2 tham số?
• Def func(a,b,c=1,d=2,e=3):
• Chỉ truyền giá trị cho các biến a,b,e?
PythonBeginnerClass @loitd
#pythonvietnam.info
Function: pass & void
• Lệnh return
• Void functions: return None
• Từ khóa pass sau lời khai báo hàm
PythonBeginnerClass @loitd
#pythonvietnam.info
Function: docstrings
• Document Strings
• Tăng tính readable
• Ví dụ:
– Def func():
– ‘’’ Function name
– I am the description’’’
– A =b
PythonBeginnerClass @loitd
#pythonvietnam.info
Function: docstrings
• Xem nội dung docstrings của một hàm
• Print function.__doc__
• Help(function)
PythonBeginnerClass @loitd
#pythonvietnam.info
Function: bài tập
• Viết lại bài quản lý học sinh sử dụng hàm với
đầy đủ docstrings, tham số mặc định bổ sung
thêm chức năng tìm kiếm theo tên?
PythonBeginnerClass @loitd
#pythonvietnam.info
Module
• Sử dụng lại một tập hợp các hàm, biến
• Lưu tên file .py và sử dụng câu lệnh import,
from … import …
• Import sys
• From sys import path
PythonBeginnerClass @loitd
#pythonvietnam.info
Module: bài tập
• Hãy dùng sys module và biến sys.argv để in ra
các tham số truyền vào khi chạy chương trình
PythonBeginnerClass @loitd
#pythonvietnam.info
Module: pyc file
• Khi thực hiện import module, pyc file sẽ được
sinh ra (bytecode)
• Thực nghiệm
PythonBeginnerClass @loitd
#pythonvietnam.info
Module: import
• Import module
• From module import object
• Import module as x
– Đặt alias trùng nhau
– Chỉ hiểu alias
– Nhiều alias cho cùng module
• Sự khác biệt và ưu nhược điểm?
PythonBeginnerClass @loitd
#pythonvietnam.info
Module: import
• Import module as x
• Import module01 as x
• Import Module as x
• Module.methodx()
• X.methodx()
• Import Module as x
• Import module as y
PythonBeginnerClass @loitd
#pythonvietnam.info
Module: __name__
• Tên của module
• Khi chạy trực tiếp thì module có tên là
‘__main__’
• Bài tập:
– Hãy viết một module chỉ thực thi in ra câu chào
“helloword” nếu như được gọi trực tiếp, nếu
được import thì in ra câu “imported”
PythonBeginnerClass @loitd
#pythonvietnam.info
Module
• Bài tập: tự xây dựng một module đầu tiên với
biến version và một hàm sayHello()
• Import module này vào chương trình và gọi
các hàm, biến của module
• Xem chi tiết mô tả các hàm trong module đã
nêu
PythonBeginnerClass @loitd
#pythonvietnam.info
Module: path
• Thư mục hiện tại
• PYTHONPATH
• Sys.path
PythonBeginnerClass @loitd
#pythonvietnam.info
Module: reload
• Một ví dụ điển hình là: khi đã import 1 module
và đang thực hiện chương trình, ta thực hiện
thay đổi source nguồn của module đó. Nếu
không reload lại, các thay đổi này sẽ không có
tác dụng.
• Reload()
PythonBeginnerClass @loitd
#pythonvietnam.info
Module: dir
• dir()
• import mod
• dir(mod)
• x = 1
• dir()
• import mod as hg
• dir()
• del x
• dir()
PythonBeginnerClass @loitd
#pythonvietnam.info
Module
• Bài tập:
– Chuyển bài quản lý học sinh về module để thực
hiện import và sử dụng thêm chức năng sửa một
học sinh bất kỳ?
PythonBeginnerClass @loitd
#pythonvietnam.info
Package
• Thư mục có cấu trúc
• Modules
• Package con
• Bài tập: tự xây dựng một package mới?
PythonBeginnerClass @loitd
#pythonvietnam.info
Package
• module girls.py:
• def say():
• print 'we are girls'
• module boys.py:
• def say():
• print 'we are boys'
• __init__.py:
– import girls
– import boys
• - import và sử dụng package pkg:
• import pkg
• pkg.girls.say()
• pkg.boys.say()
PythonBeginnerClass @loitd
#pythonvietnam.info
Tổng kết bài học
• Function
– Built-in
– Người dùng tự định nghĩa
– Void
– Nhiều tham số
– Tham số mặc định
• Module
– Reload
– Path
– __name__
– Import commands
• Pakage
– Giới thiệu pakage
PythonBeginnerClass @loitd
#pythonvietnam.info
Bài tập
• Xây dựng chương trình quản lý thư viện sách
với function, module, import, built-in
PythonBeginnerClass @loitd
#pythonvietnam.info

Python Beginner Class day-07-08-module

  • 1.
    Module & Function Th.STrần Đức Lợi Pythonvietnam.info
  • 2.
    Ôn tập bàicũ • Ôn lại nội dung đã học về tập hợp • Chữa bài Quản lý học sinh PythonBeginnerClass @loitd #pythonvietnam.info
  • 3.
    Mục đích bàihọc • Tìm hiểu về hàm và module trong python PythonBeginnerClass @loitd #pythonvietnam.info
  • 4.
    Function • Print ‘pythonvietnam’ •Print ‘loitd’ • Print ‘lấy thông tin 1’ • Print ‘lấy thông tin 2’ • Print ‘Kết quả của bạn là …’ • Print ‘xin chào’ PythonBeginnerClass @loitd #pythonvietnam.info
  • 5.
    Function: lưu trữvà sử dụng lại Welcome() • Print ‘pythonvietnam’ • Print ‘loitd’ Processing() • Print ‘lấy thông tin 1’ • Print ‘lấy thông tin 2’ getResult() • Print ‘Kết quả của bạn là …’ • Print ‘xin chào’ PythonBeginnerClass @loitd #pythonvietnam.info
  • 6.
    Fuction • Có 2loại hàm trong python – Hàm Built-in – Các hàm do người dùng tự định nghĩa • Tránh sử dụng tên biến là tên các hàm built-in PythonBeginnerClass @loitd #pythonvietnam.info
  • 7.
    Function: Định nghĩa •Một hàm được định nghĩa bằng từ khóa def • Về mặt định nghĩa: – Reusable code – Parameters – Results • Chúng ta có thể gọi hàm bằng tên_hàm(tham số) PythonBeginnerClass @loitd #pythonvietnam.info
  • 8.
    Function: Định nghĩa •N = len([2,3,4.567,8]) • Ta đã gọi hàm len() với tham số là một list • Def bay(ga): – Ga.canh = dap(1000) – Ga.chay = False • Bay(ga_quay) PythonBeginnerClass @loitd #pythonvietnam.info
  • 9.
    Function: built-in • Cáchàm ép kiểu • Các hàm khởi tạo tập hợp • Các hàm i/o PythonBeginnerClass @loitd #pythonvietnam.info
  • 10.
    Function: tự xâydựng • Từ khóa def + tên hàm + ( + tham số + ): • Căn lề thân (nội dung) hàm • Hàm được định nghĩa nhưng chưa được chạy • Để chạy hàm cần được gọi • Khi đã định nghĩa một hàm, ta có thể gọi lại vô số lần -> sử dụng lại code PythonBeginnerClass @loitd #pythonvietnam.info
  • 11.
    Function: argument &parameters & results • Def bay(ga): – Ga.canh = dap(1000) – Ga.chay = False – Return True • Bay(ga_quay) • Hãy phân tích và chỉ ra 3 thông số PythonBeginnerClass @loitd #pythonvietnam.info
  • 12.
    Function: nhiều thamsố • Def bay(ga, docao, tocdo): • Def bay(ga, docao, tocdo=100): • Def bay(ga, docao=101, tocdo): • Def bay(ga, docao=101, tocdo=100): PythonBeginnerClass @loitd #pythonvietnam.info
  • 13.
    Function: tham sốmặc định • Def bay(ga, docao=100): – Ga.canh = dap(1000) – Ga.chay = False – Ga.docao = docao – Return True • Bay(ga_quay) • Bay(ga_quay, 1000) PythonBeginnerClass @loitd #pythonvietnam.info
  • 14.
    Function • Bài tập: –Hãy viết chương trình tính số tiền lương trong tháng của người lao động với hệ số lương a, lương cơ bản b (mặc định 400), số giờ làm thêm c, hệ số làm thêm d (mặc định 1.5), bảo hiểm e, công đoàn phí f. Phím ‘Q’ để thoát PythonBeginnerClass @loitd #pythonvietnam.info
  • 15.
    Function: biến toàncục và biến cục bộ • Biến cục bộ: • Ví dụ: – Def func(x): – Print ‘x1: ’, x – X = 43 #declare the local x – Print ‘x2: ’, x – X = 50 – Func(x) – Print ‘x3: ‘, x PythonBeginnerClass @loitd #pythonvietnam.info
  • 16.
    Function: biến toàncục và biến cục bộ • Biến toàn cục – Từ khóa global • Ví dụ: – Def func(x): – Print ‘x1: ’, x – Global X = 43 #declare the local x – Print ‘x2: ’, x – X = 50 – Func(x) – Print ‘x3: ‘, x PythonBeginnerClass @loitd #pythonvietnam.info
  • 17.
    Function: chỉ địnhtham số truyền giá trị • Nếu như với một hàm có rất nhiều tham số nhưng ta chỉ muốn truyền vào 1-2 tham số? • Def func(a,b,c=1,d=2,e=3): • Chỉ truyền giá trị cho các biến a,b,e? PythonBeginnerClass @loitd #pythonvietnam.info
  • 18.
    Function: pass &void • Lệnh return • Void functions: return None • Từ khóa pass sau lời khai báo hàm PythonBeginnerClass @loitd #pythonvietnam.info
  • 19.
    Function: docstrings • DocumentStrings • Tăng tính readable • Ví dụ: – Def func(): – ‘’’ Function name – I am the description’’’ – A =b PythonBeginnerClass @loitd #pythonvietnam.info
  • 20.
    Function: docstrings • Xemnội dung docstrings của một hàm • Print function.__doc__ • Help(function) PythonBeginnerClass @loitd #pythonvietnam.info
  • 21.
    Function: bài tập •Viết lại bài quản lý học sinh sử dụng hàm với đầy đủ docstrings, tham số mặc định bổ sung thêm chức năng tìm kiếm theo tên? PythonBeginnerClass @loitd #pythonvietnam.info
  • 22.
    Module • Sử dụnglại một tập hợp các hàm, biến • Lưu tên file .py và sử dụng câu lệnh import, from … import … • Import sys • From sys import path PythonBeginnerClass @loitd #pythonvietnam.info
  • 23.
    Module: bài tập •Hãy dùng sys module và biến sys.argv để in ra các tham số truyền vào khi chạy chương trình PythonBeginnerClass @loitd #pythonvietnam.info
  • 24.
    Module: pyc file •Khi thực hiện import module, pyc file sẽ được sinh ra (bytecode) • Thực nghiệm PythonBeginnerClass @loitd #pythonvietnam.info
  • 25.
    Module: import • Importmodule • From module import object • Import module as x – Đặt alias trùng nhau – Chỉ hiểu alias – Nhiều alias cho cùng module • Sự khác biệt và ưu nhược điểm? PythonBeginnerClass @loitd #pythonvietnam.info
  • 26.
    Module: import • Importmodule as x • Import module01 as x • Import Module as x • Module.methodx() • X.methodx() • Import Module as x • Import module as y PythonBeginnerClass @loitd #pythonvietnam.info
  • 27.
    Module: __name__ • Têncủa module • Khi chạy trực tiếp thì module có tên là ‘__main__’ • Bài tập: – Hãy viết một module chỉ thực thi in ra câu chào “helloword” nếu như được gọi trực tiếp, nếu được import thì in ra câu “imported” PythonBeginnerClass @loitd #pythonvietnam.info
  • 28.
    Module • Bài tập:tự xây dựng một module đầu tiên với biến version và một hàm sayHello() • Import module này vào chương trình và gọi các hàm, biến của module • Xem chi tiết mô tả các hàm trong module đã nêu PythonBeginnerClass @loitd #pythonvietnam.info
  • 29.
    Module: path • Thưmục hiện tại • PYTHONPATH • Sys.path PythonBeginnerClass @loitd #pythonvietnam.info
  • 30.
    Module: reload • Mộtví dụ điển hình là: khi đã import 1 module và đang thực hiện chương trình, ta thực hiện thay đổi source nguồn của module đó. Nếu không reload lại, các thay đổi này sẽ không có tác dụng. • Reload() PythonBeginnerClass @loitd #pythonvietnam.info
  • 31.
    Module: dir • dir() •import mod • dir(mod) • x = 1 • dir() • import mod as hg • dir() • del x • dir() PythonBeginnerClass @loitd #pythonvietnam.info
  • 32.
    Module • Bài tập: –Chuyển bài quản lý học sinh về module để thực hiện import và sử dụng thêm chức năng sửa một học sinh bất kỳ? PythonBeginnerClass @loitd #pythonvietnam.info
  • 33.
    Package • Thư mụccó cấu trúc • Modules • Package con • Bài tập: tự xây dựng một package mới? PythonBeginnerClass @loitd #pythonvietnam.info
  • 34.
    Package • module girls.py: •def say(): • print 'we are girls' • module boys.py: • def say(): • print 'we are boys' • __init__.py: – import girls – import boys • - import và sử dụng package pkg: • import pkg • pkg.girls.say() • pkg.boys.say() PythonBeginnerClass @loitd #pythonvietnam.info
  • 35.
    Tổng kết bàihọc • Function – Built-in – Người dùng tự định nghĩa – Void – Nhiều tham số – Tham số mặc định • Module – Reload – Path – __name__ – Import commands • Pakage – Giới thiệu pakage PythonBeginnerClass @loitd #pythonvietnam.info
  • 36.
    Bài tập • Xâydựng chương trình quản lý thư viện sách với function, module, import, built-in PythonBeginnerClass @loitd #pythonvietnam.info