从0.1开始学Python——[2]
由于本人学习方向偏向于机器学习,所以需要先掌握Python基础,然后进行面向对象的学习,最后学习机器学习的部分。因此,需要先从Python基础学起,但是我曾经学过很初级的编程语言(VB),因此学习Python的基础将会以存同学异的方式,也就是学过的巩固一下,没学过的重点学习的方式进行。
数据类型
数值类的整型、浮点型、布尔类型,字符串类的填充类型和格式化,还有none类型等等这些属于学皮毛时学到的东西,在此不再赘述。看代码的时候print(type(xxx))能知道就行。
对象(object)
包括Python在内,大部分语言都是面向对象的语言。那么甚么是对象呢?对象就是内存中专门用来存储指定数据的一块区域。因为所有数据都是存储在内存里面,然后运行的时候拿出来运行的,所以对象也就存在在内存之中。所以,对象实际上就是一个存储数据的容器。例如数值,布尔值,字符串等等,这些东西都是对象,因为它们都是存在内存中,而数值之类的这些属于是这些对象的名字,所以说它们其实都是对象。
不同对象直接如何区分?有三个特征来区分:id,type和value。
id标识对象的唯一性,每个对象的id都不一样。id就是对象的内存地址。对象一旦创建,它的id就不再改变。查看id方式如下:
h = 123
print(id(h))
type标识对象的所属类型。int,str,float等等。类型决定了对象的功能。type也是一旦确定就无法改变。查看type方式如下:
print(type(h))
value就是对象存储的具体的数据。也就是你代码打上去的内容。如123,‘hello’等等。可变对象的值可以改变,不可变对象的就不可改变。123,‘hello’等都是不可变对象。可变对象,,,学了再说。
至于对象和变量的关系,应该说变量就是对象的别名,比如上面的h=123,123没存在h里面,但是为了能用它我管他叫h,你叫a,b之类的当然也行,就是个别名。就跟点名一样,老师点你点的是你的名字,名字代表的内容是你整个人,你可以改名,但是内容不变,名字只是方便别人叫你,不然别人怎么形容你都不太容易让人知道他在说你。当你输入a=123时,系统实际上就把变量a的值设成了123的id了,因为这是123唯一性的标识。你让b=a,那b的id也是和a一样。毕竟别名有几个都行。你给a改个值,它就变个指针指向的id,这时候叫变量(a)保存的对象(不是123了)发生了改变。变量之间相互独立,改a不影响b。
类型转换
类型转换就是把某类型的对象转换为其他类型的对象,但要注意是将对象的值转化为其他新的对象,而不是改变对象本身的类型。也就是说,把123转化成‘123’,但是123的id是不变的,只是弄出来了一个新的对象‘123’。
常见类型转换函数:int(),float(),bool(),str()。要注意:函数无法对变量产生影响,函数只能操作变量,操作完的结果并不是变量本身,而是一个新东西,只有把这个新东西给原变量重新赋值,原变量才会被改变。如:
i = True
i = int(i)
print(type(i))