Gán giá trị cho đối tượng python

Python hỗ trợ số, chuỗi, tập hợp, danh sách, bộ dữ liệu và từ điển. Đây là những kiểu dữ liệu tiêu chuẩn. Tôi sẽ giải thích chi tiết từng người trong số họ

Khai báo và gán giá trị cho biến

Phép gán đặt giá trị cho một biến

Để gán giá trị cho biến, hãy sử dụng dấu bằng (=)

myFirstVariable = 1
mySecondVariable = 2
myFirstVariable = "Hello You"
  • Gán một giá trị được gọi là ràng buộc trong Python. Trong ví dụ trên, chúng tôi đã gán giá trị 2 cho mySecondVariable

Lưu ý cách tôi đã gán giá trị số nguyên là 1 và sau đó là giá trị chuỗi “Xin chào bạn” cho cùng một biến myFirstVariable. Điều này có thể là do các kiểu dữ liệu được nhập động trong python

Đây là lý do tại sao Python được biết đến như một ngôn ngữ lập trình được gõ động

Nếu bạn muốn gán cùng một giá trị cho nhiều biến thì bạn có thể sử dụng phép gán chuỗi

myFirstVariable = mySecondVariable = 1

số

  • Số nguyên, số thập phân, số float được hỗ trợ
value = 1 #integer
value = 1.2 #float with a floating point
  • Long cũng được hỗ trợ. Chúng có hậu tố là L e. g. 9999999999999L

Dây

  • thông tin văn bản. Chuỗi là một chuỗi các chữ cái
  • Một chuỗi là một mảng các ký tự
  • Một giá trị chuỗi được đặt trong dấu ngoặc kép. dấu ngoặc đơn, đôi hoặc ba
name = 'farhad'
name = "farhad"
name = """farhad"""
  • Chuỗi là bất biến. Một khi chúng được tạo ra, chúng không thể thay đổi được. g
a = 'me'Updating it will fail:
a[1]='y'
It will throw a Type Error
  • Khi các biến được gán một giá trị mới thì bên trong, Python sẽ tạo một đối tượng mới để lưu trữ giá trị

Do đó, một tham chiếu/con trỏ tới một đối tượng được tạo. Con trỏ này sau đó được gán cho biến và kết quả là biến đó có thể được sử dụng trong chương trình

Chúng ta cũng có thể gán một biến cho một biến khác. Tất cả những gì nó làm là một con trỏ mới được tạo trỏ đến cùng một đối tượng

a = 1 #new object is created and 1 is stored there, new pointer is created, the pointer connects a to 1
b = a #new object is not created, new pointer is created only that connects b to 1

Các biến có thể có phạm vi cục bộ hoặc toàn cầu

Phạm vi cục bộ

  • Ví dụ, các biến được khai báo trong một hàm chỉ có thể tồn tại trong khối
  • Khi khối tồn tại, các biến cũng không thể truy cập được
def some_funcion():
TestMode = False
print(TestMode) <- Breaks as the variable doesn't exist outside

Trong Python, khối vòng lặp if-else và for/while không tạo ra bất kỳ phạm vi cục bộ nào

for i in range(1, 11):
test_scope = "variable inside for loop"
print(test_scope)

đầu ra

________số 8

Với khối if-else

is_python_awesome = Trueif is_python_awesome:
test_scope = "Python is awesome"
print(test_scope)

đầu ra

myFirstVariable = mySecondVariable = 1
0

Phạm vi toàn cầu

  • Các biến có thể được truy cập từ bất kỳ chức năng nào có phạm vi toàn cầu. Chúng tồn tại trong khung __main__
  • Bạn có thể khai báo một biến toàn cục bên ngoài các hàm. Điều quan trọng cần lưu ý là để gán một biến toàn cầu một giá trị mới, bạn sẽ phải sử dụng từ khóa “toàn cầu”
myFirstVariable = mySecondVariable = 1
1

Việc xóa dòng “global TestMode” sẽ chỉ đặt biến thành Sai trong hàm some_function()

Ghi chú. Mặc dù tôi sẽ viết thêm về khái niệm mô-đun sau, nhưng nếu bạn muốn chia sẻ một biến toàn cục trên một số mô-đun thì bạn có thể tạo một tệp mô-đun dùng chung e. g. cấu hình. py và định vị biến của bạn ở đó. Cuối cùng, nhập mô-đun dùng chung vào mô-đun người tiêu dùng của bạn

Tìm loại biến

  • Nếu bạn muốn tìm loại biến, bạn có thể triển khai
myFirstVariable = mySecondVariable = 1
2

Dấu phẩy trong các biến số nguyên

  • Dấu phẩy được coi như một dãy các biến e. g
myFirstVariable = mySecondVariable = 1
33. hoạt động
  • Cho phép chúng tôi thực hiện tính toán trên các biến

Phép toán số

  • Python hỗ trợ cơ bản *, /, +, -
  • Python cũng hỗ trợ phân chia tầng
myFirstVariable = mySecondVariable = 1
4
  • Ngoài ra, python hỗ trợ lũy thừa thông qua toán tử **
myFirstVariable = mySecondVariable = 1
5
  • Python cũng hỗ trợ toán tử Modulus (phần còn lại)
myFirstVariable = mySecondVariable = 1
6

Ngoài ra còn có một phương pháp dựng sẵn divmod. Nó trả về bộ chia và mô đun

myFirstVariable = mySecondVariable = 1
7

Hoạt động chuỗi

Concat Chuỗi

myFirstVariable = mySecondVariable = 1
8

Hãy nhớ rằng chuỗi là một kiểu dữ liệu bất biến, do đó, việc nối các chuỗi sẽ tạo ra một đối tượng chuỗi mới

Chuỗi lặp lại

myFirstVariable = mySecondVariable = 1
9

cắt lát

value = 1 #integer
value = 1.2 #float with a floating point
0

đảo chiều

value = 1 #integer
value = 1.2 #float with a floating point
1

Chỉ số tiêu cực

Nếu bạn muốn bắt đầu từ ký tự cuối cùng thì hãy sử dụng chỉ số âm

value = 1 #integer
value = 1.2 #float with a floating point
2

Nó cũng được sử dụng để loại bỏ bất kỳ dòng/dấu cách mới nào

Mỗi phần tử trong một mảng có hai chỉ mục

  • Từ trái sang phải, chỉ số bắt đầu từ 0 và tăng dần 1
  • Từ phải sang trái, chỉ số bắt đầu từ -1 và giảm dần 1
  • Do đó, nếu chúng ta thực hiện y[0] và y[-len(y)] thì cả hai sẽ trả về cùng một giá trị. 'một'
value = 1 #integer
value = 1.2 #float with a floating point
3

Tìm chỉ mục

value = 1 #integer
value = 1.2 #float with a floating point
4

Đối với Regex, sử dụng

  • tách ra(). tách một chuỗi thành một danh sách thông qua regex
  • phụ(). thay thế chuỗi phù hợp thông qua regex
  • subn(). thay thế chuỗi phù hợp thông qua regex và trả về số lần thay thế

Vật đúc

  • str(x). thành chuỗi
  • int(x). Để số nguyên
  • nổi(x). để nổi
  • bộ (danh sách). để tuple. in(tuple([1,2,3]))
  • danh sách (bộ (1,2,3)). Liệt kê. in(danh sách((1,2,3)))

Ghi nhớ danh sách có thể thay đổi (có thể cập nhật) và tuple là bất biến (chỉ đọc)

Đặt hoạt động

  • Bộ này là một bộ sưu tập dữ liệu không có thứ tự mà không có bất kỳ sự trùng lặp nào. Chúng ta có thể định nghĩa một biến tập hợp là
value = 1 #integer
value = 1.2 #float with a floating point
5

Bộ giao nhau

  • Để có được những gì phổ biến trong hai tập hợp
value = 1 #integer
value = 1.2 #float with a floating point
6

sự khác biệt trong bộ

  • Để lấy sự khác biệt giữa hai bộ
value = 1 #integer
value = 1.2 #float with a floating point
7

Liên minh các bộ sưu tập

  • Để có được một tập hợp kết hợp khác biệt của hai tập hợp
value = 1 #integer
value = 1.2 #float with a floating point
8

Toán tử bậc ba

  • Được sử dụng để viết các câu lệnh có điều kiện trong một dòng

cú pháp

[Nếu Đúng] nếu [Biểu thức] Khác [Nếu Sai]

Ví dụ

value = 1 #integer
value = 1.2 #float with a floating point
9Nhận dạng đối tượng

Bây giờ tôi sẽ cố gắng giải thích chủ đề quan trọng của Nhận dạng đối tượng

Bất cứ khi nào chúng ta tạo một đối tượng trong Python, chẳng hạn như biến, hàm, v.v., trình thông dịch Python cơ bản sẽ tạo một số xác định duy nhất đối tượng đó. Một số đối tượng được tạo trước

Khi một đối tượng không còn được tham chiếu trong mã thì nó sẽ bị xóa và số nhận dạng của nó có thể được sử dụng bởi các biến khác

  • Mã Python được tải vào các khung được đặt trong Ngăn xếp
  • Các hàm được tải trong một khung cùng với các tham số và biến của chúng
  • Sau đó, các khung được tải vào một ngăn xếp theo đúng thứ tự thực hiện
  • Ngăn xếp phác thảo việc thực hiện các chức năng. Các biến được khai báo bên ngoài hàm được lưu trữ trong __main__
  • Ngăn xếp thực thi khung cuối cùng trước

Bạn có thể sử dụng truy nguyên để tìm danh sách các chức năng nếu gặp lỗi

thư mục () và trợ giúp ()

  • dir() - hiển thị các ký hiệu được xác định
  • help() — hiển thị tài liệu

Hãy hiểu nó một cách chi tiết

Hãy xem xét mã dưới đây

name = 'farhad'
name = "farhad"
name = """farhad"""
0

var_one và var_two là hai biến được định nghĩa trong đoạn mã trên. Cùng với các biến, một hàm có tên func_one cũng được định nghĩa. Một lưu ý quan trọng cần ghi nhớ là mọi thứ đều là đối tượng trong Python, kể cả hàm

Trong hàm, chúng tôi đã gán giá trị 234 cho var_one và tạo một biến mới có tên var_three và gán cho nó giá trị là 'abc'

Bây giờ, hãy hiểu mã với sự trợ giúp của dir() và id()

Đoạn mã trên cùng các biến và hàm của nó sẽ được tải trong khung Global. Khung toàn cầu sẽ chứa tất cả các đối tượng mà các khung khác yêu cầu. Ví dụ, có nhiều phương thức tích hợp được tải trong Python có sẵn cho tất cả các khung. Đây là các khung chức năng

Chạy đoạn mã trên sẽ in

name = 'farhad'
name = "farhad"
name = """farhad"""
1

Các biến có tiền tố là __ được gọi là các biến đặc biệt

Lưu ý rằng var_three chưa khả dụng. Hãy thực thi func_one(var_one) và sau đó đánh giá dir()

name = 'farhad'
name = "farhad"
name = """farhad"""
2

Chúng ta sẽ lại thấy cùng một danh sách

name = 'farhad'
name = "farhad"
name = """farhad"""
3

Điều này có nghĩa là các biến trong func_one chỉ nằm trong func_one. Khi func_one được thực thi thì Frame được tạo. Python là từ trên xuống nên nó luôn thực hiện các dòng từ trên xuống dưới

Khung chức năng có thể tham chiếu các biến trong khung toàn cầu nhưng bất kỳ khung chức năng nào khác không thể tham chiếu các biến giống nhau được tạo trong chính nó. Chẳng hạn, nếu tôi tạo một hàm mới func_two để cố in var_three thì nó sẽ bị lỗi

name = 'farhad'
name = "farhad"
name = """farhad"""
4

Chúng tôi gặp lỗi NameError. tên 'var_three' không được xác định

Điều gì sẽ xảy ra nếu chúng ta tạo một biến mới bên trong func_two() và sau đó in dir()?

name = 'farhad'
name = "farhad"
name = """farhad"""
5

Điều này sẽ in var_four vì nó là cục bộ của func_two

Bài tập hoạt động như thế nào trong Python?

Đây là một trong những khái niệm quan trọng nhất cần hiểu trong Python. Python có hàm id()

Khi một đối tượng (hàm, biến, v.v. ) được tạo, CPython cấp cho nó một địa chỉ trong bộ nhớ. Hàm id() trả về “danh tính” của một đối tượng. Nó thực chất là một số nguyên duy nhất

Chẳng hạn, hãy tạo bốn biến và gán giá trị cho chúng

name = 'farhad'
name = "farhad"
name = """farhad"""
6

Các id sẽ được in như sau

Biến1. 1747938368
Biến2. 152386423976
Biến3. 152382712136
Biến4. 152382633160

Mỗi biến đã được gán một giá trị số nguyên mới

Giả định đầu tiên là bất cứ khi nào chúng ta sử dụng phép gán “=” thì Python sẽ tạo một địa chỉ bộ nhớ mới để lưu trữ biến. Có thật 100% không ạ

Tôi sẽ tạo hai biến và gán chúng cho các biến hiện có

name = 'farhad'
name = "farhad"
name = """farhad"""
7

Python in

Biến1. 1747938368
Biến4. 819035469000
Biến5. 1747938368
Biến6. 819035469000

Lưu ý rằng Python không tạo địa chỉ bộ nhớ mới cho hai biến. Lần này, nó chỉ cả hai biến vào cùng một vị trí bộ nhớ

Hãy đặt một giá trị mới cho biến1. Hãy nhớ 2 là số nguyên và số nguyên là kiểu dữ liệu không thay đổi

name = 'farhad'
name = "farhad"
name = """farhad"""
8

Điều này sẽ in

Biến1. 1747938368
Biến1. 1747938400

Điều đó có nghĩa là bất cứ khi nào chúng ta sử dụng dấu = và gán một giá trị mới cho một biến không phải là tham chiếu biến thì bên trong một địa chỉ bộ nhớ mới sẽ được tạo để lưu trữ biến đó. Hãy xem nếu nó giữ

Điều gì xảy ra khi biến là kiểu dữ liệu có thể thay đổi?

biến6 là một danh sách. Hãy thêm một mục vào nó và in địa chỉ bộ nhớ của nó

name = 'farhad'
name = "farhad"
name = """farhad"""
9

Lưu ý rằng địa chỉ bộ nhớ vẫn giữ nguyên cho biến vì đây là kiểu dữ liệu có thể thay đổi và chúng tôi chỉ cần cập nhật các phần tử của nó

Biến6. 678181106888
Biến6. 678181106888

Hãy tạo một hàm và truyền một biến cho nó. Nếu chúng ta đặt giá trị của biến bên trong hàm, nó sẽ làm gì bên trong hàm?

a = 'me'Updating it will fail:
a[1]='y'
It will throw a Type Error
0

Chúng tôi nhận được

678181106888
Biến6. 678181106888

Lưu ý rằng id của biến_to_update trỏ đến id của biến 6

Điều này có nghĩa là nếu chúng ta cập nhật biến_to_update trong một hàm và nếu biến_to_update là kiểu dữ liệu có thể thay đổi thì chúng ta sẽ cập nhật biến6

a = 'me'Updating it will fail:
a[1]='y'
It will throw a Type Error
1

bản in này

Biến6. [‘new’]
Biến6. [‘mới’, ‘bên trong’]

Nó cho chúng ta thấy rằng cùng một đối tượng được cập nhật trong chức năng như mong đợi vì cả hai đều có cùng một ID

Nếu chúng ta gán một giá trị mới cho một biến, bất kể đó là kiểu dữ liệu không thay đổi và có thể thay đổi thì thay đổi sẽ bị mất khi chúng ta ra khỏi hàm

a = 'me'Updating it will fail:
a[1]='y'
It will throw a Type Error
2

Biến6. [‘new’]
344115201992
Biến6. [‘mới’]

Bây giờ là một kịch bản thú vị. Python không phải lúc nào cũng tạo địa chỉ bộ nhớ mới cho tất cả các biến mới. Hãy để tôi giải thích

Cuối cùng, điều gì sẽ xảy ra nếu chúng ta gán cho hai biến khác nhau một giá trị chuỗi, chẳng hạn như 'a'. Nó sẽ tạo hai địa chỉ bộ nhớ?

a = 'me'Updating it will fail:
a[1]='y'
It will throw a Type Error
3

Lưu ý, cả hai biến có cùng vị trí bộ nhớ

Biến9. 792473698064
Biến10. 792473698064

Điều gì sẽ xảy ra nếu chúng ta tạo hai biến khác nhau và gán cho chúng một giá trị chuỗi dài

a = 'me'Updating it will fail:
a[1]='y'
It will throw a Type Error
4

Lần này Python đã tạo hai vị trí bộ nhớ cho hai biến

Biến9. 541949933872
Biến10. 541949933944

Điều này là do Python tạo bộ đệm nội bộ chứa các giá trị khi nó khởi động. Điều này được thực hiện để cung cấp kết quả nhanh hơn. Nó tạo ra một số địa chỉ bộ nhớ cho các số nguyên nhỏ, chẳng hạn như từ -5 đến 256 và các giá trị chuỗi nhỏ hơn. Đây là lý do tại sao cả hai biến trong ví dụ của chúng tôi đều có cùng một ID

Làm thế nào một người có thể gán giá trị cho các đối tượng?

Các đối tượng được gán giá trị bằng cách sử dụng . (Dấu bằng = , cũng có thể được sử dụng. ) Ví dụ lệnh sau gán giá trị 5 cho đối tượng x. Sau phép gán này, đối tượng x 'chứa' giá trị 5.

Các cách khác nhau để gán giá trị cho biến Python là gì?

Cách gán giá trị cho biến trong Python .
Khởi tạo trực tiếp. Trong phương thức này, chúng ta khai báo trực tiếp biến và gán giá trị bằng dấu =. .
Ví dụ. x = 5 x = 9 in(a).
đầu ra. .
Sử dụng if-else. Chúng ta có thể khởi tạo giá trị của một biến bằng cách sử dụng một số điều kiện. .
Ví dụ. .
đầu ra

Bạn có thể gán một biến cho một biến trong Python không?

Việc gán một biến cho một biến khác sẽ tạo bí danh cho từng biến . Bí danh là biến trỏ đến cùng một đối tượng trong bộ nhớ như một biến khác. Trong ví dụ trên, cả hai biến var1 và var2 đều là bí danh của nhau. Trong Python, có thể hủy tham chiếu.