Giải Tin học 10 Bài 26: Hàm trong python
Khởi động
Em có thể kể tên một số hàm trong số các lệnh đã học hay không? Các hàm đó có những đặc điểm chung gì?
Trả lời:
Một số hàm trong các lệnh đã học như hàm len(); str(); int()…có đặc điểm là có thể dùng tùy ý ở mọi nơi mình trong chương trình.
1. Một số hàm thiết kế sẵn của Python
Hoạt động
Hoạt động 1 trang 127 Tin học 10: Tìm hiểu một số hàm của Python
Quan sát một số câu lệnh trong bảng 26.1 và cho biết những câu lệnh có điểm chung gì.
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( ) |
Trả lời:
- Về hình thức: các lệnh đều có các dấu mở đóng ngoặc đi sau tên lệnh
- Bên trong dấu ngoặc, có thể ghi thêm tham số: các đại lượng, các biến, hoặc trong một số trường hợp, có cả biểu thức.
Câu hỏi
Trả lời:
+ float() chỉ có một tham số duy nhất, có thể là số nguyên hoặc số thập phân. Kết quả trả về là một số dấu phẩy động tương ứng.
+ str() sẽ đưa đối tượng được chọn về dạng chuỗi.
+ len() tham số là chuỗi, trả về số lượng chuỗi
+ list() tham số là chuỗi, hàm này có tác dụng chuyển đổi kiểu dữ liệu của một biến sang dạng danh sách.
2. Thiết lập các hàm tự định nghĩa
Hoạt động
Hoạt động 2 trang 128 Tin học 10: Cách thiết lập hàm trong Python
Quan sát các ví dụ sau để biết cách viết hàm.
Trả lời:
- 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 định 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ị:
def
return
- Cú pháp thiết lập hàm không trả lại giá trị:
def
return
Ví dụ:
>>> def inc(n):
return n+1
>>> inc(3)
4
Câu hỏi
a) def Nhap_xau ( ): msg = input(“Nhập một xâu: ”) return msg |
b) def Inday (n): for k in range (n): print (k, end = “ ”) |
Trả lời:
a) Thiết lập hàm có giá trị trả về là msg, hàm có chức năng nhập một xâu bất kì.
b) Thiết lập hàm không có giá trị trả về, hàm có chức năng in ra giá trị k từ 0 đến n-1.
Luyện tập
Gợi ý: Sử dụng hàm prime ( ) trong phần thực hành.
Trả lời:
import math
def KTNT(n): #Hàm kiểm tra số nguyên tố (Có thể dùng hàm prime trong SGK)
x=int(math.sqrt(n))+1
if n<2: return 0
for i in range(2,x):
if n%i==0:return 0
return 1
def UocNT(n):
for i in range(2,n+1):
if n%i==0 and KTNT(i)==1:print(i,end=' ')
#Gọi hàm
n=int(input("Nhập số tự nhiên: "))
print("Các ước nguyên tố của n là: ",end='')
UocNT(n)
Hình 1. Tìm ước là số nguyên tố
Hình 2. Kết quả chạy thử chương trình
Luyện tập 2 trang 130 Tin học 10: 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):
d=0
for i in s:
if i>='0' and i<='9': d=d+1
return d
print(numbers('010123abc'))
Vận dụng
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:
- Lệnh Return đầu tiên trả về không có giá trị khi n<2.
- Lệnh Return thứ 2 kiểm tra nếu số nhập vào lớn hơn 2 và chia hết k trong khoảng từ 1đến n thì trả về số đó là số nguyên tố, ngược lại trả về true.
- Hàm Prime() khác với phần thực hành là không phải sử dụng biến C để đếm ước thực sự.
- 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):
d=0
for i in s:
if i>='0' and i<='9': d=d+1
return d
def DemKT(s):
d=0
s=s.upper() #Biến xâu thành kí tự in hoa
for i in s:
m=ord(i) #Lấy mã Unicode từng kí tự của s đưa vào biến m
if m>=65 and m<=90:d=d+1
return d
#Gọi hàm
s=input("Nhập vào xâu kí tự:")
print("Số kí tự số trong xâu là:",numbers(s))
print("Số kí tự tiếng Anh trong xâu là:",DemKT(s))
Hình 1. Chương trình
Hình 2. Kết quả chạy thử
Xem thêm lời giải bài tập SGK Tin học 10 Kết nối tri thức hay, chi tiết khác: