1.变量类型
- Python中的变量赋值不需要类型声明,因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。
- 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息,解释器会分配指定的内存。
- 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
1.1 变量的定义、声明与赋值
本来在我的印象中,声明一个变量、定义一个变量没什么区别,不就是一行代码的事情吗?妈耶,我博客一搜还真的有。
说的是,Python定义是指在当前文件内为一个变量向解释器传达信息我要在内存中申请一片儿内存,存变量的名称,具体啥变量我还没想好。(菜鸟教程不是说的变量赋值的时候,才会被创建?)结果去Pycharm里面一试验,发现压根不存在那种不赋值就让你创建的变量,哪怕你赋值一个None的值你也得赋值才能创建变量。(大写的服,这里要和C++、C#区分)。
变量的内存图,在这里因为之前学过点C的原因,在这还是要提一下区分。在C语言中声明一个指针,然后指针的地址固定里面存的可能是值或者另一个指针。但是在Python之中一定是一个指针(就是另外一片内存地址)。
string_name = "张三"
例如上面这段代码的内存图,如下:
说的C与Python的区别就是上图中的左侧内存块中存的,一定是另外一个地址。
多变量赋值:python的多个变量同时赋值举例:
int_height = int_width = int_area = 10
string_name,int_age,float_score = "张萌",40,95.00
同样附上内存图:
变量的值的交换:
string_zhang = "张三"
string_li = "李四"
string_temp = string_zhang
string_zhang = string_li
string_li = string_temp
内存图如下:
注意代码中的temp,在这内存图作用可能不是太明显,因为变量间的赋值像
string_li = string_temp
其实string_li变量指向的是string_temp所指向的值而不是指向它本身。
另外既然python变量类似于C的指针,那么变量的删除也类似与指针的释放,C中的指针释放是用delete关键字,python中是使用del 关键字,如把上面的变量全部释放,则是del string_zhang,string_li,string_temp,另外当没有变量指向一块存有值的内存时,即没有使用者则系统会自动释放。如上面的代码改为:
sting_zhang = "张三"
sting_li = "李四"
string_zhang = string_li
则因为存的值"张三"的那一块内存地址丢失无法找回,则无法再获取那段内存存的值,则无人使用过一会儿内存会自动释放。
变量的定义说完了,内存图也画了大概知道啥意思了,Python中一共提供了五种基本的数据类型:
- 数字
- 字符串
- 列表
- 元组
- 字典
因为其中数字和其他编程语言都是一样的,只需要简单的过一下几个运算符,就不再进行写日记记录;了。而另外四种同为集合比较常用,根据集合的增删改查来对照学习下四种集合。