Giới thiệu về Python
Nắm vững kiến thức cơ bản về phân tích dữ liệu với Python chỉ trong bốn giờ. Khóa học trực tuyến này sẽ giới thiệu giao diện Python và khám phá các gói phổ biến
Python trung gian
Nâng cao kỹ năng khoa học dữ liệu của bạn bằng cách tạo trực quan hóa bằng Matplotlib và thao tác với DataFrames bằng gấu trúcKhông gian tên python là một vùng chứa nơi các tên được ánh xạ tới các đối tượng, chúng được sử dụng để tránh nhầm lẫn trong trường hợp các tên giống nhau tồn tại trong các không gian tên khác nhau. Chúng được tạo bởi các mô-đun, hàm, lớp, v.v.
Phạm vi trong Python là gì
Một phạm vi xác định thứ tự phân cấp trong đó các không gian tên phải được tìm kiếm để có được ánh xạ của tên-đối tượng[biến]. Đó là một bối cảnh trong đó các biến tồn tại và từ đó chúng được tham chiếu. Nó xác định khả năng truy cập và thời gian tồn tại của một biến. Hãy để chúng tôi lấy một ví dụ đơn giản như hình dưới đây.
Python3
inner pi variable1
inner pi variable2
inner pi variable3
inner pi variable4
inner pi variable5
inner pi variable0
inner pi variable1____51____52
inner pi variable4
_______01____06____07
inner pi variable4
inner pi variable9
inner pi variable6
inner pi variable7
đầu ra
inner pi variable outer pi variable
Chương trình trên cho các kết quả đầu ra khác nhau vì cùng một tên biến pi nằm trong các không gian tên khác nhau, một bên trong hàm print_pi và một bên ở cấp cao hơn. Khi print_pi[] được thực thi, ' biến số pi bên trong ' được in vì đó là giá trị pi bên trong không gian tên hàm. Giá trị ‘biến pi bên ngoài‘ được in khi pi được tham chiếu trong không gian tên bên ngoài. Từ ví dụ trên, chúng ta có thể đoán rằng chắc chắn có một quy tắc được tuân theo, để quyết định một biến phải được chọn từ không gian tên nào.
Độ phân giải phạm vi Quy tắc LEGB Trong Python
Trong Python, quy tắc LEGB được sử dụng để quyết định thứ tự tìm kiếm các không gian tên để phân giải phạm vi. Các phạm vi được liệt kê bên dưới theo thứ bậc [cao nhất đến thấp nhất/hẹp nhất đến rộng nhất]
- địa phương[L]. Được định nghĩa bên trong hàm/lớp
- kèm theo[E]. Được xác định bên trong các hàm kèm theo [Khái niệm hàm lồng nhau]
- Toàn cầu[G]. Được xác định ở mức cao nhất
- Tích hợp[B]. Tên dành riêng trong mô-đun dựng sẵn Python
Phạm vi cục bộ trong Python
Phạm vi cục bộ đề cập đến các biến được xác định trong hàm hiện tại. Luôn luôn, một hàm trước tiên sẽ tra cứu một tên biến trong phạm vi cục bộ của nó. Chỉ khi nó không tìm thấy nó ở đó, phạm vi bên ngoài mới được kiểm tra.
Python3
inner pi variable02
inner pi variable1
inner pi variable2
inner pi variable05
inner pi variable5
inner pi variable07
inner pi variable1____51____52
inner pi variable4
_______01____06____07
inner pi variable4
inner pi variable86
đầu ra
inner pi variable
Khi chạy chương trình trên, việc thực thi hàm bên trong sẽ in giá trị của biến pi cục bộ [mức ưu tiên cao nhất trong quy tắc LEGB] vì nó được xác định và có sẵn trong phạm vi cục bộ.
Phạm vi cục bộ và toàn cầu trong Python
Nếu một biến không được xác định trong phạm vi cục bộ, thì nó sẽ được kiểm tra ở phạm vi cao hơn, trong trường hợp này là phạm vi toàn cầu.
Python3
inner pi variable87
inner pi variable1
inner pi variable2
inner pi variable05
inner pi variable5
inner pi variable07
inner pi variable1____51____52
inner pi variable4
_______01____06____07
inner pi variable4
inner pi variable86
inner pi variable6
inner pi variable7
đầu ra
inner pi variable0
Do đó, như mong đợi, chương trình sẽ in ra giá trị trong phạm vi cục bộ khi thực thi hàm trong[]. Đó là bởi vì nó được định nghĩa bên trong hàm và đó là nơi đầu tiên mà biến được tra cứu. Giá trị pi trong phạm vi toàn cầu được in khi thực thi print[pi] trên dòng 9.
Phạm vi cục bộ, kèm theo và toàn cầu trong Python
Đối với phạm vi kèm theo, chúng ta cần định nghĩa một hàm bên ngoài bao quanh hàm bên trong, nhận xét biến cục bộ pi của hàm bên trong và tham chiếu đến pi bằng cách sử dụng từ khóa nonlocal.
Python3
inner pi variable14
inner pi variable1
inner pi variable2
inner pi variable05
inner pi variable4
inner pi variable5
inner pi variable20
inner pi variable1____51____52
inner pi variable3
inner pi variable1
inner pi variable5
inner pi variable07
inner pi variable28
inner pi variable29
inner pi variable28
inner pi variable31
inner pi variable28
inner pi variable6
inner pi variable7
inner pi variable1
inner pi variable86
inner pi variable4
inner pi variable38
inner pi variable6
inner pi variable7
đầu ra
inner pi variable8
Khi bên ngoài [] được thực thi, bên trong [] và do đó, các hàm in được thực thi, in giá trị của biến số pi kèm theo. Câu lệnh trong dòng 10 tìm kiếm biến trong phạm vi cục bộ bên trong, nhưng không tìm thấy nó ở đó. Vì pi được tham chiếu với từ khóa nonlocal, điều đó có nghĩa là pi cần được truy cập từ hàm bên ngoài [i. e phạm vi bên ngoài]. Tóm lại, biến pi không được tìm thấy trong phạm vi cục bộ, vì vậy các phạm vi cao hơn sẽ được tra cứu. Nó được tìm thấy trong cả phạm vi kèm theo và toàn cầu. Nhưng theo hệ thống phân cấp LEGB, biến phạm vi kèm theo được xem xét mặc dù chúng ta đã xác định một biến trong phạm vi toàn cầu.
Phạm vi cục bộ, kèm theo, toàn cầu và tích hợp
Kiểm tra cuối cùng có thể được thực hiện bằng cách nhập pi từ mô-đun toán học và nhận xét về các biến pi toàn cục, kèm theo và cục bộ như hình bên dưới.
Python3
inner pi variable41
inner pi variable42
inner pi variable43____544
inner pi variable1
inner pi variable4
inner pi variable47
inner pi variable4
inner pi variable5
inner pi variable20
_______01____552
inner pi variable1
inner pi variable5
inner pi variable07
inner pi variable28
inner pi variable29
inner pi variable28
inner pi variable6
inner pi variable7
inner pi variable1
inner pi variable86
inner pi variable4
inner pi variable38
đầu ra
inner pi variable0
Vì, pi không được xác định trong phạm vi cục bộ, kèm theo hoặc toàn cầu, nên phạm vi tích hợp được tra cứu i. e giá trị pi được nhập từ mô-đun toán học. Vì chương trình có thể tìm thấy giá trị của pi trong phạm vi ngoài cùng, nên sẽ thu được đầu ra sau,