1 of 31

BÀI 26:

HÀM TRONG PYTHON

2 of 31

MỤC TIÊU

Hàm là chương trình con

Cách tạo hàm trong python

3 of 31

HÀM TRONG PYTHON

Hàm là gì?

Viết chương trình nhập số tự nhiên n là số học sinh, sau đó nhập họ và tên học sinh. Lưu họ tên học sinh vào một danh sách. In danh sách ra màn hình mỗi họ tên trên một dòng.

Viết chương trình nhập số tự nhiên n rồi nhập n họ tên học sinh. Sau đó yêu cầu nhập một tên và thông báo số bạn có cùng tên đó trong lớp.

Viết chương trình nhập số tự nhiên n, rồi nhập họ tên của n học sinh. Sau đó in ra danh sách tên học sinh theo hai cột, cột 1 là tên, cột 2 là họ đệm.

Viết chương trình nhập số học sinh và họ tên học sinh. Sau đó đếm xem trong danh sách có bao nhiêu bạn tên là Hương.

n=int(input("Nhập số học sinh trong lớp: "))

dslop=[]

for i in range(n):

hoten=input(“Nhập họ tên học sinh thứ “ + str(i+1) + “: “)

dslop.append(hoten)

Nhập_danh_sách_hoc_sinh()

Hàm

4 of 31

HÀM TRONG PYTHON

Hàm là gì?

Hàm

- Hàm là một câu lệnh được dùng thay cho một khối lệnh

- Hàm là chương trình con

5 of 31

Nhập_danh_sách_hoc_sinh()

Tạo hàm và gọi hàm

HÀM TRONG PYTHON

n=int(input("Nhập số học sinh trong lớp: "))

dslop=[]

for i in range(n):

hoten=input(“Nhập họ tên học sinh thứ “ + str(i+1) + “: “)

dslop.append(hoten)

def

:

Nhập_danh_sách_hoc_sinh()

Tạo hàm

Gọi hàm

6 of 31

Tạo hàm và gọi hàm

HÀM TRONG PYTHON

def tên hàm(<danh sách tham số>):

<khối lệnh>

tên hàm(<danh sách tham số>)

Tạo hàm

Gọi hàm

7 of 31

Tạo hàm và gọi hàm

HÀM TRONG PYTHON

8 of 31

Tham số của hàm

def Nhập_danh_sách_hoc_sinh()

n=int(input("Nhập số học sinh trong lớp: "))

dslop=[]

For i in range(n):

hoten=input(“Nhập họ tên học sinh thứ “ + str(i+1) + “: “)

dslop.append(hoten)

def Nhập_danh_sách_hoc_sinh(n)

dslop=[]

for i in range(n):

hoten=input(“Nhập họ tên học sinh thứ “ + str(i+1) + “: “)

dslop.append(hoten)

Nhập_danh_sách_học_sinh()

Nhập_danh_sách_học_sinh(5)

Hàm không có tham số

HÀM TRONG PYTHON

Hàm có tham số

9 of 31

Tham số của hàm

HÀM TRONG PYTHON

10 of 31

Giá trị trả lại

def tên hàm(<tham số>):

<khối lênh>

Hàm

def tên hàm(<tham số>):

<khối lệnh>

return <giá trị trả về>

Hàm trả lại giá trị

def tên hàm(tham số):

<khối lệnh>

return

Hàm không trả lại giá trị

HÀM TRONG PYTHON

11 of 31

Trả lại giá trị

HÀM TRONG PYTHON

12 of 31

MỘT SỐ HÀM THIẾT KẾ SẴN CỦA PYTHON 1

THIẾT LẬP CÁC HÀM TỰ ĐỊNH NGHĨA 2

13 of 31

MỘT SỐ HÀM THIẾT KẾ SẴN CỦA PYTHON 1

Hàm(Lệnh)

Tên hàm

Tham số

Giá trị trả lại

print(“Thời khóa biểu”)

print

“Thời hóa biểu”

‘Thời khóa biểu’

int(“52”)

int

“52”

52

y=5.2

type(y)

type

Biến y

5.2

Kiểu dữ liệu của biến y

float

print(“Xin chào”)

print(5+4*3-6)

14 of 31

MỘT SỐ HÀM THIẾT KẾ SẴN CỦA PYTHON 1

Hàm(Lệnh)

Tham số

Giá trị trả lại

float()

Xâu kí tự chữ số, số nguyên

Kiểu dữ liệu số thực

str()

Các kiểu dữ liệu

Kiểu dữ liệu xâu kí tự

len()

Danh sách, xâu kí tự

Độ dài danh sách hoặc xâu kí tự

list()

Các kiểu dữ liệu

Kiểu dữ liệu danh sách

15 of 31

MỘT SỐ HÀM THIẾT KẾ SẴN CỦA PYTHON 1

THIẾT LẬP CÁC HÀM TỰ ĐỊNH NGHĨA 2

16 of 31

THIẾT LẬP CÁC HÀM TỰ ĐỊNH NGHĨA 2

def inc(n):

n=n+1

return n

17 of 31

THIẾT LẬP CÁC HÀM TỰ ĐỊNH NGHĨA 2

18 of 31

THIẾT LẬP CÁC HÀM TỰ ĐỊNH NGHĨA 2

Hàm trong Python được định nghĩa bằng từ khóa def, theo sau là tên hàm

Hàm có thể có hoặc không có tham số

Khối lệnh mô tả hàm được viết sau dấu “:” và viết lùi vào, thẳng hàng

Hàm có thể có hoặc không có giá trị trả lại sau từ khóa return

19 of 31

THIẾT LẬP CÁC HÀM TỰ ĐỊNH NGHĨA 2

a) - Cách thiết lập: Hàm được định nghĩa bằng từ khoá def, theo sau là tên hàm Nhap_xau(). Hàm không có tham số, khối lệnh mô tả hàm được viết sau dấu “:”. Hàm trả về giá trị msg.

- Chức năng: Nhập và trả về một xâu kí tự

b) - Cách thiết lập: Hàm được định nghĩa bằng từ khoá def, theo sau là tên hàm Inday(n). Hàm có tham số, khối lệnh mô tả hàm được viết sau dấu “:”. Hàm không có giá trị trả về.

- Chức năng: Hiển thị ra màn hình một dãy số từ 0 tới n - 1

20 of 31

THỰC HÀNH

21 of 31

THỰC HÀNH

Nhiệm vụ 1.

Viết hàm yêu cầu người dùng nhập họ tên rồi đưa lời chào ra màn hình

22 of 31

THỰC HÀNH

Nhiệm vụ 2.

Viết hàm prime(n) với tham số là số tự nhiên n và trả lại True nếu n là số nguyên tố, trả lại False nếu n không phải là số nguyên tố.

n=7:

k=1: n%k==0 (Đúng) 🡪 C=0+1=1

k=2: n%k==0 (Sai)

k=3: n%k==0 (Sai)

k=4: n%k==0 (Sai)

k=5: n%k==0 (Sai)

k=6: n%k==0 (Sai)

KQ: C=1 🡪 True 🡪 7 là số nguyên tố

n=6:

k=1: n%k==0 (Đúng) 🡪 C=0+1=1

k=2: n%k==0 (Đúng) 🡪 C=1+1=2

k=3: n%k==0 (Đúng) 🡪 C=2+1=3

k=4: n%k==0 (Sai)

k=5: n%k==0 (Sai)

KQ: C=3 🡪 False 🡪 6 không phải là số nguyên tố

23 of 31

THỰC HÀNH

Nhiệm vụ 2.

Viết hàm prime(n) với tham số là số tự nhiên n và trả lại True nếu n là số nguyên tố, trả lại False nếu n không phải là số nguyên tố.

24 of 31

LUYỆN TẬP

def prime(m):

    c=0

    k=1

    while k<m:

        if m%k==0:

            c=c+1

        k=k+1

    if c==1:

        return True

    else:

        return False

1. Hàm in ra các số là ước nguyên tố của n:

def Uoc_nguyen_to(n)

for i in range(1,n+1):

    if n%i==0 and prime(i)==True:

        print(i, end=" ")

25 of 31

LUYỆN TẬP

26 of 31

LUYỆN TẬP

2.

def numbers(s):

    c=0

    for ch in s:

        if '0'<=ch<='9’:

c=c+1

    return c

numbers(“a1b2c3”)

c=0

ch=“a”: ĐK sai

ch=“1”: ĐK đúng 🡪 c=0+1=1

ch=“b”: ĐK sai

ch=“2”: ĐK đúng 🡪 c=1+1=2

ch=“c”: ĐK sai

ch=“3”: ĐK đúng 🡪 c=2+1=3

KQ: 3

27 of 31

LUYỆN TẬP

28 of 31

VẬN DỤNG

1.

- Ý nghĩa của các lệnh return: Trả về giá trị True hoặc False và thoát ra ngoài hàm ngay

- Hàm này tối ưu hơn so với hàm prime đã được mô tả trong phần thực hành do có thể trả về giá trị True hoặc False ngay mà không cần thực hiện hết các câu lệnh tới cuối.

29 of 31

VẬN DỤNG

def numbers(s):

    C=0

    for ch in s:

        if '0'<=ch<='9':

             C=C+1

    return C

def characters(s):

    C=0

    for ch in s:

        if 'a'<=ch<='z' or 'A'<=ch<='Z':

             C=C+1

    return C

s=input("Nhập xâu kí tự")

print("Số kí tự chữ số trong xâu s là: ", numbers(s))

print("Số kí tự chữ cái trong xâu s là: ", characters(s))

30 of 31

VẬN DỤNG

31 of 31

THANK YOU!