Trong Python, các biến là các thùng chứa để lưu trữ các giá trị dữ liệu. Chúng là tham chiếu, hoặc con trỏ, đến một đối tượng trong bộ nhớ, điều đó có nghĩa là bất cứ khi nào một biến được gán cho một thể hiện, nó sẽ được ánh xạ tới trường hợp đó. Không giống như các ngôn ngữ khác như C/C ++/Java, Python không phải là người đánh máy tĩnh. Chúng tôi không cần phải khai báo các biến trước khi sử dụng chúng hoặc khai báo loại của chúng. Một biến được tạo ngay khi chúng ta chỉ định giá một giá trị cho nó.example: & nbsp; & nbsp;
Example:
Python3
age
=
________ 9 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
I love Geeksforgeeks0
=
________ 12 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;I love Geeksforgeeks3
=
________ 15 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;I love Geeksforgeeks6
I love Geeksforgeeks7
I love Geeksforgeeks6
I love Geeksforgeeks9
I love Geeksforgeeks6
Me too. I love Geeksforgeeks1
Đầu ra: & nbsp; & nbsp;
45 1456.8 John
Lưu ý: Để biết thêm về các biến bấm vào đây. & NBSP; To know more about variables click here.
Phạm vi của biến
Vị trí nơi chúng ta có thể tìm thấy một biến và cũng truy cập nó nếu được yêu cầu được gọi là phạm vi của một biến. & NBSP;scope of a variable.
Các biến toàn cầu và địa phương
Các biến toàn cầu là các biến được xác định và khai báo bên ngoài bất kỳ chức năng nào và không được chỉ định cho bất kỳ chức năng nào. Chúng có thể được sử dụng bởi bất kỳ phần nào của chương trình.example: & nbsp; & nbsp;
Example:
Python3
Me too. I love Geeksforgeeks2
Me too. I love Geeksforgeeks3
Me too. I love Geeksforgeeks4
I love Geeksforgeeks6
Me too. I love Geeksforgeeks6
Me too. I love Geeksforgeeks7
=
Me too. I love Geeksforgeeks9
Traceback [most recent call last]: File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 13, in f[] File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 3, in f print[s] UnboundLocalError: local variable 's' referenced before assignment0
Output:
I love Geeksforgeeks
Bây giờ giả sử một biến có cùng tên được xác định bên trong phạm vi hàm cũng như nó sẽ in giá trị được đưa ra bên trong hàm chứ không phải giá trị toàn cầu. & NBSP;
Python3
Me too. I love Geeksforgeeks2
Me too. I love Geeksforgeeks3
Me too. I love Geeksforgeeks7
=
Me too. I love Geeksforgeeks9
Me too. I love Geeksforgeeks4
I love Geeksforgeeks6
Me too. I love Geeksforgeeks6
Me too. I love Geeksforgeeks7
=
Me too. I love Geeksforgeeks9
Traceback [most recent call last]: File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 13, in f[] File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 3, in f print[s] UnboundLocalError: local variable 's' referenced before assignment0
I love Geeksforgeeks6
Me too. I love Geeksforgeeks6
Output:
Me too. I love Geeksforgeeks
Bây giờ giả sử một biến có cùng tên được xác định bên trong phạm vi hàm cũng như nó sẽ in giá trị được đưa ra bên trong hàm chứ không phải giá trị toàn cầu. & NBSP;
The question is, what will happen if we change the value of s inside of the function f[]? Will it affect the global s as well? We test it in the following piece of code:
Python3
Me too. I love Geeksforgeeks2
Me too. I love Geeksforgeeks3
Me too. I love Geeksforgeeks4
I love Geeksforgeeks6
Me too. I love Geeksforgeeks6
Me too. I love Geeksforgeeks7
=
Me too. I love Geeksforgeeks9
Me too. I love Geeksforgeeks4
I love Geeksforgeeks6
Me too. I love Geeksforgeeks6
Me too. I love Geeksforgeeks7
=
Me too. I love Geeksforgeeks9
Traceback [most recent call last]: File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 13, in f[] File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 3, in f print[s] UnboundLocalError: local variable 's' referenced before assignment0
I love Geeksforgeeks6
Me too. I love Geeksforgeeks6
Output:
Me too. I love Geeksforgeeks4
Me too. I love Geeksforgeeks7
=
Traceback [most recent call last]: File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 13, in f[] File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 3, in f print[s] UnboundLocalError: local variable 's' referenced before assignment6global keyword. We only need to use global keyword in a function if we want to do assignments / change them. global is not needed for printing and accessing. Why? Python “assumes” that we want a local variable due to the assignment to s inside of f[], so the first print statement throws this error message. Any variable which is changed or created inside of a function is local, if it hasn’t been declared as a global variable. To tell Python, that we want to use the global variable, we have to use the keyword global, as can be seen in the following example:
Python3
Biến S được định nghĩa là chuỗi mà tôi yêu thích GeekSforGeeks, trước khi chúng ta gọi hàm f []. Câu lệnh duy nhất trong f [] là câu lệnh in [s]. Vì không có S cục bộ, giá trị từ toàn cầu sẽ được sử dụng. Câu hỏi là, điều gì sẽ xảy ra nếu chúng ta thay đổi giá trị của S bên trong hàm f []? Nó sẽ ảnh hưởng đến toàn cầu? Chúng tôi kiểm tra nó trong phần mã sau: & nbsp;
Traceback [most recent call last]: File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 13, in f[] File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 3, in f print[s] UnboundLocalError: local variable 's' referenced before assignment
Me too. I love Geeksforgeeks4
I love Geeksforgeeks6
Me too. I love Geeksforgeeks6
Để làm cho chương trình trên hoạt động, chúng tôi cần sử dụng từ khóa toàn cầu. Chúng ta chỉ cần sử dụng từ khóa toàn cầu trong một chức năng nếu chúng ta muốn thực hiện các bài tập / thay đổi chúng. Toàn cầu là không cần thiết để in và truy cập. Tại sao? Python, giả sử rằng chúng tôi muốn một biến cục bộ do sự gán cho s bên trong f [], vì vậy câu lệnh in đầu tiên ném thông báo lỗi này. Bất kỳ biến nào được thay đổi hoặc tạo bên trong một hàm là cục bộ, nếu nó đã được tuyên bố là một biến toàn cầu. Để nói với Python, rằng chúng tôi muốn sử dụng biến toàn cầu, chúng tôi phải sử dụng từ khóa toàn cầu, như có thể thấy trong ví dụ sau: & nbsp;
Me too. I love Geeksforgeeks4
I love Geeksforgeeks6
Me too. I love Geeksforgeeks6
Me too. I love Geeksforgeeks2
Value of a using nonlocal is : 10 Value of a without using nonlocal is : 55
Traceback [most recent call last]: File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 13, in f[] File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 3, in f print[s] UnboundLocalError: local variable 's' referenced before assignment0
I love Geeksforgeeks6
Me too. I love Geeksforgeeks6
Output:
Python is great! Look for Geeksforgeeks Python Section Look for Geeksforgeeks Python Section
Me too. I love Geeksforgeeks4
Value of a using nonlocal is : 10 Value of a without using nonlocal is : 57
Value of a using nonlocal is : 10 Value of a without using nonlocal is : 58
Python3
Me too. I love Geeksforgeeks4
Me too. I love Geeksforgeeks7
=
age
5Biến S được định nghĩa là chuỗi mà tôi yêu thích GeekSforGeeks, trước khi chúng ta gọi hàm f []. Câu lệnh duy nhất trong f [] là câu lệnh in [s]. Vì không có S cục bộ, giá trị từ toàn cầu sẽ được sử dụng. Câu hỏi là, điều gì sẽ xảy ra nếu chúng ta thay đổi giá trị của S bên trong hàm f []? Nó sẽ ảnh hưởng đến toàn cầu? Chúng tôi kiểm tra nó trong phần mã sau: & nbsp;
Me too. I love Geeksforgeeks4
I love Geeksforgeeks6
45
245
345
4Traceback [most recent call last]: File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 13, in f[] File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 3, in f print[s] UnboundLocalError: local variable 's' referenced before assignment
Để làm cho chương trình trên hoạt động, chúng tôi cần sử dụng từ khóa toàn cầu. Chúng ta chỉ cần sử dụng từ khóa toàn cầu trong một chức năng nếu chúng ta muốn thực hiện các bài tập / thay đổi chúng. Toàn cầu là không cần thiết để in và truy cập. Tại sao? Python, giả sử rằng chúng tôi muốn một biến cục bộ do sự gán cho s bên trong f [], vì vậy câu lệnh in đầu tiên ném thông báo lỗi này. Bất kỳ biến nào được thay đổi hoặc tạo bên trong một hàm là cục bộ, nếu nó đã được tuyên bố là một biến toàn cầu. Để nói với Python, rằng chúng tôi muốn sử dụng biến toàn cầu, chúng tôi phải sử dụng từ khóa toàn cầu, như có thể thấy trong ví dụ sau: & nbsp;
Me too. I love Geeksforgeeks4
I love Geeksforgeeks6
45
2I love Geeksforgeeks04
45
4Me too. I love Geeksforgeeks2
Value of a using nonlocal is : 10 Value of a without using nonlocal is : 55
Me too. I love Geeksforgeeks4
Value of a using nonlocal is : 10 Value of a without using nonlocal is : 57
Value of a using nonlocal is : 10 Value of a without using nonlocal is : 58
Me too. I love Geeksforgeeks4
Me too. I love Geeksforgeeks7
=
age
5Me too. I love Geeksforgeeks4
I love Geeksforgeeks6
45
2I love Geeksforgeeks18
45
4Me too. I love Geeksforgeeks7
=
=
1Traceback [most recent call last]: File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 13, in f[] File "/home/370cac45bae7f1e6096520b7a0edb604.py", line 3, in f print[s] UnboundLocalError: local variable 's' referenced before assignment0
I love Geeksforgeeks6
45
2I love Geeksforgeeks22
45
4I love Geeksforgeeks29
I love Geeksforgeeks6
45
2I love Geeksforgeeks22
45
4I love Geeksforgeeks34
I love Geeksforgeeks6
45
2I love Geeksforgeeks22
45
4Output:
global : 1 Inside f[] : 1 global : 1 Inside g[] : 2 global : 1 Inside h[] : 3 global : 3
Hãy xem xét ví dụ dưới đây để hiểu rõ hơn về chủ đề. & Nbsp; & nbsp;
=
5=
=
7
Example:
Python3
Me too. I love Geeksforgeeks2
45
6Me too. I love Geeksforgeeks4
=
5=
I love Geeksforgeeks00
Me too. I love Geeksforgeeks2
I love Geeksforgeeks07
Me too. I love Geeksforgeeks4
Value of a using nonlocal is : 10 Value of a without using nonlocal is : 57
I love Geeksforgeeks10
I love Geeksforgeeks54
I love Geeksforgeeks55
Me too. I love Geeksforgeeks4
=
5=
I love Geeksforgeeks14
Me too. I love Geeksforgeeks4
I love Geeksforgeeks61
I love Geeksforgeeks6
45
2I love Geeksforgeeks2222
I love Geeksforgeeks65
I love Geeksforgeeks6
45
2I love Geeksforgeeks68
I love Geeksforgeeks42
=
I love Geeksforgeeks44
Me too. I love Geeksforgeeks2
I love Geeksforgeeks46
Me too. I love Geeksforgeeks4
=
5=
I love Geeksforgeeks50
Me too. I love Geeksforgeeks4
Me too. I love Geeksforgeeks2
I love Geeksforgeeks53
I love Geeksforgeeks54
=
55____8 I love Geeksforgeeks59
Me too. I love Geeksforgeeks4
I love Geeksforgeeks61
Me too. I love Geeksforgeeks4
I love Geeksforgeeks6
I love Geeksforgeeks64
I love Geeksforgeeks65
Output:
Value of a using nonlocal is : 10 Value of a without using nonlocal is : 5