search
HomeBackend DevelopmentPython TutorialDetailed graphic explanation of Python variables and assignments

Detailed graphic explanation of Python variables and assignments

Apr 09, 2018 am 09:54 AM
pythonGraphics and textDetailed explanation

This time I will bring you a detailed graphic explanation of Python variables and assignments. What are the precautions when using Python variables and assignments? Here are practical cases, let’s take a look.

Python is a unique language, which is very different from the C language. Many newbies who are new to Python say they don’t understand variables and assignment. Anyone who has studied C knows that when assigning a value to a variable, you need to specify it first. Data type, at the same time, a memory area will be opened for storing values, for example:

int a = 1;

Detailed graphic explanation of Python variables and assignments

a is a small area in the memory space, It's like a small box in a large room. Assignment is to load the integer 1 into the box.

Now reassign the value of variable a

a = 2;

Detailed graphic explanation of Python variables and assignments2

The box is still the same box, which means that the memory address has not changed, but the value in the memory has changed. Yes, it became 2.

Let’s look at it again:

int b = a;

Detailed graphic explanation of Python variables and assignments3

When assigning variable a to another variable b, it is equivalent to copying the value and passing it to variable b. b is a newly opened memory area

In Python, the strict name of "variable" is "name (name)", which can also be understood as a label, just like our people's names, the name is A label attached to a person.

>>> 10-a
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined</module></stdin>

For example, the error reported above is that name 'a' is not defined, but is not called variable.

In Python, assigning a value to a variable is equivalent to labeling an object, just like we give names to people. The variable itself has no meaning. It has no type information, and the real information is in the object.

For example:

a = 1

Detailed graphic explanation of Python variables and assignments

Python will first allocate a memory space to create an integer object 1, and then label this 1 with the name a .

Then execute

a=2

Python will then create the integer object 2 in another memory area, and then tear off the label a from 1 and paste it on 2. At this time, we can no longer pass a to get the value 1.

Detailed graphic explanation of Python variables and assignments

Now assign the name a to another name b

b = a

Detailed graphic explanation of Python variables and assignments

It is equivalent to attaching it to the 2 just now A new label b. Note that this is completely different from the C language. There is no need to allocate memory space when defining b. In this way, we can access 2 through a or 2 through b. The accesses are the same. An object is just like when we name a baby with both a nickname and a big name, they actually name the same person.

Although we usually use the term "variable" in Python (because this is a common term in Programming languages), we need to understand that variables in Python are different In other languages, a variable is just a name.

After understanding variables and assignments in Python, let’s look at function parameterspassing, as shown below:

>>> def fun_a(a):
...   a = a+4
...
>>> g = 0
>>> fun_a(g)
>>> g
0

When the global variable g is passed to the function fun_a, it is quite The parameter a in the function will also be attached to 0 as a label, and then a will be reassigned (a=a 4), which is equivalent to tearing off the label a from 0 and attaching it to 4, and then g will still be the label on 0.

Detailed graphic explanation of Python variables and assignments

Let’s look at this function again. What is passed is a list object

>>> def fun_b(names):
...   names[0] = ['x', 'y']
...
>>> n_list = ['a','b','c']
>>> fun_b(n_list)
>>>
>>> n_list
[['x','y'], 'b', 'c']

与前面的步骤还是一样的,names 和 n_list 都是['a','b','c']上的一个标签,只是列表中的第0个元素被重新赋值了,但是names和 n_list 依然都贴在这个列表对象身上,虽然 n_list的值更新了,但对象依然是原来那个对象。就好比张三和小张都是同一个人,现在给小张换件衣服时,其实就是给张三换件衣服,人还是那个人,只是它身上的东西发生了变化。

Detailed graphic explanation of Python variables and assignments

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

python字符串如何转为二维数组

Event emitter的监听事件

The above is the detailed content of Detailed graphic explanation of Python variables and assignments. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Explain the performance differences in element-wise operations between lists and arrays.Explain the performance differences in element-wise operations between lists and arrays.May 06, 2025 am 12:15 AM

Arraysarebetterforelement-wiseoperationsduetofasteraccessandoptimizedimplementations.1)Arrayshavecontiguousmemoryfordirectaccess,enhancingperformance.2)Listsareflexiblebutslowerduetopotentialdynamicresizing.3)Forlargedatasets,arrays,especiallywithlib

How can you perform mathematical operations on entire NumPy arrays efficiently?How can you perform mathematical operations on entire NumPy arrays efficiently?May 06, 2025 am 12:15 AM

Mathematical operations of the entire array in NumPy can be efficiently implemented through vectorized operations. 1) Use simple operators such as addition (arr 2) to perform operations on arrays. 2) NumPy uses the underlying C language library, which improves the computing speed. 3) You can perform complex operations such as multiplication, division, and exponents. 4) Pay attention to broadcast operations to ensure that the array shape is compatible. 5) Using NumPy functions such as np.sum() can significantly improve performance.

How do you insert elements into a Python array?How do you insert elements into a Python array?May 06, 2025 am 12:14 AM

In Python, there are two main methods for inserting elements into a list: 1) Using the insert(index, value) method, you can insert elements at the specified index, but inserting at the beginning of a large list is inefficient; 2) Using the append(value) method, add elements at the end of the list, which is highly efficient. For large lists, it is recommended to use append() or consider using deque or NumPy arrays to optimize performance.

How can you make a Python script executable on both Unix and Windows?How can you make a Python script executable on both Unix and Windows?May 06, 2025 am 12:13 AM

TomakeaPythonscriptexecutableonbothUnixandWindows:1)Addashebangline(#!/usr/bin/envpython3)andusechmod xtomakeitexecutableonUnix.2)OnWindows,ensurePythonisinstalledandassociatedwith.pyfiles,oruseabatchfile(run.bat)torunthescript.

What should you check if you get a 'command not found' error when trying to run a script?What should you check if you get a 'command not found' error when trying to run a script?May 06, 2025 am 12:03 AM

When encountering a "commandnotfound" error, the following points should be checked: 1. Confirm that the script exists and the path is correct; 2. Check file permissions and use chmod to add execution permissions if necessary; 3. Make sure the script interpreter is installed and in PATH; 4. Verify that the shebang line at the beginning of the script is correct. Doing so can effectively solve the script operation problem and ensure the coding process is smooth.

Why are arrays generally more memory-efficient than lists for storing numerical data?Why are arrays generally more memory-efficient than lists for storing numerical data?May 05, 2025 am 12:15 AM

Arraysaregenerallymorememory-efficientthanlistsforstoringnumericaldataduetotheirfixed-sizenatureanddirectmemoryaccess.1)Arraysstoreelementsinacontiguousblock,reducingoverheadfrompointersormetadata.2)Lists,oftenimplementedasdynamicarraysorlinkedstruct

How can you convert a Python list to a Python array?How can you convert a Python list to a Python array?May 05, 2025 am 12:10 AM

ToconvertaPythonlisttoanarray,usethearraymodule:1)Importthearraymodule,2)Createalist,3)Usearray(typecode,list)toconvertit,specifyingthetypecodelike'i'forintegers.Thisconversionoptimizesmemoryusageforhomogeneousdata,enhancingperformanceinnumericalcomp

Can you store different data types in the same Python list? Give an example.Can you store different data types in the same Python list? Give an example.May 05, 2025 am 12:10 AM

Python lists can store different types of data. The example list contains integers, strings, floating point numbers, booleans, nested lists, and dictionaries. List flexibility is valuable in data processing and prototyping, but it needs to be used with caution to ensure the readability and maintainability of the code.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),