BÀI 26: HÀM TRONG PYTHON

 


 

CHỦ ĐỀ 5 – BÀI 26 – TIN HỌC 10

Hàm Trong Python

Nội dung rút gọn đầy đủ kiến thức

A. Yêu Cầu Cần Đạt

  • Hiểu được khái niệm chương trình con (hàm) trong Python.
  • Biết cách tạo và sử dụng hàm.

I. Khái Niệm Hàm

Hàm (Function) là một khối lệnh thực hiện một công việc xác định. Khi cần sử dụng, chỉ cần gọi tên hàm thay vì viết lại toàn bộ chương trình.

Lợi ích của hàm:

♻️

Giảm lặp lại mã lệnh.

📖

Chương trình ngắn gọn, dễ đọc.

🔧

Dễ kiểm tra, sửa lỗi và tái sử dụng.

II. Một Số Hàm Có Sẵn Trong Python

HàmChức năng
print()Hiển thị dữ liệu ra màn hình
input()Nhập dữ liệu từ bàn phím
int()Chuyển sang số nguyên
float()Chuyển sang số thực
str()Chuyển sang chuỗi
bool()Chuyển sang kiểu logic
len()Đếm số phần tử hoặc số ký tự
list()Tạo danh sách
range()Tạo dãy số
round()Làm tròn số
abs()Giá trị tuyệt đối
type()Cho biết kiểu dữ liệu
ord()Mã Unicode của ký tự
divmod(a,b)Thương và số dư của phép chia

Ví dụ:

print("Xin chào")
x = int("25")
print(len("Python"))

III. Thiết Lập Hàm Tự Định Nghĩa

Python cho phép người dùng tự tạo hàm bằng từ khóa def.

Cú pháp:

def ten_ham(tham_so):
<Khối Lệnh>

• def: từ khóa khai báo hàm. • ten_ham: tên hàm do người dùng đặt. • tham_so: dữ liệu truyền vào (có thể có hoặc không).

Close-up of colorful programming code displayed on a monitor screen.

IV. Hàm Có Trả Về Giá Trị

Sử dụng return để trả kết quả. Khi gặp return, hàm kết thúc ngay.

Cú pháp:

def ten_ham(tham_so):
<Khối lệnh>
return gia_tri

Ví dụ:

def inc(n):
return n + 1
print(inc(3))

Kết quả: 4

V. Hàm Không Trả Về Giá Trị

Hàm không trả về giá trị chủ yếu thực hiện công việc như in ra màn hình, không cần gán cho biến.

Ví dụ:

def thong_bao(ten):
print("Xin chào", ten)
thong_bao("Minh")

Kết quả: Xin chào Minh

VI. So Sánh Hai Loại Hàm

Hàm trả về giá trịHàm không trả về giá trị
 return giá_trịKhông trả về dữ liệu
Dùng kết quả để tính toánChủ yếu thực hiện công việc như in, nhập
Có thể gán cho biếnKhông cần gán

Ví dụ:

tong = inc(5)
thong_bao("Lan")

VII. Ví Dụ Thực Hành

🔸 Ví dụ 1: Nhập tên và chào người dùng

def meeting():
ten = input("Nhập họ tên: ")
print("Xin chào", ten)
meeting()

🔸 Ví dụ 2: Kiểm tra số nguyên tố (tối ưu)

def prime(n):
if n < 2:
return False
k = 2
while k < n:
if n % k == 0:
return False
k += 1
return True

Ưu điểm: Gặp ước số thì kết thúc ngay → chạy nhanh hơn.

🔸 Hàm nhập xâu

def nhap_xau():
s = input("Nhập xâu: ")
return s

🔸 Hàm in dãy số

def inday(n):
for i in range(n):
print(i, end=" ")

IX. Bài Luyện Tập

Câu 1. Viết hàm với tham số là số tự nhiên n in ra các số là ước nguyên tố của n Gợi ý: Sử dụng hàm prime() trong phần thực hành.
def uoc_nt(n):
i = 2
while i <= n:
if n % i == 0:
if prime(i):
print(i, end=" ")
i += 1
Câu 2. Viết hàm numbers(s) đếm số các chữ số có trong xâu s Vi dụ numbers("0101abc") = 4
def numbers(s):
dem = 0
for c in s:
if c.isdigit():
dem += 1
return dem
print(numbers("0101abc"))

VIII. VẬN DỤNG

1. Trong khi viết hàm có thể có nhiều lệnh return. Quan sát hàm sau và giải thích ý nghĩa của những lệnh return. Hàm này có điểm gì khác so với hàm prime() đã được mô tả trong phần thực hành?

def prime(n):
if n < 2:
return False
k = 2
while k < n:
if n % k == 0:
return False
k = k + 1
return True

Ý nghĩa các lệnh return

return False (thứ nhất) — Khi n < 2, n không phải là số nguyên tố nên hàm trả về False và kết thúc ngay.

return False (thứ hai) — Khi tìm thấy k chia hết n, n không phải là số nguyên tố. Hàm dừng ngay, không cần kiểm tra các số còn lại.

return True — Nếu đã kiểm tra từ 2 đến n-1 mà không tìm thấy ước nào thì n là số nguyên tố.

Hàm này khác gì với hàm prime() ở phần thực hành?

Hàm trong phần thực hànhHàm ở bài vận dụng
Đếm số lượng ước của n rồi mới kết luận.Gặp ước số là kết thúc ngay.
Sử dụng biến đếm C.Không cần biến đếm.
Kiểm tra từ 1 đến n.Chỉ kiểm tra từ 2 đến n-1.
Thực hiện nhiều phép chia hơn.Nhanh hơn vì dừng ngay khi phát hiện không phải số nguyên tố.

Kết luận: Hàm trong bài vận dụng tối ưu hơn vì sử dụng nhiều lệnh return để kết thúc sớm, giúp giảm số lần kiểm tra.

2. Viết chương trình yêu cầu nhập từ bàn phím một xâu kí tự, sau đó thông báo:

  • Tổng số các kí tự là chữ số của xâu.
  • Tổng số các kí tự là chữ cái tiếng Anh trong xâu. Viết hàm cho mỗi yêu cầu trên.
def dem_chu_so(s):
dem = 0
for ch in s:
if ch.isdigit():
dem += 1
return dem
def dem_chu_cai(s):
dem = 0
for ch in s:
if ('A' <= ch <= 'Z') or ('a' <= ch <= 'z'):
dem += 1
return dem
# Chương trình chính
xau = input("Nhập một xâu ký tự: ")
print("Số ký tự là chữ số:", dem_chu_so(xau))
print("Số ký tự là chữ cái tiếng Anh:", dem_chu_cai(xau))

Ví dụ

Input: Python2026@AI

Output: Số ký tự là chữ số: 4 Số ký tự là chữ cái tiếng Anh: 8

Kiến thức cần nhớ

• return trả về kết quả và kết thúc hàm ngay lập tức. • Một hàm có thể có nhiều lệnh return. • Nên dùng nhiều return khi có thể kết luận sớm. • Dùng isdigit() để kiểm tra chữ số. • Kiểm tra chữ cái tiếng Anh bằng ('A' <= ch <= 'Z') or ('a' <= ch <= 'z'), hoặc ch.isalpha() and ch.isascii().

X. Ghi Nhớ

• Hàm giúp chương trình ngắn gọn, dễ quản lí và tái sử dụng. • Khai báo hàm bằng từ khóa def. • Hàm có thể có hoặc không có tham số. • Hàm có thể trả về giá trị (return) hoặc không. • Khi chương trình gặp return, hàm kết thúc ngay. • Có thể gọi một hàm nhiều lần trong chương trình. • Nên chia bài toán lớn thành nhiều hàm nhỏ để chương trình dễ hiểu và dễ bảo trì.

Fascinating blue spiral design with intricate geometric patterns.

"Chia để trị – hàm là chìa khóa để viết chương trình chuyên nghiệp!"

D. TRẮC NGHIỆM

Bài cũ hơn Bài mới hơn
Đọc tiếp:
Lên đầu trang