python3 --- 2.变量,数据类型的了解

python 的变量很有意思。有过一点基础语言的人都知道一个变量在声明前一定要给它指定类型。

例:JAVA  声明 变量名为 name 的时候一定要  String name = “某某”; 如果直接写  name = “某某”就会报错.

但是 但是 Python 就可以不用声明类型。  就可以 直接写  name = “某某”,但是它是怎么确定类型的呢,是由对象值来决定的。

例如:

name = “某某”,这个某某系统会认定是个字符串,所以 name 现在的类型为str.

age = 12 系统会判断这个12是数字类型。所以age就是int类型。 说到 int,那就先简单说一句,python里的int没有界限,只要你内存足够大,它可以放任何范围的整形。这点跟java区别很大。java 有 short,int,long等等整形的类型。

我们可以在编译器中检查一下。 首先 我们声明三个变量:

name = “张三”

age = 24

score = 95.5

然后运用python3的一个函数 type()来查看变量的类型.

我们现在就能很清楚的知道,每个变量的类型是什么了。

接下来会发现一个问题,如果 name 这个变量给他赋个其他类型的值会怎么样?

例如: name = ‘张三’,然后  name = 12 ;

我们也用type()看一下类型:

然后我们会发现这样写并不会报错,其类型也是随着第二次新的赋值对象的类型而改变了.

然后我们在说一下深层次一点的东西。

每当我们声明一个变量并且赋值的时候,python都会在内存中某个位置创建个空间来存放一下。这个我们可以用id()函数来查看一下。

但当一个变量重新赋值之后,原先的对象会一直存在那里吗?如果这样那岂不是内存会一点点的增大?

对于这点python内部有一个机制叫做垃圾回收机制(GC),每当这个变量在用不到的时候这个机制就会触发,然后就会把这个对象给清理了。

那么python 是怎样来确定这个对象有没有被引用呢?

是这样的,在对象被创建时,python内部就会给这个对象加一个 计数器。每当一个变量引用的时候就会在 计数器 上 +1,当这个计数器 为0 的时候,就会被回收了.

 

然后,在做几个小demo。

age = 30

score =30

输出 age == score 。  ==是用来比较值是否相等的。

如果想判断一下,这两个值所指向的是否是同一个对象两种方法:

1. 分别输入 id(age)  和 id(score)。比较一下

2.用 is 。  age is score。

我们会发现:不管值还是引用的地址,都是一样的。

下面在试一下。  salary = 3100
                          lines = 3100

         salary == lines 

        salary is lines

会惊奇的发现 salary is lines  的结果居然是  false。

输出的id也都是不一样的。这是为什么呢?

因为是在python内部做了一个机制。就是 数字类型  15 - 256 之间,python早已经储存好了一个地址。不管你声没声名这个变量,这个地址都已经存在了。所以当赋值的时候都是指向同一个地址。  当超出这个范围之后,就会真正创建了一个新的空间地址.

(这里面还有好多暂时也没太懂。例如 :

id(4.0) 与 id(5.0)地址也是一样的. id(4.0) 与 id(3.0 +1.0)是不一样的。 这些问题,等后续深入的时候会慢慢在研究的)

这里在说几个函数:

len 查看长度的. 字符串也可以用 * 。 str[*]查看第几位字母的。从0开始.

下面赋上一张python数据类型的截图。先熟悉一下,接下来会一个个的熟悉这些类型的.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值