Giải Tin 10 Bài 26: Hàm trong Python KNTT
Giải Tin 10 Bài 26 KNTT
Giải Tin 10 Bài 26: Hàm trong Python KNTT được VnDoc.com sưu tầm và xin gửi tới bạn đọc cùng tham khảo.
Luyện tập 1 trang 130 SGK Tin 10 KNTT
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.
Lời giải
Chương trình:
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=" ")
Luyện tập 2 trang 130 SGK Tin 10 KNTT
Viết hàm numbers(s) đếm số các chữ số có trong xâu s.
Ví dụ numbers(“0101abc”) = 4.
Lời giải
Chương trình:
def numbers(s):
t=0
for ch in s:
if '0'<=ch<='9':
t=t+1
return t
Vận dụng 1 trang 130 SGK Tin 10 KNTT
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.
Lời giải
- Ý nghĩa của các lệnh return: Trả về giá trị True hoặc False và thoát ra ngoài hàm ngay
- 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ể tra 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.
Vận dụng 2 trang 130 SGK Tin 10 KNTT
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.
Lời giải
Chương trình:
def numbers(s):
t=0
for ch in s:
if '0'<=ch<='9':
t=t+1
return t
def characters(s):
t=0
for ch in s:
if 'a'<=ch<='z' or 'A'<=ch<='Z':
t=t+1
return t
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))
Trên đây VnDoc.com vừa gửi tới bạn đọc bài viết Giải Tin 10 Bài 26: Hàm trong Python KNTT. Hi vọng qua bài viết này bạn đọc có thêm nhiều tài liệu để học tập tốt hơn môn Tin 10 KNTT. Mời các bạn cùng tham khảo thêm tài liệu học tập các môn Toán 10 KNTT, Tiếng Anh 10 KNTT...