Giải Tin học 10 Bài 28: Phạm vi của biến
Khởi động
Trả lời:
Biến được khai báo trong chương trình chính thì sẽ được sử dụng trong hàm.
Trả lời:
Biến được khai báo trong hàm thì sẽ được sử dụng bên ngoài hàm.
1. Phạm vi của biến khi khai báo trong hàm
Hoạt động
Hoạt động 1 trang 136 Tin học 10: Phạm vi của biến khi khai báo trong hàm
Quan sát các lệnh sau để tìm hiểu phạm vi có hiệu lực của biến khi khai báo bên trong một hàm.
Trả lời:
Trong Python tất cả các biến khai báo bên trong hàm đều có tính địa phương (cục bộ), không có hiệu lực ở bên ngoài hàm.
Các biến được khai báo bên trong một hàm chỉ được sử dụng bên trong hàm đó, chương trình chính không sử dụng được.
Câu hỏi
Câu hỏi 1 trang 137 Tin học 10: Giả sử có các lệnh sau:
>>> a,b = 1,2
>>> def f(a,b):
a = a + b
b = b*a
return a + b
Giá trị của a, b bằng bao nhiêu sau khi thực hiện lệnh sau?
a) f(1, 2) b) f(10, 20)
Trả lời:
a) a = 1 + 2 = 3
b = 2 * 3 = 6
b) a = 10 + 20 = 30
b = 20 * 30 = 600
Trả lời:
Có thể khai báo biến bên trong hàm trùng với biến bên ngoài hàm.
2. Phạm vi của biến khai báo ngoài hàm
Hoạt động
Hoạt động 2 trang 137 Tin học 10: Phạm vi của biến khi khai báo bên ngoài hàm
Quan sát các lệnh sau, tìm hiểu phạm vi có hiệu lực của biến khi khai báo bên ngoài hàm.
Trả lời:
Biến khai báo bên ngoài hàm không có tác dụng bên trong hàm và biến ở bên trong hàm có thể truy cập để sử dụng giá trị của biến đã khai báo trước đó bên ngoài hàm.
Câu hỏi
Câu hỏi trang 138 Tin học 10: Giả sử hàm f(x,y) được định nghĩa như sau:
>>> def f(x,y)
a = 2* (x = y)
print (a + n)
Kết quả nào được in ra khi thực hiện các lệnh sau?
n = 10
f(1,2)
Trả lời:
Kết quả thu được là: 16
Luyện tập
Luyện tập 1 trang 140 Tin học 10: 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, ccas 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
Trả lời:
def Doc(slist):
n=len(slist)
clist=[0]*n
for i in range(n):
x=slist[i]
clist[i]=x[0]
return clist
- 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 B thu được từ A bằng cách lấy ra các phần tử có chỉ số lẻ.
Trả lời:
def Tach_day(A):
n=len(A)
B=[]
C=[]
for i in range(n):
if i%2==0:
B.append(a[i])
else:
C.append(a[i])
return B, C
Vận dụng
- Ư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.
Trả lời:
def xuly(m,n):
x=m
y=n
while x!=y:
if x>y:
x=x-y
else:y=y-x
UCLN=x
BCNN=int((m*n)/UCLN)
return BCNN,UCLN
Trả lời:
x=input("Nhập thời gian gồm ngày tháng năm cách nhau bằng dấu cách: ")
kt=1
ok=0
a=x.split()
a=[int(i) for i in a]
j=[4,6,9,11]
ngay=a[0]
thang=a[1]
nam=a[2]
if nam%400==0 or nam%4==0 and nam%100!=0:ok=1
if ngay<1 or ngay>31:kt=0
if thang<1 or thang>12:kt=0
if thang in j:
if ngay>30:kt=0
if thang==2:
if ngay>29:kt=0
elif ok==0 and ngay>28:kt=0
if kt==0:print('ko hop le')
else:print('hop le')
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:
Bài 29: Nhận biết lỗi chương trình