SlideShare a Scribd company logo
1 of 36
Download to read offline
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

More Related Content

What's hot

Python Beginner Class day-15-networking
Python Beginner Class day-15-networkingPython Beginner Class day-15-networking
Python Beginner Class day-15-networkingKhánh Nguyễn
 
Oop unit 11 input và output
Oop unit 11 input và outputOop unit 11 input và output
Oop unit 11 input và outputTráng Hà Viết
 
ỨNG DỤNG NGÔN NGỮ R TRONG PHÂN TÍCH DỮ LIỆU.pdf
ỨNG DỤNG NGÔN NGỮ R TRONG PHÂN TÍCH DỮ LIỆU.pdfỨNG DỤNG NGÔN NGỮ R TRONG PHÂN TÍCH DỮ LIỆU.pdf
ỨNG DỤNG NGÔN NGỮ R TRONG PHÂN TÍCH DỮ LIỆU.pdfjackjohn45
 
Oop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quátOop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quátTráng Hà Viết
 
Oop unit 12 đồ họa và xử lý sự kiện
Oop unit 12 đồ họa và xử lý sự kiệnOop unit 12 đồ họa và xử lý sự kiện
Oop unit 12 đồ họa và xử lý sự kiệnTráng Hà Viết
 
Lớp 11 --chương 4 -- bài 11 --Kiểu mảng
Lớp 11 --chương 4 -- bài 11 --Kiểu mảngLớp 11 --chương 4 -- bài 11 --Kiểu mảng
Lớp 11 --chương 4 -- bài 11 --Kiểu mảngHoàng Kỳ Anh
 
Programming technique 1_2_7921
Programming technique 1_2_7921Programming technique 1_2_7921
Programming technique 1_2_7921tienhien110293
 
Bai3 timkiemsapxep
Bai3 timkiemsapxepBai3 timkiemsapxep
Bai3 timkiemsapxepnhà tôi
 
Bert for question answering on SQuAD 2.0
Bert for question answering on SQuAD 2.0Bert for question answering on SQuAD 2.0
Bert for question answering on SQuAD 2.0Hoangtrungchinh Ttnct
 
[Cntt] bài giảng lập trình java bkhcm
[Cntt] bài giảng lập trình java   bkhcm[Cntt] bài giảng lập trình java   bkhcm
[Cntt] bài giảng lập trình java bkhcmHong Phuoc Nguyen
 

What's hot (15)

Python Beginner Class day-15-networking
Python Beginner Class day-15-networkingPython Beginner Class day-15-networking
Python Beginner Class day-15-networking
 
Oop unit 11 input và output
Oop unit 11 input và outputOop unit 11 input và output
Oop unit 11 input và output
 
Oop unit 10 ngoại lệ
Oop unit 10 ngoại lệOop unit 10 ngoại lệ
Oop unit 10 ngoại lệ
 
Oop unit 02 java cơ bản
Oop unit 02 java cơ bảnOop unit 02 java cơ bản
Oop unit 02 java cơ bản
 
ỨNG DỤNG NGÔN NGỮ R TRONG PHÂN TÍCH DỮ LIỆU.pdf
ỨNG DỤNG NGÔN NGỮ R TRONG PHÂN TÍCH DỮ LIỆU.pdfỨNG DỤNG NGÔN NGỮ R TRONG PHÂN TÍCH DỮ LIỆU.pdf
ỨNG DỤNG NGÔN NGỮ R TRONG PHÂN TÍCH DỮ LIỆU.pdf
 
Oop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quátOop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quát
 
Oop unit 12 đồ họa và xử lý sự kiện
Oop unit 12 đồ họa và xử lý sự kiệnOop unit 12 đồ họa và xử lý sự kiện
Oop unit 12 đồ họa và xử lý sự kiện
 
Oop unit 08 đa hình
Oop unit 08 đa hìnhOop unit 08 đa hình
Oop unit 08 đa hình
 
Bai11
Bai11Bai11
Bai11
 
Lớp 11 --chương 4 -- bài 11 --Kiểu mảng
Lớp 11 --chương 4 -- bài 11 --Kiểu mảngLớp 11 --chương 4 -- bài 11 --Kiểu mảng
Lớp 11 --chương 4 -- bài 11 --Kiểu mảng
 
Programming technique 1_2_7921
Programming technique 1_2_7921Programming technique 1_2_7921
Programming technique 1_2_7921
 
Bai3 timkiemsapxep
Bai3 timkiemsapxepBai3 timkiemsapxep
Bai3 timkiemsapxep
 
Bert for question answering on SQuAD 2.0
Bert for question answering on SQuAD 2.0Bert for question answering on SQuAD 2.0
Bert for question answering on SQuAD 2.0
 
Ctdl c1
Ctdl c1Ctdl c1
Ctdl c1
 
[Cntt] bài giảng lập trình java bkhcm
[Cntt] bài giảng lập trình java   bkhcm[Cntt] bài giảng lập trình java   bkhcm
[Cntt] bài giảng lập trình java bkhcm
 

Viewers also liked

Bai 1 pythonvietnam.info
Bai 1   pythonvietnam.infoBai 1   pythonvietnam.info
Bai 1 pythonvietnam.infoKhánh Nguyễn
 
Slide Python Bai 2 pythonvietnam.info
Slide Python Bai 2   pythonvietnam.infoSlide Python Bai 2   pythonvietnam.info
Slide Python Bai 2 pythonvietnam.infoKhánh Nguyễn
 
Git Using - pythonvietnam.info
Git Using - pythonvietnam.infoGit Using - pythonvietnam.info
Git Using - pythonvietnam.infoKhánh Nguyễn
 
Bai giang cau truc may tinh39
Bai giang cau truc may tinh39Bai giang cau truc may tinh39
Bai giang cau truc may tinh39Phi Phi
 
Bottle web framwork for python
Bottle web framwork for pythonBottle web framwork for python
Bottle web framwork for pythonKhánh Nguyễn
 
Bai giang cau truc may tinh40
Bai giang cau truc may tinh40Bai giang cau truc may tinh40
Bai giang cau truc may tinh40Phi Phi
 
Chuyen de flask -- pythonvietnam.info
Chuyen de flask  -- pythonvietnam.info Chuyen de flask  -- pythonvietnam.info
Chuyen de flask -- pythonvietnam.info Khánh Nguyễn
 
Một góc nhìn về chuyện khởi nghiệp của Sinh Viên Việt Nam
Một góc nhìn về chuyện khởi nghiệp của Sinh Viên Việt NamMột góc nhìn về chuyện khởi nghiệp của Sinh Viên Việt Nam
Một góc nhìn về chuyện khởi nghiệp của Sinh Viên Việt NamImr Hung
 
Software Development Process Seminar at HUI
Software Development Process Seminar at HUISoftware Development Process Seminar at HUI
Software Development Process Seminar at HUIKMS Technology
 
An Introduction of Apache Hadoop
An Introduction of Apache HadoopAn Introduction of Apache Hadoop
An Introduction of Apache HadoopKMS Technology
 
Am hoc kien truc
Am hoc kien trucAm hoc kien truc
Am hoc kien trucDang Lam
 
Lập trình Python GUI vs PySide
Lập trình Python GUI vs PySideLập trình Python GUI vs PySide
Lập trình Python GUI vs PySideChien Dang
 
Git Version Control System
Git Version Control SystemGit Version Control System
Git Version Control SystemKMS Technology
 
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOpsKMS Technology
 

Viewers also liked (20)

Bai 1 pythonvietnam.info
Bai 1   pythonvietnam.infoBai 1   pythonvietnam.info
Bai 1 pythonvietnam.info
 
Slide Python Bai 2 pythonvietnam.info
Slide Python Bai 2   pythonvietnam.infoSlide Python Bai 2   pythonvietnam.info
Slide Python Bai 2 pythonvietnam.info
 
Git Using - pythonvietnam.info
Git Using - pythonvietnam.infoGit Using - pythonvietnam.info
Git Using - pythonvietnam.info
 
Bai giang cau truc may tinh39
Bai giang cau truc may tinh39Bai giang cau truc may tinh39
Bai giang cau truc may tinh39
 
Bottle web framwork for python
Bottle web framwork for pythonBottle web framwork for python
Bottle web framwork for python
 
Bai giang cau truc may tinh40
Bai giang cau truc may tinh40Bai giang cau truc may tinh40
Bai giang cau truc may tinh40
 
Chuyen de flask -- pythonvietnam.info
Chuyen de flask  -- pythonvietnam.info Chuyen de flask  -- pythonvietnam.info
Chuyen de flask -- pythonvietnam.info
 
Một góc nhìn về chuyện khởi nghiệp của Sinh Viên Việt Nam
Một góc nhìn về chuyện khởi nghiệp của Sinh Viên Việt NamMột góc nhìn về chuyện khởi nghiệp của Sinh Viên Việt Nam
Một góc nhìn về chuyện khởi nghiệp của Sinh Viên Việt Nam
 
Introduction to WEB HTML, CSS
Introduction to WEB HTML, CSSIntroduction to WEB HTML, CSS
Introduction to WEB HTML, CSS
 
Training android
Training androidTraining android
Training android
 
Software Development Process Seminar at HUI
Software Development Process Seminar at HUISoftware Development Process Seminar at HUI
Software Development Process Seminar at HUI
 
Training Google Drive and Hangouts.pptx
Training Google Drive and Hangouts.pptxTraining Google Drive and Hangouts.pptx
Training Google Drive and Hangouts.pptx
 
An Introduction of Apache Hadoop
An Introduction of Apache HadoopAn Introduction of Apache Hadoop
An Introduction of Apache Hadoop
 
Training javascript 2012 hcmut
Training javascript 2012 hcmutTraining javascript 2012 hcmut
Training javascript 2012 hcmut
 
Design patterns tutorials
Design patterns tutorialsDesign patterns tutorials
Design patterns tutorials
 
Training python (new Updated)
Training python (new Updated)Training python (new Updated)
Training python (new Updated)
 
Am hoc kien truc
Am hoc kien trucAm hoc kien truc
Am hoc kien truc
 
Lập trình Python GUI vs PySide
Lập trình Python GUI vs PySideLập trình Python GUI vs PySide
Lập trình Python GUI vs PySide
 
Git Version Control System
Git Version Control SystemGit Version Control System
Git Version Control System
 
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
 

Similar to Python Beginner Class day-07-08-module

Ky thuat l.trinh_java
Ky thuat l.trinh_javaKy thuat l.trinh_java
Ky thuat l.trinh_javaLam Man
 
Oop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớpOop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớpTráng Hà Viết
 
LTJAVA_TV_Slides.ppt
LTJAVA_TV_Slides.pptLTJAVA_TV_Slides.ppt
LTJAVA_TV_Slides.pptssuserf603dc1
 
[Cntt] bài giảng java khtn hcm
[Cntt] bài giảng java   khtn hcm[Cntt] bài giảng java   khtn hcm
[Cntt] bài giảng java khtn hcmHong Phuoc Nguyen
 
Code Refactoring: Thay đổi nhỏ - Lợi ích lớn
Code Refactoring: Thay đổi nhỏ - Lợi ích lớnCode Refactoring: Thay đổi nhỏ - Lợi ích lớn
Code Refactoring: Thay đổi nhỏ - Lợi ích lớnNhật Nguyễn Khắc
 
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPTBÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPTMasterCode.vn
 
How to write good code
How to write good code How to write good code
How to write good code Minh Hoang
 
02 chuong2-laydulieutheocachconnected-140404114611-phpapp02
02 chuong2-laydulieutheocachconnected-140404114611-phpapp0202 chuong2-laydulieutheocachconnected-140404114611-phpapp02
02 chuong2-laydulieutheocachconnected-140404114611-phpapp02huynhtrong774129
 
02 chuong 2 - lay du lieu theo cach connected
02   chuong 2 - lay du lieu theo cach connected02   chuong 2 - lay du lieu theo cach connected
02 chuong 2 - lay du lieu theo cach connectedtruong le hung
 
OOP_02_Java can ban.pdf
OOP_02_Java can ban.pdfOOP_02_Java can ban.pdf
OOP_02_Java can ban.pdfssuserd01a5c
 
Lect04 functions
Lect04 functionsLect04 functions
Lect04 functionsHồ Lợi
 
Nmlt c15 ham_nangcao_phan1_in
Nmlt c15 ham_nangcao_phan1_inNmlt c15 ham_nangcao_phan1_in
Nmlt c15 ham_nangcao_phan1_inHuy Nguyễn
 
Android Nâng cao-Bài 4: Content Provider
Android Nâng cao-Bài 4: Content ProviderAndroid Nâng cao-Bài 4: Content Provider
Android Nâng cao-Bài 4: Content ProviderPhuoc Nguyen
 
Tu-Hoc-Python-Co-Ban-Trong-10-Phut-NIIT
Tu-Hoc-Python-Co-Ban-Trong-10-Phut-NIITTu-Hoc-Python-Co-Ban-Trong-10-Phut-NIIT
Tu-Hoc-Python-Co-Ban-Trong-10-Phut-NIITNIIT - ICT Hà Nội
 

Similar to Python Beginner Class day-07-08-module (20)

[Cntt] all java
[Cntt] all java[Cntt] all java
[Cntt] all java
 
Ky thuat l.trinh_java
Ky thuat l.trinh_javaKy thuat l.trinh_java
Ky thuat l.trinh_java
 
Oop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớpOop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớp
 
LTJAVA_TV_Slides.ppt
LTJAVA_TV_Slides.pptLTJAVA_TV_Slides.ppt
LTJAVA_TV_Slides.ppt
 
[Cntt] bài giảng java khtn hcm
[Cntt] bài giảng java   khtn hcm[Cntt] bài giảng java   khtn hcm
[Cntt] bài giảng java khtn hcm
 
Code Refactoring: Thay đổi nhỏ - Lợi ích lớn
Code Refactoring: Thay đổi nhỏ - Lợi ích lớnCode Refactoring: Thay đổi nhỏ - Lợi ích lớn
Code Refactoring: Thay đổi nhỏ - Lợi ích lớn
 
Linq net
Linq net Linq net
Linq net
 
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPTBÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
BÀI 6: Thủ tục (SUB) và hàm (FUNCTION) - Giáo trình FPT
 
Hàm can bản
Hàm can bảnHàm can bản
Hàm can bản
 
hàm_nocopy.pdf
hàm_nocopy.pdfhàm_nocopy.pdf
hàm_nocopy.pdf
 
How to write good code
How to write good code How to write good code
How to write good code
 
02 chuong2-laydulieutheocachconnected-140404114611-phpapp02
02 chuong2-laydulieutheocachconnected-140404114611-phpapp0202 chuong2-laydulieutheocachconnected-140404114611-phpapp02
02 chuong2-laydulieutheocachconnected-140404114611-phpapp02
 
02 chuong 2 - lay du lieu theo cach connected
02   chuong 2 - lay du lieu theo cach connected02   chuong 2 - lay du lieu theo cach connected
02 chuong 2 - lay du lieu theo cach connected
 
Web201 slide 3
Web201   slide 3Web201   slide 3
Web201 slide 3
 
OOP_02_Java can ban.pdf
OOP_02_Java can ban.pdfOOP_02_Java can ban.pdf
OOP_02_Java can ban.pdf
 
LINQ
LINQLINQ
LINQ
 
Lect04 functions
Lect04 functionsLect04 functions
Lect04 functions
 
Nmlt c15 ham_nangcao_phan1_in
Nmlt c15 ham_nangcao_phan1_inNmlt c15 ham_nangcao_phan1_in
Nmlt c15 ham_nangcao_phan1_in
 
Android Nâng cao-Bài 4: Content Provider
Android Nâng cao-Bài 4: Content ProviderAndroid Nâng cao-Bài 4: Content Provider
Android Nâng cao-Bài 4: Content Provider
 
Tu-Hoc-Python-Co-Ban-Trong-10-Phut-NIIT
Tu-Hoc-Python-Co-Ban-Trong-10-Phut-NIITTu-Hoc-Python-Co-Ban-Trong-10-Phut-NIIT
Tu-Hoc-Python-Co-Ban-Trong-10-Phut-NIIT
 

Recently uploaded

powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxAnAn97022
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhvanhathvc
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdfTrnHoa46
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNguyễn Đăng Quang
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líDr K-OGN
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdftohoanggiabao81
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Nguyen Thanh Tu Collection
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxendkay31
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...hoangtuansinh1
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................TrnHoa46
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Nguyen Thanh Tu Collection
 
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfVyTng986513
 

Recently uploaded (20)

powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptx
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdf
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
 
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
 

Python Beginner Class day-07-08-module

  • 1. Module & Function Th.S Trần Đức Lợi Pythonvietnam.info
  • 2. Ô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
  • 3. Mục đích bài họ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ó 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
  • 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á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
  • 10. 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
  • 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 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
  • 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à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
  • 16. 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
  • 17. 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
  • 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 • Document Strings • Tăng tính readable • Ví dụ: – Def func(): – ‘’’ Function name – I am the description’’’ – A =b PythonBeginnerClass @loitd #pythonvietnam.info
  • 20. Function: docstrings • Xem nộ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ụ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
  • 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 • 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
  • 26. 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
  • 27. 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
  • 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ộ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
  • 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ụ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
  • 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à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
  • 36. 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