You are currently viewing GIẢI BÀI TẬP SGK TIN HỌC LỚP 10 KNTT – BÀI 26 HÀM TRONG PYTHON

GIẢI BÀI TẬP SGK TIN HỌC LỚP 10 KNTT – BÀI 26 HÀM TRONG PYTHON

Hướng dẫn giải SGK Tin học 10 KNTT – Bài 26 Hàm trong Python

LUYỆN TẬP

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

Trả lời:

def prime(n):
    C=0
    k=1
    while k<n:
        if n%k==0:
            C=C+1
        k=k+1
    if C==1:
        return True
    else:
        return False
def uocso_nto(n):
    for k in range(2,n+1):
        if n%k==0 and prime(k):
            print(k)

2. Viết hàm numbers(s) đếm số các chữ số có trong xâu s
Ví dụ numbers (“0101abc”)=4

Trả lời:

def numbers(s):
    dem=0
    for k in s:
        if k in '0123456789':
            dem=dem+1
    return dem

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
    C=0
    k=2
    while k<n:
        if n%k==0:
            return False
        k=k+1
    return True

Trả lời:

– Hàm trên có 3 lệnh return:

            + Lệnh return thứ nhất trả về False và kết thúc hàm nếu n<2 (n không phải số nguyên tố)

            + Lệnh return thứ 2 trả về False và kết thúc hàm nếu có 1 giá trị k là ước của n (khi đó n không phải số nguyên tố)

            + Lệnh return thứ 3 trả về True và kết thúc hàm (khi lệnh return thứ 3 được thực hiện tức là 2 lệnh return trên không xảy ra), khi đó n là số nguyên tố.

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.

Trả lời:

def numbers(s):
    dem=0
    for k in s:
        if k in '0123456789':
            dem=dem+1
    return dem
def english(s):
    dem=0
    for k in s:
        if 'a'<=k<='z' or 'A'<=k<='Z':
            dem=dem+1
    return dem
s=input('Nhập 1 xâu: ')
print('Số chữ số: ',numbers(s))
print('Số chữ cái tiếng Anh: ',english(s))

Trả lời