Hướng dẫn giải SGK Tin học 10 KNTT – Bài 28 Phạm vi của biến
LUYỆN TẬP
1. Viết hàm với đầu vào, đầu ra như sau:
– Đầu vào là danh sách sList, các phần tử là xâu kí tự.
– Đầu ra là danh sách cList, các phần tử là kí tự đầu tiên của các xâu kí tự tương ứng trong danh sách sList.
cList = []
def LayKiTuDau(sList):
for s in sList:
cList.append(s[0])
return cList
sList=['adư','rfe','htf','qte']
LayKiTuDau(sList)
print(cList)
2. Viết hàm Tach_day ( ) với đầu vào là danh sách A, đầu ra là hai danh sách B, C được mô tả như sau:
– Danh sách B thu được từ A bằng cách lấy ra các phần tử có chỉ số chẵn.
– Danh sách C thu được từ A bằng cách lấy ra các phần tử có chỉ số lẻ.
B = []
C = []
def tach_day(A):
for i in range(len(A)):
if i % 2 == 0:
B.append(A[i])
else:
C.append(A[i])
return B, C
A=[4,2,3,6,1,3,4]
tach_day(A)
print(B)
print(C)
VẬN DỤNG
1. Viết hàm có hai tham số đầu vào là m, n. Đầu ra trả lại hai giá trị là:
– ƯCLN của m, n.
– Bội chung nhỏ nhất (BCNN) của m, n
Gợi ý. Sử dụng công thức ƯCLN(m, n) × BCNN(m, n) = m × n.
def ucln_bcnn(m, n):
# Tìm ƯCLN
a = m
b = n
while b != 0:
r = a % b
a = b
b = r
ucln = a
# Tính BCNN
bcnn = m * n // ucln
# Trả về ƯCLN và BCNN
return ucln, bcnn
m = 12
n = 18
ucln, bcnn = ucln_bcnn(m, n)
print("ƯCLN của", m, "và", n, "là:", ucln)
print("BCNN của", m, "và", n, "là:", bcnn)
2. Viết chương trình nhập ba số tự nhiên từ bàn phím day, month, year, các số cách nhau bởi dấu cách. Các số này biểu diễn giá trị của ngày, tháng, năm nào đó. Chương trình cần kiểm tra và in ra thông báo số liệu đã nhập vào đó có hợp lệ hay không.
def is_valid_date(day, month, year):
# Kiểm tra năm
if year <= 0:
return False
# Kiểm tra tháng
if month < 1 or month > 12:
return False
# Kiểm tra số ngày của tháng
if month == 2:
if year % 4 == 0 and (year % 100 != 0 or year % 400 == 0):
max_day = 29
else:
max_day = 28
elif month in [4, 6, 9, 11]:
max_day = 30
else:
max_day = 31
if day < 1 or day > max_day:
return False
return True
# Nhập ba số nguyên
day, month, year = map(int, input("Nhập ngày/tháng/năm cách nhau bởi dấu cách: ").split())
# Kiểm tra tính hợp lệ của ngày tháng
if is_valid_date(day, month, year):
print("Số liệu đã nhập vào hợp lệ.")
else:
print("Số liệu đã nhập vào không hợp lệ.")