大家好,欢迎来到IT知识分享网。
解释
(1)个人解释:
解释1:
变量就好比一个容器,这个容器装着一些数据或者值。就好比一个水杯里面装着水,杯就是容器,水就是数据
解释2:
变量就好比一个图书馆的书架子,架子上都有编号,对应编码的架子上都有数这个编码就是变量,里面放的书就是数据
解释3:
变量就好比小时候我们的外号,这个外号就是变量,而外号的人就是我们自己
总之,变量就是一个指向昵称,这个昵称就代表要指向的内容,一般叫变量赋值。
(2)官方解释:
在《计算机科学概述》中,变量是这样定义的:“高级程序设计语言允许使用描述性的名字指向主存储器中的位置,而不必再使用数字地址,这样的名字称为变量(variable)。之所以是这样取名是因为,随着程序的执行,只要改变存储在这个位置里的值,那么与改名字相联系的值就会改变。”
声明
a = ” 你好 ” 。我声明了一个变量(不需要声明数据类型哦!),变量的左侧就是变量的名称,右侧就是变量的内容。变量的名称可不是随便起的哦,是有一个简单的规则的,叫做变量名称名称规则,如下:
(1)驼峰,下环线比较常用:myName,my_name (2)只能有数字,字母,下划线组成 (3)不能以数字开头 (4)不能是关键字:type,bool,float,int等, (5)区分大小写:myname myName 是不同的标识符
注意,如果想知道哪些是关键字,那么就引入keyword, 可打印出来python的关键字哦!
内存指向
其实声明变量就是向内存要空间,用于存放数据,至于在这个空间里面放什么东西,其实就是放什么数据类型,也就是这个容器(变量)的类型,比如字符串,整型,列表,元组,字典等。
(1)场景一:声明一个变量name
name = "wupeiqi"
(2)场景二:声明一个变量name,再声明变量a
name = "wupeiqi" name = "alex"
(3)场景三:声明一个变量name,再声明变量new_name
name = "wupeiqi" new_name=name
(4)场景四:
name = "wupeiqi" new_name=name name = "alex"
(5)场景五:
num = 18 age = str(num)
关于内存处理,垃圾回收,驻留机制等以后慢慢都会学到的!
以上就是关于变量储存在内存中的简单理解,那么变量既然指向的是内存地址,那么这个内存地址什么时候可以变化,什么时候不可以改变呢?其实这个是根据变量赋值的数据类型所规则的,也可以叫做变量的可变与不可变!
补充几句:
(1)首次使用变量会在内存中划分空间,并初始化值
(2)再次使用变量不再划分空间
(3)修改原空间的值,如果是可变对象就需要重新划分空间,如果是不可变对象就不用重新划分(切记变与不变指的是内存空间的值或者叫内存地址)
可变与不可变
可变与不可变对于变量来讲,是指的变量赋值的值的数据类型,python中有些数据类型不可改变,有些数据类型可以改变:
不可改变的数据类型:数值,字符串,元组
可以改变的数据类型:列表,字典,集合
(1)什么是可变:内存的值是可以变化的,但是内存地址不变化。就好图书馆的书架,书架中的书是可以增多或者较少的,但是书架标签还是那个标签。
(2)什么是不可变:内存的值不是可以变化的,如果值发生了变化会重新创建新的也就是重新分配内存地址
可变:对象指向内存的值是可以改变的 :如:dict (字典) , list(列表) , set(集合) listInfo = [1,2,3] print(id(listInfo)) listInfo.pop() print(id(listInfo))
打印结果如下:内存地址完全一样,表明内存地址的值改变了但是内存地址不变
08 08
———————————————————————————————————–
不可变:对象指向内存的值是不可以改变的 :如:int,str,float,tuple(元组) 无论是不同对象的值一样,还是同一个对象的值变化,内存地址都不一样,说明重新分配 内存空间了。
这个时候对应的变量还是否有效就又涉及到作用域的问题了,以后会详细说明!
常量
是指在程序运行中不会改变的变量,如圆周率等。
在python中,没有真正常量的概念,只不过通过一些约定的规则来表示常量,如全是大写的变量名来表示常量等。
补充:数据类型: long int 在python3中废弃,因为所有int类型都被视为长整型
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/168894.html