Tin Học Lớp 10 - Bài 28: Phạm Vi Của Biến

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Trong Python, biến nào sau đây có phạm vi hoạt động chỉ giới hạn bên trong hàm nơi nó được khai báo?

  • Biến địa phương (local) (correct)
  • Biến hằng (constant)
  • Biến tĩnh (static)
  • Biến toàn cục (global)

Điều gì xảy ra khi bạn cố gắng truy cập một biến địa phương từ bên ngoài hàm mà nó được khai báo trong Python?

  • Python sẽ tìm kiếm biến trong các hàm khác.
  • Python sẽ báo lỗi NameError. (correct)
  • Biến sẽ tự động được tạo ở phạm vi toàn cục.
  • Biến sẽ trả về `None`.

Trong Python, biến nào sau đây có thể được truy cập và sửa đổi từ bất kỳ đâu trong chương trình, bao gồm cả bên trong các hàm?

  • Biến cục bộ
  • Biến toàn cục (correct)
  • Biến địa phương
  • Tham số của hàm

Khi một biến toàn cục và một biến địa phương có cùng tên trong một hàm, biến nào sẽ được ưu tiên sử dụng trong hàm đó?

<p>Biến địa phương (A)</p> Signup and view all the answers

Để có thể sửa đổi một biến toàn cục bên trong một hàm, bạn cần sử dụng từ khóa nào trong Python?

<p>global (B)</p> Signup and view all the answers

Xét đoạn code sau:

def my_func():
    x = 10
    print(x)

x = 5
my_func()
print(x)

Kết quả in ra màn hình sẽ là gì?

<p>10\n5 (C)</p> Signup and view all the answers

Xét đoạn code sau:

x = 5
def my_func():
    global x
    x = 10
    print(x)

my_func()
print(x)

Kết quả in ra màn hình sẽ là gì?

<p>10\n10 (C)</p> Signup and view all the answers

Trong Python, nếu một biến được gán giá trị bên ngoài bất kỳ hàm nào, nó được coi là:

<p>Biến toàn cục (A)</p> Signup and view all the answers

Khi nào một biến địa phương bị hủy (giải phóng bộ nhớ) trong Python?

<p>Khi hàm mà nó được khai báo kết thúc. (C)</p> Signup and view all the answers

Lợi ích chính của việc sử dụng biến địa phương thay vì biến toàn cục là gì?

<p>Giảm sự phụ thuộc lẫn nhau giữa các phần của chương trình. (D)</p> Signup and view all the answers

Điều gì sẽ xảy ra nếu bạn cố gắng khai báo một biến địa phương và một biến toàn cục có cùng tên trong cùng một phạm vi?

<p>Biến địa phương sẽ che biến toàn cục. (D)</p> Signup and view all the answers

Cho đoạn code sau:

def func():
  x = 10
  def inner_func():
    nonlocal x
    x = 20
  inner_func()
  return x

print(func())

Đoạn code trên in ra kết quả gì?

<p>20 (C)</p> Signup and view all the answers

Khi nào nên sử dụng biến toàn cục trong Python?

<p>Khi cần chia sẻ dữ liệu giữa nhiều hàm mà không muốn truyền tham số. (A)</p> Signup and view all the answers

Điều gì xảy ra nếu bạn khai báo một biến bên trong một hàm mà không sử dụng từ khóa global hoặc nonlocal, và không có biến nào cùng tên ở phạm vi ngoài?

<p>Python sẽ tạo một biến địa phương mới. (C)</p> Signup and view all the answers

Biến nào sau đây có thể được sử dụng mà không cần khai báo trước?

<p>Không có loại biến nào (D)</p> Signup and view all the answers

Cho đoạn code sau:

def outer_func():
    x = "hello"
    def inner_func():
        x = "world"
    inner_func()
    return x

print(outer_func())

Đoạn code trên in ra kết quả gì?

<p>hello (C)</p> Signup and view all the answers

Cho đoạn code sau:

def outer_func():
    x = "hello"
    def inner_func():
        nonlocal x
        x = "world"
    inner_func()
    return x

print(outer_func())

Đoạn code trên thay đổi như sau:

def outer_func():
    x = "hello"
    def inner_func():
        global x
        x = "world"
    inner_func()
    return x
print(outer_func())

Đoạn code trên in ra kết quả gì?

<p>&quot;hello&quot; (A)</p> Signup and view all the answers

Trong Python, khai báo biến toàn cục trong một hàm khi nào sẽ gây ra lỗi?

<p>Khi biến đó được sử dụng trước khi khai báo global trong hàm. (B)</p> Signup and view all the answers

Trong Python, điều gì sẽ xảy ra nếu bạn cố gắng thay đổi giá trị của một biến toàn cục bên trong một hàm mà không sử dụng từ khóa global?

<p>Một biến địa phương mới với cùng tên sẽ được tạo ra. (C)</p> Signup and view all the answers

Phạm vi của biến có ảnh hưởng lớn nhất đến yếu tố nào của chương trình?

<p>Khả năng đọc hiểu và bảo trì code (D)</p> Signup and view all the answers

Flashcards

Phạm vi của biến là gì?

Phạm vi hoạt động của biến trong chương trình và hàm.

Phạm vi của biến trong hàm

Các biến chỉ có thể được sử dụng bên trong hàm mà chúng được khai báo.

Biến khai báo ngoài hàm

Một biến được khai báo bên ngoài hàm có thể được truy cập từ bên trong hàm, nhưng giá trị của nó không thể thay đổi trừ khi sử dụng từ khóa global.

Khai báo biến global

Để biến bên ngoài có tác dụng bên trong hàm, cần khai báo lại biến đó bên trong hàm với từ khóa global.

Signup and view all the flashcards

Viết hàm chọn lọc

Hàm có đầu vào là một danh sách các số và một số thực x, trả về danh sách các phần tử trong danh sách ban đầu lớn hơn hoặc bằng x.

Signup and view all the flashcards

Hàm tách và chuyển đổi từ

Hàm nhận một xâu và một số c, trả về danh sách các từ đã được chuyển đổi (in hoa, in thường, hoặc viết hoa chữ cái đầu) tùy thuộc vào giá trị của c.

Signup and view all the flashcards

Str.upper() là gì?

Chuyển đổi ký tự của xâu thành chữ in hoa.

Signup and view all the flashcards

Str.lower() là gì?

Chuyển đổi ký tự của xâu thành chữ in thường.

Signup and view all the flashcards

Str.title() là gì?

Chuyển đổi 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.

Signup and view all the flashcards

Study Notes

Bài 28: Phạm Vi Của Biến

  • Bài học này dành cho môn Tin Học lớp 10, dự kiến kéo dài 2 tiết.

Mục tiêu bài học:

  • Kiến thức: Hiểu và trình bày phạm vi hoạt động của biến trong chương trình và hàm.
  • Kỹ năng: Tự chủ học tập, giao tiếp, hợp tác, sáng tạo và giải quyết vấn đề.
  • Phẩm chất: Yêu cầu sự nghiêm túc, tập trung và chủ động.

Chuẩn bị cho bài học:

  • Sách giáo khoa (Sgk), sách bài tập (Sbt) và giáo án.

Hoạt động khởi động:

  • Mục tiêu: Tạo hứng thú học tập.
  • Học sinh sử dụng kiến thức hiện có để trả lời các câu hỏi gợi mở từ giáo viên.
    • Biến được khai báo trong chương trình chính (ngoài hàm) có dùng được trong hàm không?
    • Biến khai báo trong hàm có dùng được bên ngoài hàm không?
  • Bài học sẽ giúp làm sáng tỏ các câu hỏi này.

Phạm vi của biến khai báo trong hàm:

  • Biến khai báo bên trong hàm chỉ có hiệu lực bên trong hàm đó
  • Chương trình chính không thể truy cập các biến này.
  • Các biến bên ngoài hàm có thể được sử dụng hoặc bị thay đổi trong một hàm.
  • Nếu sau khi thực thi hàm mà các biến không thay đổi, điều đó cho thấy biến đó chỉ có trong hàm
  • Biến n chỉ có tác dụng trong hàm func; gọi nó bên ngoài hàm sẽ gây ra lỗi NameError.
  • Trong Python, biến khai báo trong hàm có tính địa phương (cục bộ), không có hiệu lực bên ngoài hàm.
  • Nếu có lệnh:
    • a, b = 1, 2
    • Định nghĩa hàm f(a, b) như sau:
    def f(a, b):
       a = a + b
       b = b * a
       return a + b
    
    • Giá trị của ab sau khi thực hiện f(1, 2) hoặc f(10, 20) sẽ là bao nhiêu?
  • Có thể khai báo biến trùng tên bên trong hàm so với bên ngoài.

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 không có tác dụng bên trong hàm trừ khi dùng từ khóa global.

  • Bên trong hàm có thể truy cập giá trị của biến khai báo trước đó ở bên ngoài hàm.

  • Ví dụ, với:

 def f(n):
   t = n + 1
   return t
t = 10
f(5) # Kết quả: 6
t # Kết quả: 10
  • Biến t bên ngoài hàm không bị ảnh hưởng bởi hàm f(n).

  • Ví dụ, với:

 def f(a, b):
   return a + b + N
 N = 10
 f(1, 2) # Kết quả: 13
  • Giá trị N được lấy từ biến ngoài hàm

  • Để một biến bên ngoài có tác dụng bên trong hàm, cần khai báo lại biến trong hàm với từ khóa global.

  • 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 giá trị của biến đó (trừ khi dùng global).

Ví dụ về sử dụng global:

def f(n):
    global t
    t = 2 * n + 1
    return t

t = 10
f(1) # Kết quả: 3
t # Kết quả: 3
  • Nếu 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ả in ra khi thực hiện các lệnh sau là gì?
 n = 10
 f(1, 2)

Thực hành:

  • Mục tiêu: Rèn kỹ năng lập trình liên quan đến phạm vi biến.

Nhiệm vụ 1:

  • Viết hàm nhận danh sách A các số và một số thực x.

  • Hàm trả về danh sách B chỉ chứa các phần tử của A lớn hơn hoặc bằng x.

  • Hướng dẫn: Khởi tạo danh sách B trong hàm và thêm các phần tử thỏa mãn điều kiện.

    def Select(A, x):
      B = []
      for k in range(len(A)):
        if A[k] >= x:
          B.append(A[k])
      return B
    

Nhiệm vụ 2:

  • Viết hàm nhận xâu ký tự Str và số c.
  • Hàm trả về danh sách các từ tách từ Str, chuyển đổi theo giá trị của c:
    • c = 0: Chuyển thành chữ in hoa.
    • c = 1: Chuyển thành chữ in thường.
    • c = 2: Chuyển ký tự đầu mỗi từ thành chữ in hoa.
  • Hướng dẫn: Dùng split() để tách từ và các hàm upper(), lower(), title() để chuyển đổi.

Nhiệm vụ 3:

  • Viết chương trình:
  1. Nhập dãy số nguyên từ bàn phím (cách nhau bởi dấu cách), chuyển vào danh sách A, in A.
  2. Trích các phần tử lớn hơn 0 từ A vào danh sách B, in B.
  3. Trích các phần tử nhỏ hơn 0 từ A vào danh sách C, in C.
  • Mỗi bước thực hiện bằng một hàm riêng.

Luyện tập và vận dụng:

  • Viết hàm có đầu vào là danh sách các xâu ký tự (slist), trả về danh sách các ký tự đầu tiên của mỗi xâu trong slist (clist).
  • Viết hàm Tach_day(A):
  1. Tách danh sách A thành hai danh sách BC.
  2. Danh sách B chứa các phần tử ở vị trí chẵn của A.
  3. Danh sách C chứa các phần tử ở vị trí lẻ của A.

Vận dụng:

  1. Viết hàm với đầu vào m, n, trả về ước chung lớn nhất (ƯCLN) và 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.
  1. Viết chương trình nhập ngày, tháng, năm (day, month, year) từ bàn phím và kiểm tra tính hợp lệ của dữ liệu nhập vào.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Variable Initialization and Scope Quiz
32 questions
Python Programming: Variable Scope
6 questions
C Programming Variables & Scope
43 questions

C Programming Variables & Scope

DetachableTrigonometry4776 avatar
DetachableTrigonometry4776
Use Quizgecko on...
Browser
Browser