4 bài tập Python lớp 9 về hàm và tư duy giải bài có lời giải

Học cách viết và gọi hàm qua 4 bài tập Python lớp 9: tính hình học, kiểm tra số, xử lý danh sách và xây dựng menu.

4 bài tập Python lớp 9 về hàm và tư duy giải bài có lời giải

4 bài tập Python lớp 9 về hàm và tư duy giải bài có lời giải

Hàm là một nhóm lệnh được đặt tên để thực hiện một nhiệm vụ. Khi viết hàm, em có thể dùng lại logic nhiều lần, chương trình ngắn gọn và dễ kiểm tra hơn. Cú pháp cơ bản là def ten_ham(tham_so):, sau đó dùng return để trả kết quả. Học hàm cũng giúp em tập thói quen chia một bài toán lớn thành những phần nhỏ.

Bốn bài tập sau đây phù hợp để ôn Python lớp 9 sau khi đã học biến, điều kiện, vòng lặp, danh sách và chuỗi. Mỗi bài có gợi ý, lời giải đầy đủ và phần giải thích. Em hãy thử tự viết trước, sau đó copy code vào tệp Python để chạy trên máy.

Nguyên tắc viết hàm dễ hiểu

Mỗi hàm nên làm một việc rõ ràng. Tên hàm nên nói lên nhiệm vụ, tham số là dữ liệu đầu vào và giá trị trả về là kết quả. Nếu hàm chỉ in ra màn hình, có thể dùng print; nếu muốn kết quả được sử dụng tiếp, nên dùng return.

Bài 1: Viết hàm tính diện tích hình chữ nhật

Đề bài: Viết hàm dien_tich_hcn(dai, rong) trả về diện tích hình chữ nhật. Chương trình chính nhập chiều dài, chiều rộng và in kết quả.

Gợi ý

Trong hàm, kiểm tra hai kích thước có dương không. Nếu hợp lệ, trả về dai * rong; nếu không, trả về None và thông báo lỗi ở chương trình chính.

Lời giải hoàn chỉnh

def dien_tich_hcn(dai, rong):
    if dai <= 0 or rong <= 0:
        return None
    return dai * rong

dai = float(input("Nhập chiều dài: "))
rong = float(input("Nhập chiều rộng: "))
dien_tich = dien_tich_hcn(dai, rong)

if dien_tich is None:
    print("Kích thước phải lớn hơn 0")
else:
    print(f"Diện tích hình chữ nhật là {dien_tich:.2f}")

Giải thích: Hàm nhận hai tham số và trả về kết quả. return None biểu thị dữ liệu không hợp lệ. Sau khi gọi hàm, chương trình chính kiểm tra kết quả rồi mới in. Em có thể gọi cùng hàm nhiều lần với các cặp số khác nhau.

Bài 2: Hàm kiểm tra số nguyên tố

Đề bài: Viết hàm la_nguyen_to(n) trả về True nếu n là số nguyên tố, ngược lại trả về False. Dùng hàm để kiểm tra một số nhập từ bàn phím.

Gợi ý

Số nhỏ hơn 2 không phải số nguyên tố. Dùng vòng lặp từ 2 đến căn bậc hai của n. Khi tìm thấy ước, trả về False; nếu không tìm thấy, trả về True.

Lời giải hoàn chỉnh

import math

def la_nguyen_to(n):
    if n < 2:
        return False
    for i in range(2, math.isqrt(n) + 1):
        if n % i == 0:
            return False
    return True

n = int(input("Nhập n: "))
if la_nguyen_to(n):
    print(f"{n} là số nguyên tố")
else:
    print(f"{n} không phải số nguyên tố")

Giải thích: Hàm có thể được dùng ở nhiều nơi mà không cần viết lại thuật toán. return False dừng hàm ngay khi phát hiện ước. Khi mọi vòng lặp kết thúc, n không có ước khác nên trả về True. Hãy thử 2, 17, 25, 1 và số âm.

Bài 3: Hàm tính tổng các số chẵn

Đề bài: Viết hàm nhận một danh sách số nguyên và trả về tổng các số chẵn trong danh sách. Nếu danh sách rỗng, kết quả là 0.

Gợi ý

Tạo biến tong = 0. Duyệt từng số, nếu so % 2 == 0 thì cộng vào tổng. Cuối hàm dùng return tong.

Lời giải hoàn chỉnh

def tong_so_chan(danh_sach):
    tong = 0
    for so in danh_sach:
        if so % 2 == 0:
            tong += so
    return tong

dong = input("Nhập các số nguyên: ")
danh_sach = [int(x) for x in dong.split()]
print("Tổng các số chẵn là:", tong_so_chan(danh_sach))

Giải thích: Hàm không cần biết danh sách được tạo ở đâu, chỉ nhận dữ liệu qua tham số. Việc trả về kết quả giúp ta có thể gán vào biến, in ra hoặc dùng tiếp trong một phép tính khác. Thử danh sách toàn số lẻ, danh sách có số âm và dòng nhập rỗng.

Bài 4: Xây dựng menu tính toán bằng hàm

Đề bài: Viết chương trình hiển thị menu gồm cộng, trừ, nhân và chia. Mỗi phép tính là một hàm riêng. Người dùng chọn phép tính, nhập hai số rồi nhận kết quả.

Gợi ý

Tạo bốn hàm nhỏ. Dùng if/elif để chọn hàm tương ứng. Trước khi chia, kiểm tra số thứ hai có bằng 0 không.

Lời giải hoàn chỉnh

def cong(a, b):
    return a + b

def tru(a, b):
    return a - b

def nhan(a, b):
    return a * b

def chia(a, b):
    if b == 0:
        return None
    return a / b

print("1. Cộng")
print("2. Trừ")
print("3. Nhân")
print("4. Chia")
chon = input("Chọn phép tính: ")
a = float(input("Nhập a: "))
b = float(input("Nhập b: "))

if chon == "1":
    ket_qua = cong(a, b)
elif chon == "2":
    ket_qua = tru(a, b)
elif chon == "3":
    ket_qua = nhan(a, b)
elif chon == "4":
    ket_qua = chia(a, b)
else:
    ket_qua = "Lựa chọn không hợp lệ"

if ket_qua is None:
    print("Không thể chia cho 0")
else:
    print("Kết quả:", ket_qua)

Giải thích: Mỗi hàm chỉ xử lý một phép tính nên dễ đọc và dễ sửa. Biến ket_qua có thể là số hoặc thông báo. Trường hợp chia cho 0 trả về None, sau đó chương trình chính xử lý thay vì để chương trình bị dừng vì lỗi.

Tổng kết

Hàm giúp chương trình Python rõ ràng, tái sử dụng được và dễ kiểm thử. Em nên ôn lại biến, input và output, câu lệnh điều kiện, vòng lặp và danh sách, chuỗi để thấy các kiến thức kết hợp với nhau như thế nào.

Thử thách: viết hàm tính chu vi hình tròn, hàm đếm số nguyên tố trong danh sách và cải tiến menu để chương trình lặp lại cho đến khi người dùng chọn thoát.

Từ khoá: 4 bai tap python lop 9 ve ham va tu duy giai bai co loi giai, bài tập Python lớp 9 về hàm, function Python có lời giải, bài tập tư duy Python

How To 60s

How To 60s

How To 60s - Tổng hợp Giáo án và đề thi THCS chương trình mới KNTT, CTST. Thủ thuật excel, word, powerpoint, windows. Mẹo vặt máy tính giúp công việc đơn giản hơn. Chia sẻ những kinh nghiệm, thủ thuật hay trong công việc và cuộc sống hàng ngày