Tin học lớp 10 Bài 28: Phạm vi của biến
A. Lý thuyết Tin học 10 Bài 28: Phạm vi của biến
1. Phạm vi của biến trong khai báo hàm
Trong Python tất cả các biến khai thác 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.
2. Phạm vi của biến khai báo ngoài hàm
– Biến đã khai báo bên ngoài hàm chỉ có thể truy cập giá trị để sử dụng bên trong hàm mà không làm thay đổi được giá trị của biến đó (trừ trường hợp với từ khóa global).
Ví dụ 1: Biến khai báo bên ngoài hàm không có tác dụng bên trong hàm.
Ví dụ 2: Bên trong hàm có thể truy cập đến sử dụng giá trị của biến đã khai báo trước đó ở bên ngoài hàm.
– Ví dụ 3: Dùng từ khóa global.
Thực hành: Phạm vi của biến
Nhiệm vụ 1: Viết hàm với đầu vào là danh sách A chứa các số và số thực x. Hàm trả lại một danh sách kết quả B từ danh sách A bằng cách chỉ giữ lại các phần tử lớn hơn hoặc bằng x.
Hướng dẫn
Biến B kiểu danh sách cần được định nghĩa trong hàm và được bổ sung thêm các phần tử từ A nếu thỏa mãn điều kiện lớn hơn hoặc bằng x.
Nhiệm vụ 2: Viết hàm với đầu vào là xâu kí tự Str và số c, đầu ra là danh sách các từ được tách ra từ xâu Str nhưng đã được chuyển thành chữ in hoa hoặc chữ in thường hoặc chỉ chuyển đổi kí tự đầu các từ thành chữ in hoa tùy thuộc vào tham số đầu vào c như sau:
– Nếu c = 0, danh sách B là các từ được chuyển thành chữ in hoa.
– Nếu c = 1, danh sách B là các từ được chuyển thành chữ in thường.
– Nếu c = 2, danh sách B là các từ được chuyển viết chữ hoa kí tự đầu của mỗi từ.
Hướng dẫn
Cần sử dụng các lệnh:
Str.upper() – chuyển kí tự của xâu thành chữ in hoa.
Str.lower() – chuyển kí tự của xâu thành chữ in thường.
Str.title() – chuyển kí tự đầu mỗi từ của xâu thành chữ in hoa, các kí tự khác chuyển về chữ thường.
Hàm được định nghĩa có dạng Tach_tu(Str,c). Đầu tiên xâu Str cần được tách từ bằng lệnh split(). Sau đó danh sách kết quả sẽ được chuyển đổi chữ in hoa, in thường sử dụng một trong các lệnh trên tùy thuộc vào giá trị của đối số c.
Chương trình:
Nhiệm vụ 3: Viết một chương trình yêu cầu lần lượt các việc sau, mỗi việc thực hiện bởi một hàm.
1. Nhập từ bàn phím một dãy các số nguyên, mỗi số cách nhau bởi dấu cách. Chuyển các số này vào danh sách A và in danh sách A ra màn hình.
2. Trích từ danh sách A ra một danh sách B gồm các phần tử lớn hơn 0. In danh sách B ra màn hình.
3. Trích từ danh sách A ra một danh sách C gồm các phần tử nhỏ hơn 0. In danh sách C ra màn hình.
Hướng dẫn
Mỗi chức năng viết thành một hàm. Toàn bộ chương trình có thể như sau:
B. Bài tập trắc nghiệm Tin học 10 Bài 28: Phạm vi của biến
Câu 1. Kết quả của chương trình này là bao nhiêu?
s = “Tôi tên là: “
def kq(name):
s = s+ name
print(kq(“Long”))
A. “Tôi tên là: Long”.
B. “Long”.
C. “Tôi tên là: ”.
D. Chương trình bị lỗi.
Hướng dẫn giải
Đáp án đúng là: D
Chương trình bị lỗi do vi phạm phạm vi sử dụng biến
Câu 3. Kết quả của chương trình sau là bao nhiêu?
s = “Hôm nay tôi đi học “
def kq(name):
s = “Hello World”
s = s + “!!!”
return s
print(s)
A. “Hôm nay tôi đi học “.
B. “Hello World”.
C. “Hello World!!!”.
D. Chương trình bị lỗi.
Hướng dẫn giải
Đáp án đúng là: A
Giá trị của chuỗi s bên ngoài hàm không bị thay đổi.
Câu 4. Kết quả của chương trình sau là bao nhiêu?
def kq(name):
s = “Tôi tên là: “
s = s+ name
return s
print(kq(“Xuân”))
A. “Tôi tên là: “.
B. “Xuân”.
C. “Tôi tên là: Xuân”.
D. Chương trình bị lỗi
Hướng dẫn giải
Đáp án đúng là: C
Hàm thực hiện nối hai chuỗi và trả về chuỗi s mới.
Câu 5. Kết quả của chương trình sau là bao nhiêu?
>>>def f(a,b):
return a + b + N
>>> N = 5
>>>f(3, 3)
A. 5.
B. 6.
C. 11.
D. Chương trình bị lỗi.
Hướng dẫn giải
Đáp án đúng là: C
Hàm tính tổng của 3 số a, b, và N thu được kết quả là 11.
Câu 6. Nếu muốn biến bên ngoài vẫn có tác dụng bên trong hàm thì cần khai báo lại biến này bên trong hàm với từ khoá nào
A. global.
B. def.
C. Không thể thực hiện
D. all.
Hướng dẫn giải
Đáp án đúng là: A
Từ khoá global giúp biến bên ngoài vẫn có tác dụng bên trong hàm.
Câu 7. Hoàn thiện (…) trong phát biểu sau:
“Trong Python tất cả các biến khai báo bên trong hàm đều có tính …, không có hiệu lực ở bên … hàm”.
A. địa phương, trong.
B. cục bộ, ngoài.
C. địa phương, ngoài.
D. toàn cục, ngoài.
Hướng dẫn giải
Đáp án đúng là: B
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âu 8. Số phát biểu đúng trong các phát biểu sau là:
1) Tất cả các biến bên trong hàm đều có tính cục bộ.
2) Tất cả các biến bên trong hàm chỉ có tính cục bộ.
3) Biến cục bộ trong hàm nếu gọi bên ngoài hàm sẽ bị lỗi.
A. 1.
B. 2.
C. 3.
D. 0.
Hướng dẫn giải
Đáp án đúng là: B
Phát biểu đúng: 1, 3.
Câu 3. Chọn phát biểu sai trong các phát biểu sau:
A. Chương trình chính có thể sử dụng biến cục bộ bên trong hàm.
B. Biến bên trong hàm có thể trùng tên với biến đã khai bao trước đó bên ngoài hàm.
C. Tất cả các biến trong hàm đều có tính cục bộ.
D. Các biến bên trong hàm không có hiệu lực ở bên ngoài hàm.
Hướng dẫn giải
Đáp án đúng là: A
Chương trình chính không thể sử dụng biến cục bộ bên trong hàm.
Câu 9. Giá trị của x, y là bao nhiêu khi thực hiện lệnh f(1, 3)
>>> x, y = 3, 4
>>> def f(x, y):
x = x + y
y = y + 2
return x
A. 2, 3.
B. 4, 5.
C. 5, 4.
D. 3, 4.
Hướng dẫn giải
Đáp án đúng là: D
Giá trị của biến x, y không thay đổi.
Câu 10. Giá trị của a, b là bao nhiêu khi thực hiện lệnh f(2, 5)
>>> a, b = 0, 1
>>> def f(a, b):
a = a * b
b = b // 2
return a + b
A. 10, 2.
B. 10, 1.
C. 2, 5.
D. 0, 1.
Hướng dẫn giải
Đáp án đúng là: D
Giá trị của biến a, b không thay đổi.
Câu 11. Kết quả nào được in ra khi thực hiện các câu lệnh sau:
>>>def f(x, y):
a = x + y
print(a + n)
>>>n = 5
>>>f(2, 3)
A. 5.
B. 10.
C. 2.
D. Chương trình bị lỗi.
Hướng dẫn giải
Đáp án đúng là: B
Tính tổng ba số x, y, n là 2 + 3 + 5 = 10.
Câu 12. Kết quả của chương trình sau là:
def add(x,y):
print(x+y)
x=15
add(x ,10)
add(x,x)
y=20
add(x,y)
A. 25, 35, 30.
B. 35, 30, 25.
C. 25, 30, 35.
D. Chương trình bị lỗi.
Hướng dẫn giải
Đáp án đúng là: C
Hàm add(x, y) được thực hiện 3 lần :
15 + 10 = 25
15 + 15 = 30
20 + 15 = 35
Câu 13. Cho biết kết quả của chương trình sau:
def changeme(mylist):
mylist.append([1,2,3,4])
mylist = [10,20,30]
changeme( mylist)
print(mylist)
A. [10, 20, 30].
B. [10, 20, 30, 1, 2, 3, 4].
C. [1, 2, 3, 4].
D. [10, 20, 30, [1, 2, 3, 4]].
Hướng dẫn giải
Đáp án đúng là: D
Danh sách [1, 2, 3, 4] được nối vào mylist ban đầu.
Câu 14. Chương trình sau bị lỗi ở dòng lệnh thứ bao nhiêu?
def msg():
a=10
print(“Gia tri cua a la”,a)
return msg()
print a
A. 4.
B. 5.
C. 3.
D. Không có lỗi.
Hướng dẫn giải
Đáp án đúng là: B
Biến a ở trong hàm nên không thể được sử dụng bên ngoài hàm
Câu 15. Chương trình sau bị lỗi ở dòng lệnh thứ:
b=20
def msg():
a=10
print (“Gia tri cua a la”,a)
print (“Gia tri cua b la”,b)
return msg()
print(b)
A. 3.
B. 4.
C. 5.
D. Không có lỗi.
Hướng dẫn giải
Đáp án đúng là: D
Chương trình không có lỗi do biến b được khai báo bên ngoài hàm.
Xem thêm các bài tóm tắt lý thuyết Tin học lớp 10 Kết nối tri thức hay, chi tiết khác:
Lý thuyết Tin học 10 Bài 27: Tham số của hàm
Lý thuyết Tin học 10 Bài 28: Phạm vi của biến
Lý thuyết Tin học 10 Bài 29: Nhận biết lỗi chương trình
Lý thuyết Tin học 10 Bài 30: Kiểm thử và gỡ lỗi chương trình
Lý thuyết Tin học 10 Bài 31: Thực hành viết chương trình đơn giản