Gibberish
NameError: name 'x' is not defined
6 biến trong Python là những biến có phạm vi toàn cầu. Nói cách khác, phạm vi của chúng không bị giới hạn ở bất kỳ chức năng hoặc khối cụ thể nào của mã nguồnSử dụng Gibberish
NameError: name 'x' is not defined
7 và thay đổi chúng từ một hàm trong Python
Gibberish
NameError: name 'x' is not defined
Đầu tiên, khai báo biến
Gibberish
NameError: name 'x' is not defined
8def avengers[]:
x = 10
print["Gibberish"]
avengers[]
print[x]
đầu ra
Gibberish
NameError: name 'x' is not defined
Biến
Gibberish
NameError: name 'x' is not defined
8 nằm bên trong hàm x = 10
def avengers[]:
print["Gibberish"]
avengers[]
print[x]
0. Điều này có nghĩa là phạm vi của biến này chỉ giới hạn ở chức năng nàyĐó là lý do tại sao chúng tôi gặp lỗi nếu chúng tôi cố gắng truy cập biến này bên ngoài chức năng này
Tạo biến Gibberish
NameError: name 'x' is not defined
6 trong Python
Gibberish
NameError: name 'x' is not defined
Di chuyển khai báo biến
Gibberish
NameError: name 'x' is not defined
8 ra ngoài hàmx = 10
def avengers[]:
print["Gibberish"]
avengers[]
print[x]
đầu ra
Biến
Gibberish
NameError: name 'x' is not defined
8 được định nghĩa bên ngoài hàm và do đó, chúng ta có thể sử dụng nó ở bất kỳ đâu trong chương trình của mìnhNgoài ra, nó là một biến
x = 10
def avengers[]:
print["Gibberish"]
avengers[]
print[x]
4. Khai báo một biến trong phạm vi toàn cục sẽ tạo ra một biến x = 10
def avengers[]:
print["Gibberish"]
avengers[]
print[x]
4 trong PythonChúng ta cũng có thể truy cập biến
x = 10
def avengers[]:
print["Gibberish"]
avengers[]
print[x]
4 Gibberish
NameError: name 'x' is not defined
8 từ hàm x = 10
def avengers[]:
print["Gibberish"]
avengers[]
print[x]
0x = 10
def avengers[]:
print["From avengers:", x]
avengers[]
print["Outside avengers:", x]
đầu ra
From avengers: 10
Outside avengers: 10
Thay đổi giá trị của biến Gibberish
NameError: name 'x' is not defined
6 từ một hàm trong Python
Gibberish
NameError: name 'x' is not defined
Mã này có một biến
x = 10
def avengers[]:
print["Gibberish"]
avengers[]
print[x]
4 Gibberish
NameError: name 'x' is not defined
8 với x = 10
def avengers[]:
print["From avengers:", x]
avengers[]
print["Outside avengers:", x]
2. Sau đó, bên trong hàm x = 10
def avengers[]:
print["From avengers:", x]
avengers[]
print["Outside avengers:", x]
3, chúng ta thêm x = 10
def avengers[]:
print["From avengers:", x]
avengers[]
print["Outside avengers:", x]
4 vào biến này Gibberish
NameError: name 'x' is not defined
8Câu lệnh in bên trong hàm sẽ in giá trị cập nhật của
Gibberish
NameError: name 'x' is not defined
8x = 10
def change[]:
x = x + 12
print[x]
change[]
đầu ra
UnboundLocalError: local variable 'x' referenced before assignment
Trong python, một hàm chỉ có thể truy cập và in một
x = 10
def avengers[]:
print["From avengers:", x]
avengers[]
print["Outside avengers:", x]
7. Chúng ta cần thông báo cho hàm giới thiệu về bất kỳ nhiệm vụ hoặc thay đổi nào đối với x = 10
def avengers[]:
print["From avengers:", x]
avengers[]
print["Outside avengers:", x]
7Nếu chúng ta không chỉ định điều này, hàm sẽ nghĩ rằng các phép gán và thay đổi được thực hiện cho chính biến cục bộ. Vì vậy, chúng tôi nhận được lỗi này
Sử dụng từ khóa
x = 10
def avengers[]:
print["Gibberish"]
avengers[]
print[x]
4 để thay đổi giá trị x = 10
def avengers[]:
print["From avengers:", x]
avengers[]
print["Outside avengers:", x]
7 từ bên trong hàm Pythontừ khóa Gibberish
NameError: name 'x' is not defined
6 trong Python
Gibberish
NameError: name 'x' is not defined
Python cung cấp cho bạn một từ khóa có tên là
x = 10
def avengers[]:
print["Gibberish"]
avengers[]
print[x]
4 để sửa đổi một biến nằm ngoài phạm vi của nó. Sử dụng nó khi bạn phải thay đổi giá trị của một biến hoặc thực hiện bất kỳ phép gán nàoHãy để chúng tôi thử sửa đoạn mã trên bằng cách sử dụng từ khóa
x = 10
def avengers[]:
print["Gibberish"]
avengers[]
print[x]
4x = 10
def change[]:
global x
x = x + 12
print[x]
change[]
đầu ra
Xem cách chúng tôi chỉ định
Gibberish
NameError: name 'x' is not defined
8 là toàn cầu bằng cách sử dụng từ khóa x = 10
def avengers[]:
print["Gibberish"]
avengers[]
print[x]
4 ở dòng thứ baBây giờ chúng ta hãy xem giá trị của biến
Gibberish
NameError: name 'x' is not defined
8 khi in ra bên ngoài hàmx = 10
def change[]:
global x
x = x + 12
print[x]
change[]
print[x]
đầu ra
Vì hàm đã cập nhật
Gibberish
NameError: name 'x' is not defined
8 từ x = 10
def avengers[]:
print["From avengers:", x]
avengers[]
print["Outside avengers:", x]
2 thành From avengers: 10
Outside avengers: 10
9, nên chúng ta sẽ nhận được giá trị được cập nhật dưới dạng đầu ra ngay cả khi truy cập biến bên ngoài phạm vi cục bộvar = 'A'
def chocolate[]:
print["From chocolate:", var]
def cake[]:
global var
var = var*2
print["From cake:", var]
chocolate[]
cake[]
print["From main:", var]
đầu ra
Gibberish
NameError: name 'x' is not defined
0Suy luận tốt nhất bạn có thể rút ra từ đầu ra này là - thứ tự quan trọng. Hàm
x = 10
def change[]:
x = x + 12
print[x]
change[]
0 sử dụng giá trị ban đầu của x = 10
def change[]:
x = x + 12
print[x]
change[]
1 chứ không phải giá trị đã sửa đổiĐiều này là do hàm
x = 10
def change[]:
x = x + 12
print[x]
change[]
2 sửa đổi giá trị của x = 10
def change[]:
x = x + 12
print[x]
change[]
1 được gọi sau hàm x = 10
def change[]:
x = x + 12
print[x]
change[]
0. Nếu chúng ta gọi hàm x = 10
def change[]:
x = x + 12
print[x]
change[]
2 trước, thì hàm x = 10
def change[]:
x = x + 12
print[x]
change[]
0 cũng sẽ sử dụng giá trị được cập nhật của x = 10
def change[]:
x = x + 12
print[x]
change[]
1Gibberish
NameError: name 'x' is not defined
1đầu ra
Gibberish
NameError: name 'x' is not defined
2Điều này đưa chúng ta đến một số quy tắc mà bạn phải tuân theo khi sử dụng từ khóa
x = 10
def avengers[]:
print["Gibberish"]
avengers[]
print[x]
4 của Python- Theo mặc định, một biến bên trong một hàm là cục bộ và một biến bên ngoài một hàm là
4. Không sử dụng từ khóa này cho các biến bên ngoài hàmx = 10 def avengers[]: print["Gibberish"] avengers[] print[x]
- Sử dụng từ khóa
4 bên ngoài một hàm trong Python không ảnh hưởng đến mã theo bất kỳ cách nàox = 10 def avengers[]: print["Gibberish"] avengers[] print[x]
- Công dụng chính của từ khóa
4 là để thực hiện các bài tập hoặc thay đổi trong Python. Vì vậy, chúng tôi không cần nó để truy cập hoặc in biếnx = 10 def avengers[]: print["Gibberish"] avengers[] print[x]
Nhiều chức năng và một biến toàn cầu
Ở đây, chúng ta có một biến toàn cục
UnboundLocalError: local variable 'x' referenced before assignment
2 với giá trị UnboundLocalError: local variable 'x' referenced before assignment
3. Xem cách hàm UnboundLocalError: local variable 'x' referenced before assignment
4 sử dụng từ khóa x = 10
def avengers[]:
print["Gibberish"]
avengers[]
print[x]
4 để sửa đổi giá trị của UnboundLocalError: local variable 'x' referenced before assignment
2Gibberish
NameError: name 'x' is not defined
3đầu ra
Gibberish
NameError: name 'x' is not defined
4Đầu tiên, chúng ta gọi hàm
UnboundLocalError: local variable 'x' referenced before assignment
4. Hàm này sửa đổi biến toàn cục UnboundLocalError: local variable 'x' referenced before assignment
2 và thay đổi nó thành UnboundLocalError: local variable 'x' referenced before assignment
9Chúng tôi nhận được đầu ra là
UnboundLocalError: local variable 'x' referenced before assignment
9 từ câu lệnh in đầu tiên. Sau đó, chúng ta gọi hàm x = 10
def change[]:
global x
x = x + 12
print[x]
change[]
1Chúng ta lại gọi hàm
x = 10
def change[]:
global x
x = x + 12
print[x]
change[]
1 bên trong hàm UnboundLocalError: local variable 'x' referenced before assignment
4. Lần này, hàm UnboundLocalError: local variable 'x' referenced before assignment
4 cũng sửa đổi giá trị của biến UnboundLocalError: local variable 'x' referenced before assignment
2Nó lấy giá trị trước đó của
UnboundLocalError: local variable 'x' referenced before assignment
9 và sau đó cập nhật nó thành x = 10
def change[]:
global x
x = x + 12
print[x]
change[]
7. Vì vậy, giá trị cuối cùng của biến toàn cầu bây giờ trở thành x = 10
def change[]:
global x
x = x + 12
print[x]
change[]
7Sau đó, hàm
x = 10
def change[]:
global x
x = x + 12
print[x]
change[]
1 sửa đổi nó, nhưng điều này sẽ không được cập nhật trong biến toàn cục. Nó sử dụng giá trị cập nhật của UnboundLocalError: local variable 'x' referenced before assignment
2 và in giá trị sau khi thêm x = 10
def avengers[]:
print["From avengers:", x]
avengers[]
print["Outside avengers:", x]
2Nó không sử dụng từ khóa
x = 10
def avengers[]:
print["Gibberish"]
avengers[]
print[x]
4. Do đó, đầu ra x = 10
def change[]:
global x
x = x + 12
print[x]
change[]
print[x]
3. Bây giờ bạn có thể thấy tại sao đầu ra của câu lệnh cuối cùng là x = 10
def change[]:
global x
x = x + 12
print[x]
change[]
7Đây không là gì ngoài giá trị được cập nhật của biến toàn cầu
UnboundLocalError: local variable 'x' referenced before assignment
2một hàm có một biến có cùng tên với một biến Gibberish
NameError: name 'x' is not defined
6
Gibberish
NameError: name 'x' is not defined
Có khả năng là chúng ta có một hàm có một biến được khai báo bên trong nó có cùng tên với một biến
x = 10
def avengers[]:
print["Gibberish"]
avengers[]
print[x]
4Một câu hỏi tất yếu nảy sinh ở đây là - hàm sẽ sử dụng biến nào?
Gibberish
NameError: name 'x' is not defined
5đầu ra
Có một biến
x = 10
def avengers[]:
print["Gibberish"]
avengers[]
print[x]
4 x = 10
def change[]:
global x
x = x + 12
print[x]
change[]
print[x]
9 trong mã này, có giá trị là var = 'A'
def chocolate[]:
print["From chocolate:", var]
def cake[]:
global var
var = var*2
print["From cake:", var]
chocolate[]
cake[]
print["From main:", var]
0. Hàm var = 'A'
def chocolate[]:
print["From chocolate:", var]
def cake[]:
global var
var = var*2
print["From cake:", var]
chocolate[]
cake[]
print["From main:", var]
1 cũng có một biến tên là x = 10
def change[]:
global x
x = x + 12
print[x]
change[]
print[x]
9Giá trị của biến này là
x = 10
def avengers[]:
print["From avengers:", x]
avengers[]
print["Outside avengers:", x]
2. Khi chúng ta truy cập giá trị của biến x = 10
def change[]:
global x
x = x + 12
print[x]
change[]
print[x]
9 bên trong hàm, chúng ta sẽ nhận được giá trị của biến cục bộ của hàm này, đó là x = 10
def avengers[]:
print["From avengers:", x]
avengers[]
print["Outside avengers:", x]
2Khi chúng tôi truy cập giá trị của
x = 10
def change[]:
global x
x = x + 12
print[x]
change[]
print[x]
9 từ bên ngoài chức năng này, chúng tôi nhận được đầu ra là var = 'A'
def chocolate[]:
print["From chocolate:", var]
def cake[]:
global var
var = var*2
print["From cake:", var]
chocolate[]
cake[]
print["From main:", var]
0Điều này ngụ ý rằng nếu biến
var = 'A'
def chocolate[]:
print["From chocolate:", var]
def cake[]:
global var
var = var*2
print["From cake:", var]
chocolate[]
cake[]
print["From main:", var]
8 có cùng tên với biến x = 10
def avengers[]:
print["Gibberish"]
avengers[]
print[x]
4 trong một phạm vi cụ thể, thì nó có mức độ ưu tiên cao hơn biến toàn cụcPhần kết luận
Hướng dẫn này đã dạy những kiến thức cơ bản về biến
x = 10
def avengers[]:
print["Gibberish"]
avengers[]
print[x]
4 trong Python. Chúng ta đã thấy chúng khác với biến var = 'A'
def chocolate[]:
print["From chocolate:", var]
def cake[]:
global var
var = var*2
print["From cake:", var]
chocolate[]
cake[]
print["From main:", var]
8 như thế nào và cách chúng ta tạo chúng trong Python