Tin học 10 Kết nối tri thức Bài 26: Hàm trong Python

Lý thuyết Tin 10 Kết nối tri thức Bài 26: Hàm trong Python

1. Một số hàm thiết kế sẵn

Bảng 26.1. Một số lệnh trong Python

abs()
len()
range()
bool()
float()

list()
round()
chr()
input()
ord()

str()
divmod()
int()
print()
type()


Các lệnh trong Bảng 26.1:

 + Đều có dấu đóng mở ngoặc đi sau tên lệnh. 

+ Bên trong dấu ngoặc là các tham số, có thể là các đại lượng, các biến hoặc biểu thức. 

Ví dụ một số lệnh trong Python:

>>> abs(-5)                 (Trị tuyệt đối)

5

>>> chr(65)                 (Trả lại kí tự tương ứng trong  bảng mã ASCII)
'A'

>>> ord("A")                (Trả lại vị trí tương ứng trong bảng mã ASCII)

65

Bài 26. Hàm trong Python SGK Tin học 10 Kết nối tri thức

- Cú pháp câu lệnh gọi hàm: 

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

- Hàm trong Python được phân làm hai loại: 

+ Hàm có giá trị trả lại: input(), int(), divmod(),... 

+ Hàm không có giá trị trả lại: print().

? Củng cố: Mô tả tham số và giá trị trả lại của mỗi hàm sau: float(), str(), len(), list()


Gợi ý trả lời SGK Tin học 10 kntt trang 126

ĐÁP ÁN: Hiện

Hàm

Tham số

Ý nghĩa

float()

x có thể là số
hoặc xâu kí tự.

Chuyển x
sang số
thập phân.

str(x)

x có thể là số
hoặc xâu kí tự.

Chuyển x
sang xâu
kí tự.

len(x)

x là danh sách
hoặc xâu kí tự.

Độ dài của
đối tượng
x

list(x)

x là xâu kí tự
hoặc hàm
range().

Chuyển x
sang danh
sách.


2. Thiết lập các hàm tự định nghĩa

Gợi ý trả lời sgk tin học 10-Sách Kết nối tri thức, Bài 26

+ Hàm trong Python được định nghĩa bằng từ khóa def, theo sau là tên hàm (tên hàm sẽ theo quy tắc đặt tên địa danh).

+ 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.

- Cú pháp thiết lập hàm có trả lại giá trị:

Bài 26 Tin 10 Kết nối tri thức lý thuyết

Ví dụ: Xây dựng hàm tính tổng và tích 2 số nguyên a,b có trả lại giá trị


Cách 1.

def Tong(a,b):
    return a+b
def Tich(a,b):    
    return a*b
a=int(input("Nhập số nguyên a: "))
b=int(input("Nhập số nguyên b: "))
print(a,"+",b,"=",Tong(a,b))
print(a,"x",b,"=",Tich(a,b))

Cách 2.

def Tong(a,b):
    T=a+b
    return T
def Tich(a,b):
    Tich=a*b
    return Tich
a=int(input("Nhập số nguyên a: "))
b=int(input("Nhập số nguyên b: "))
print(a,"+",b,"=",Tong(a,b))
print(a,"x",b,"=",Tich(a,b))

Cách 3.

def Tong(a,b):
    T=a+b
    return T
def Tich(a,b):
    Ti=a*b
    return Ti
x=int(input("Nhập số nguyên a: "))
y=int(input("Nhập số nguyên b: "))
print(x,"+",y,"=",Tong(x,y))
print(x,"x",y,"=",Tich(x,y))

Cách 4.

def Tong():
    T=a+b
    return T
def Tich():
    Ti=a*b
    return Ti
a=int(input("Nhập số nguyên a: "))
b=int(input("Nhập số nguyên b: "))
print(a,"+",b,"=",Tong())
print(a,"x",b,"=",Tich())

- Cú pháp thiết lập hàm không trả lại giá trị:

Bài tập Python: Thực hành tạo hàm trong Python

Ví dụ: Xây dựng hàm tính tổng và tích 2 số nguyên a,b không trả lại giá trị

Cách 1.

def Tong(a,b):
    print(a,"+",b,"=",a+b)
def tich(a,b):    
    print(a,"x",b,"=",a*b)
a=int(input("Nhập số nguyên a: "))
b=int(input("Nhập số nguyên b: "))
Tong(a,b)
tich(a,b)

Cách 2.

def Tong(a,b):
    T=a+b
    print(a,"+",b,"=",T)
def tich(a,b):
    Ti=a*b
    print(a,"x",b,"=",Ti)
a=int(input("Nhập số nguyên a: "))
b=int(input("Nhập số nguyên b: "))
Tong(a,b)
tich(a,b)

Cách 3.

def Tong(a,b):
    T=a+b
    print(a,"+",b,"=",T)
def tich(a,b):
    Ti=a*b
    print(a,"x",b,"=",Ti)
x=int(input("Nhập số nguyên a: "))
y=int(input("Nhập số nguyên b: "))
Tong(x,y)
tich(x,y)

Cách 4.

def Tong():
    T=a+b
    print(a,"+",b,"=",T)
def tich():
    Ti=a*b
    print(a,"x",b,"=",Ti)
a=int(input("Nhập số nguyên a: "))
b=int(input("Nhập số nguyên b: "))
Tong()
tich()

?Quan sát các hàm sau, giải thích cách thiết lập và chức năng của mỗi hàm:

Gợi ý giải bài tập SGK Tin học 10 trang 129 KNTT

Bài tập về hàm


ĐÁP ÁN: Hiện
a) Hàm sẽ yêu cầu người dùng nhập một xâu, sau đó trả về xâu đó.
b) Hàm có tham số là n, hàm thực hiện in dãy các số 0, 1, ..., n - 1 trên một dòng

Thực Hành 

Thiết lập hàm trong Python. 

 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. 

Bài tập Python có lời giải


Nhiệm vụ 2. Viết hàm prime() 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ố. 

Hướng dẫn: Số nguyên tố là số tự nhiên lớn hơn 1, không có ước nào ngoài 1 và chính nó. Để thiết lập hàm prime(n) chúng ta cần tính số ước thực sự của n (từ 1 đến n – 1). Biến C dùng để đếm các số ước thực sự của n. Khi đó, n sẽ là số nguyên tố khi và chỉ khi C =1. 

 Hàm prime(n) và chương tình có thể được thiết lập như sau:

Giải Tin học 10 kết nối bài 26: Hàm trong Python


Luyện tập 

Gợi ý giải bài tập luyện tập SGK Tin học 10 trang 130 KNTT


1. 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.
Để tìm các ước nguyên tố của một số thì ta tìm các ước của số đó trước, rồi xét xem trong các ước đó, ước nào là số nguyên tố thì số đó được gọi là ước nguyên tố của số đã cho.
+ Để tìm các ước của số 23 ta lấy 23 lần lượt chia cho các số tự nhiên từ 1 đến 23. Các phép chia hết là: 23 : 1 = 23; 23 : 23 = 1.
Do đó các ước của số 23 là: 1; 23, trong hai ước này ta thấy số 23 là số nguyên tố (vì nó lớn hơn 1 và chỉ có hai ước là 1 và chính nó)
Vậy ước nguyên tố của số 23 là 23.
(Cách giải khác: Vì 23 là số nguyên tố nên ước nguyên tố của 23 là 23.)
+ Để tìm các ước của số 24 ta lấy 24 lần lượt chia cho các số tự nhiên từ 1 đến 24. Các phép chia hết là:
24 : 1 = 24; 24 : 2 = 12; 24 : 3 = 8; 24 : 4 = 6; 24: 6 = 4; 24 : 8 = 3; 24 : 12 = 2; 24 : 24 = 1
Do đó các ước của số 24 là: 1; 2; 3; 4; 6; 8; 12; 24, trong đó chỉ có 2 và 3 là số nguyên tố (vì nó lớn hơn 1 và chỉ có 2 ước là 1 và chính nó)
Vậy các ước nguyên tố của số 24 là: 2 và 3.
+ Để tìm các ước của số 26 ta lấy 26 lần lượt chia cho các số tự nhiên từ 1 đến 26. Các phép chia hết là:
26 : 1 = 26; 26 : 2 = 13; 26 : 13 = 2; 26 : 26 = 1
Do đó các ước của số 26 là: 1; 2; 13; 26, trong đó chỉ có số 2 và 13 là số nguyên tố (vì nó lớn hơn 1 và chỉ có 2 ước là 1 và chính nó)
Vậy các ước nguyên tố của 26 là: 2 và 13
+ Để tìm các ước của số 27 ta lấy 27 lần lượt chia cho các số tự nhiên từ 1 đến 27. Các phép chia hết là:
27 : 1 = 27; 27 : 3 = 9; 27 : 9 = 3; 27 : 27 = 1
Do đó các ước của số 27 là: 1; 3; 9; 27, trong đó chỉ có số 3 là số nguyên tố (vì nó lớn hơn 1 và chỉ có 2 ước là 1 và chính nó)
Vậy ước nguyên tố của 27 là: 3.

Cách 1

ĐÁP ÁN: Hiện
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 In_uocso_nt(n):
    for k in range(2,n+1):
        if n%k==0 and prime(k):
            print(k,end=" ")
n=int(input("Nhập số tự nhiên n:"))
print("Các ước số nguyên tố của",n,"là")
In_uocso_nt(n)

Cách 1

ĐÁP ÁN: Hiện
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
n=int(input("Nhập số tự nhiên n:"))
for i in range(1,n+1):
    if n%i==0 and prime(i)==True:
        print(i, end=" ")
2. Luyện tập 2.Viết hàm numbers(s) đếm số các chữ số có trong xâu s.
Ví dụ numbers("0101abc") = 4.

Cách 1

ĐÁP ÁN: Hiện
def numbers(s):
    count=0
    for ch in s:
        if "0"<=ch<="9":
            count=count+1
    return count
#Chương trình chính
s=input("Nhập xâu bất kì gồm chữ và số: ")
print("Các chữ số trong xâu s là: ",numbers(s)) 

Cách 2

ĐÁP ÁN: Hiện
s=input("Nhập vào xâu s:")
def numbers(s):
    c=0
    for i in s:
        if i.isdigit():
            c=c+1
    return c
print(numbers(s)) 
Luyện tập 3Viết hàm tính điểm trung bình (TbTin) thi lý thuyết và điểm thi thực hành môn Tin học. Biết lý thuyết hệ số 1, thực hành hệ số 2. Sau đó, in ra điểm trung bình môn Tin học. Điểm trung bình làm tròn lên 01 chữ số thập phân.
ĐÁP ÁN: Hiện
def TBMcn(HKI,HKII):
    TBM=(HKI+HKII*2)/3
    return TBM
a=float(input("Nhập điểm HKI: "))
b=float(input("Nhập điểm HKII: "))
print("Điểm TBMcn Toán:",round(TBMcn(a,b),1))
Luyện tập 4. Chỉ số sức khỏe BMI của con người được định nghĩa theo công thức sau: BMI=m/h2. Trong đó m là khối lượng cơ thể tính bằng kg, h là chiều cao tính theo mét. Viết hàm tính chỉ số BMI theo tham số m, h. Sau đó, in ra màn hình chỉ số sức khỏe BMI.
ĐÁP ÁN: Hiện
def BMI(m,h):
        return m/h**2
mass=float(input("Nhập cân nặng cuả bạn: "))
h=float(input("Nhập chiều cao của bạn : "))
print("Chi so BMI cua bạn: ",BMI(mass,h))

VẬN DỤNG. 

CÂU 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.

Giải Tin học 10 Bài 26 (Kết nối tri thức): Hàm trong python



Gợi ý Giải bài tập phần vận dụng 1 Tin học 10 trang 130 KNTT

ĐÁP ÁN: Hiện
- Hàm này có ba lần thực hiện lệnh return:
+ Lần return thứ nhất kiểm tra nếu n < 2 thì dừng ngay và trả về False.
+ Lần return thứ hai nếu tìm ra số k là ước của n thì dừng lại ngay và trả về False.
+ Cuối cùng mới return True thông báo n là số nguyên tố.
+ 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.
→ Các viết hàm như trên sẽ tối ưu hơn hàm ở Nhiệm vụ 2, phần thực hành.
CÂU 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.

Gợi ý Giải bài tập phần vận dụng 2 Tin học 10 trang 130 KNTT

Hàm đếm số các kí tự là chữ số trong xâu:
ĐÁP ÁN: Hiện
def numbers(s):
    count=0
    for ch in s:
        if ch in "0123456789":
             count=count+1
    return count
Hàm đếm số các kí tự là chữ cái tiếng Anh trong xâu:
ĐÁP ÁN: Hiện
def characters(s):
    count=0
    for ch in s:
        if "A"<=ch<="Z" or "a"<=ch<="z":
             count=count+1
    return count
Chương trình Hoàn chỉnh đếm chữ số và chữ cái trong tiếng Anh trong xâu bằng Python
ĐÁP ÁN: Hiện
def numbers(s):
    count=0
    for ch in s:
        if ch in "0123456789":
             count=count+1
    return count
def characters(s):
    count=0
    for ch in s:
        if "A"<=ch<="Z" or "a"<=ch<="z":
             count=count+1
    return count
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))
CÙNG CHUYÊN MỤC:

Chủ đề 1: Máy tính và xã hội tri thức
Lý thuyết: Bài 1-Thông tin và dữ liệu
Lý thuyết: Bài 2-Vai trò của thiết bị thông minh và tin học đối với xã hội
Chủ đề 2: Mạng máy tính và Internet
Lý thuyết: Bài 8-Mạng máy tính trong cuộc sống hiện đại
Lý thuyết: Bài 9-An toàn trên không gian mạng
Chủ đề 3: Đạo đức, pháp luật và văn hóa trong môi trường số
Lý thuyết: Bài 11-Ứng dụng trên môi trường số. Nghĩa vụ tôn trọng bản quyền
Chủ đề 5: Giải quyết vấn đề với sự trợ giúp của máy tính
Lý thuyết: Bài 16-Ngôn ngữ lập trình bậc cao và Python
Lý thuyết: Bài 17-Biến và lệnh gán
Lý thuyết: Bài 18-Các lệnh vào ra đơn giản
Lý thuyết: Bài 19-Câu lệnh điều kiện if
Lý thuyết: Bài 20-Câu lệnh lặp for
Lý thuyết: Bài 21-Câu lệnh lặp while
Lý thuyết: Bài 22-Kiểu dữ liệu danh sách
Lý thuyết: Bài 23-Một số lệnh làm việc với dữ liệu danh sách
Lý thuyết: Bài 24-Xâu kí tự
Lý thuyết: Bài 25-Một số lệnh làm việc với xâu kí tự
Lý thuyết: Bài 26-Hàm trong Python
Lý thuyết: Bài 27-Tham số của hàm
Lý thuyết: Bài 28-Phạm vi của biến
Lý thuyết: Bài 29-Nhận biết lỗi chương trình
Lý thuyết: Bài 30-Kiểm thử và gỡ lỗi chương trình
Lý thuyết: Bài 31-Thực hành viết chương trình đơn giản
Lý thuyết: Bài 32-Ôn tập lập trình Python
Chủ đề 6: Hướng nghiệp với Tin học
Lý thuyết: Bài 33-Nghề thiết kế đồ hoạ máy tính
Lý thuyết: Bài 34-Nghề phát triển phần mềm

Next Post Previous Post
No Comment
Add Comment
comment url