导航:首页 > 编程语言 > python关于变量的说法

python关于变量的说法

发布时间:2023-02-05 04:18:55

❶ 浅谈python中的变量赋值

在python中,变量赋值的语法比较简单,语法就是 “变量名 = 对象”,由于python属于动态语音,所以不需要像c、 java那样在变量赋值时需要声明变量的类型。

c 变量赋值

int x = 1;

python 变量赋值

x = 1

y = "hello world!"

a = [1, 2]

b = ('a', 'b')

c = {"foo": "bar"}

python 变量赋值中,所涉及到的变量命名是有一定规则的:

1. 变量名只能包含字母、数字和下划线。变量名可以字母或下划线开头,但不能以数字开头,例如,可将变量命名为name_1,但不能将其命名为1_name

2. 变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名name_one可行,但变量名name one会引发错误。

3. 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如not、pass等。

4. 变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好, 虽说简短好,但是不能依照自己的意愿随意简写,尽量使用大家约定俗成的简写,如果不是还不如写全拼。

5. python 变量名中大小写敏感,所以 NAME, Name, name 代表三个不同的表里名, 这里提一下就是慎用小写字母l和大写字母O,因给他们可能被人错看成数字1和0;

再说变量赋值中赋予给变量的值,python中万事皆对象,所以python中只要是对象就能给变量赋值。如:

    x = 1 # x赋值为数字1;

    x = sum # x赋值为内建求和函数sum;

python的赋值真实上说应该不是赋值,而更像是“引用”,如何理解“引用”呢,python中一直对象的生成是会在内存中分配给一个内存地址,这个内存地址可以使用id()方法去获取,然后在变量赋值时,将变量直接引用该对象的内存地址,进而完成变量赋值,如:

    x = 1, 赋值时x直接引用1所在内存的地址, y = x, 此时是y直接引用x的所指向的内存地址

python中有判断变量的方法如 is() 和 ==,二者在判断变量时是有区别的,is函数是判断变量的内存地址是否相同,而 == 是判断变量的值是否相同,举例说明:

    a = 1; b = 1.0

    a is b  # False

    a == b # True

小心python变量赋值的陷阱

    看到上面的所述知道了python变量赋值实则是引用,引用的是对象的内存地址。所赋的值可以分两类,一类是可变的,如列表,字典,集合;一类是不可变的,如字符串、元组。所以当对象为可变类型时就会出现一种情景,我们举例说明:

    x = [1, 2, 3]

    y = x

    print x == y    # True

    print x is y    # True

    print x     # [1, 2, 3]

    print y     # [1, 2, 3]

    y.append(4)

    print x    # [1, 2, 3, 4]

    print y    # [1, 2, 3, 4]

可以看到y在进行调整时(添加了一个元素),x也跟着变动了,这进一步说明了,python中的变量赋值时引用,x,y 赋值时指向了同一处内存地址,所以当y变动时,x同样也发送了变化,解决这中现象的方法可以是x, y = [1,2,3], [1,2,3]这样赋值,虽说此时 x==y 是True,但是确实是2个不同的内存地址,所以 x is y 则是 False。或者可以使用模块,实质是相同的,创建2个不同的内存地址,使其分离。

❷ Python变量可以只定义不赋值吗

题主你好,

答案肯定是不可以的.

我在官方文档上找了一段话,希望对你的理解有帮助:

先看第二个红框,说的是:

如果使用一个未被定义的变量, 解释器会报错.

关键是括号中粉底的那三个词assigned a value,用来解释python中怎么才叫定义一个变量,也就是说你想定义一个变量必须要给它赋值,只有给一个名称赋了值,才叫定义了一个变量. //有的语言中, 可以使用某个关键字先声明一个变量, 而赋值的操作可以后面做; 还有的语言,你可以只声明变量而不赋值, 后面使用该未赋值的变量时, 解释器会根据你声明的类型赋一个默认值,等等; 也就是说不同语言对变量的处理逻辑可能不同.而 python对变量的处理逻辑就是: 定义和赋值二者绑在一块了, 即赋值的过程同时完成了"定义+赋值", 不存在"只定义"这个过程.

而python中变量的赋值在第一个红框中也说明了,就是 使用等号连接变量和值, 左边变量右边值.

-----

希望可以帮到题主, 欢迎追问, 如果有啥错误欢迎指正.

❸ 在python中,变量就是指针,可以这样理解么

不是。
应该是指向指针的指针,只不过变量本身的地址在python中不提供访问途径。也就是只能访问这个指针所指地址(指针)和此地址里的内容。
比如
python中 a="xyz"
a本身的地址(对应的C运算:&a)python里是没有办法看到的。
python的id(a),返回的是"xyz"在内存中的起始地址,而不是存储a变量本身的地址。

❹ python的基本语法

python的基本语法如下:

一、变量的定义。

编程语言中,存储一个数据,需要用变量进行接收。

2.标识符的命名规则。

标识符只能由字母、下划线“_”、数字组成。

标识符不能以数字开头。

标识符不能使用关键字。

标识符对大小写敏感。

(建议:标识符命名应“见名知意”)

3.python中的关键字。

'False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'

❺ 求Python中全局变量的详细理解

题主你好,

拿实际例子和你说一下吧, 更好理解一些.

我们在拿到一个python脚本的时候,往往发现里面都有如下语句:

=====

希望可以帮到题主, 欢迎追问.

❻ python中要在什么情况下使用变量

在python中,变量是存储在内存中的值,也就意味着使用python中的变量会开辟内存空间,python解释器会根据变量类型去开辟不同的内存空间进行变量值的存储,当你的程序需要存储值内容的时候就需要用到变量。

在Python中,变量定义时不需要提前定义类型,解释器会自动进行定义,如果需要改变量的类型则需要使用另外的函数。在使用变量的时候,不需要提前声明,只需要给这个变量赋值即可。但是,当用变量的时候,必须要给这个变量赋值;如果只写一个变量,而没有赋值,那么Python认为这个变量没有定义。

❼ python中局部变量和全局变量的区别

全局变量:在函数外或全局空间中声明的变量称为全局变量,这些变量可以由程序中的任何函数访问;
局部变量:在函数内声明的任何变量都称为局部变量,此变量存在局部空间中,而不是全局空间中。

❽ python中的变量与垃圾回收

python中的变量和java中的变量本质是不一样的,python中的变量实质上是一个指针(指针的大小固定的)

is可以用来判断id是否相等

对于这种赋值,虽然所赋值是相同的,但是他们的id不同,即他们是不同的对象,a is b 即为false ,但是有个特例: a = 1 b = 1 时他们的id相同。其实这是python内部的优化机制,对于小整数和小的字符串来说,python在前边定义一个对象时,下次在遇到时会直接调用前边生成的对象,而不会去重新申请一个。

他们的对象内存地址不一样,但是,a和b里的值是相等的,这是由于a和b都为list,而list里有内置的魔法函数 eq 通过 eq 魔法函数可以判断里边两个的值是否相同,若相同则返回True

python中垃圾回收的算法回收的算法是采用引用计数,当程序中有一个变量引用该python对象时,python会自动保证该对象引用计数为1;当程序中有两个变量引用该python对象时,python会自动保证该对象计数器为2, 以此类推,当一个对象的引用计数器变为0 时,则说明程序中不再有变量对其进行引用,因此python就会回收该对象。

大多数情况,python的ARC都能准确,高效的回收系统中的每一个对象。但如果系统中出现循环引用时,比如a对象持有一个实例变量引用对象b,而b对象又持有一个实例变量引用对象a,此时 两个对象的计数器都为1, 而实际上python不再需要这两个对象,也没有程序在引用他们,系统回收他们时python的垃圾回收器就没有那儿快,要等到专门的循环垃圾回收器(Cyclic Garbage Collector)来检测并回收这种引用循环

当一个对象被垃圾回收式,python就会自动调用该对象的 del 方法

当没有注释掉x = im时, item对象被两个变量所引用,所以在执行完del im时并不会去回收item对象,所以先输出--------,当程序完全执行完成后,引用item的对象的变量被释放,然后系统便会执行 del 方法,回收item对象。

当 x = im被注释后,只有一个变量去引用item对象,所以在执行完后程序变回去调用 del 方法,回收item对象,然后在继续向下执行 输出-----

阅读全文

与python关于变量的说法相关的资料

热点内容
电影院默认场区什么意思 浏览:657
韩国 禁忌 姐弟爱唯美电影 浏览:82
极限压缩方法 浏览:263
小苮儿清读210部有声下载网盘 浏览:382
qt程序编译成功后 浏览:616
富二代装穷的电影有哪些 浏览:394
吓一跳命令 浏览:189
猫宝宝资源 浏览:954
python3d库 浏览:735
小苮儿网盘提取码 浏览:238
怎么给磁盘加密c盘 浏览:381
内核驱动编译v1 浏览:575
韩国电影伦理中文 浏览:67
大乐透复式算法计算器 浏览:845
啄木鸟40部 浏览:502
我的世界服务器版本下载地址 浏览:925
怎么制作一个游戏的服务器 浏览:800
python中xticks用法 浏览:905
西瓜视频解压软心砖 浏览:137
程序员被孤立怎么办 浏览:807