python入门《基础知识2--python的内置类型与简单类型、常量类型介绍》

本文章将介绍:

1.一些常用的、有用的自省函数。

2.python常见类型的分类。

3.对5个简单类型分别进行介绍,其余类型将在后面展开。

一、常用的自省函数

(1)help()

         返回python中相关的文档信息,包括内建函数等

(2)type()

         返回当前对象的类型

(3)dir()

         返回当前对象的所有属性

(4)callable()

         判断当前对象是否可调用,英文--call呼叫,callable--可以呼叫的--可被调用的

(5)id()

         返回对象的“唯一序号”。对于引用对象来说,返回的是被引用对象的id()。该序号是引用地址,与C++中的内存地址概念不同。(emmm...具体有哪些不同,为什么不同,差异在哪里还不太清楚,后面再填坑)

(6)hasattr()和getattr()

         分别判断对象是否有某个属性及获得某个属性值。

(7)isinstance()

          可以确认某个变量是否有某种类型。

二、python中常见类型的分类

相对于静态语言(如C++,java),python的数据类型功能更全面和强大。

python面向对象的原理与其他语言不同的地方在于:

(1)所有数值都封装到特定的对象中,不存在像C中那样的int这样的简单类型。(而是把它当做一个类,一个class)

(2)所有东西都是对象,包括代码本身也被封装到对象中。(还没理解)

常见类型如下:

分类 类型名称 描述
None NoneType  空对象
数值 IntType  整数
FloatType  浮点数
ComplexType  复数
布尔 BoolType  布尔类型
序列 StringType  字符串
UnicodeType  Unicode字符串
ListType  列表
TupleType  元组
RangeType  range()函数返回的对象
BufferType  buffer()函数返回的对象
映射 DictType  字典
集合 Set  集合类型
可调用类型 BuiltinFunctionType 内建函数
BuiltinMethodType 内建方法
ClassTpye
FunctionType 用户定义函数
InstanceType 类实例
ModuleType 模块
ClassType  类定义
类实例 InstanceType  类实例
文件 FileType  文件对象
内部类型 CodeType  字节编译码
FrameType  执行框架
TracebackType  异常的堆栈跟踪
SliceType  由扩展切片操作产生
EllipsisType  在扩展切片中使用

    一上来就丢过来这么一大堆表格,是不是看得头昏眼花呢?哈哈哈。其实这些类型中“内部类型"主要是python解释器调用的时候使用,一般程序员很少使用,可以不用管它。其余的有部分重复,其实也不是很多啦,后面会一一介绍的。

三、简单类型

python简单类型包括5个:

(1)bool类型:用于逻辑运算和比较的类型

(2)int类型   :类似于C++的int类型

(3)float类型:用来表示小数的类型

(4)complex类型:用来表示复数的类型,有实数和虚数两个部分。(PS:这是其他语言没有的)

(5)None类型 :空类型,用来表示空或者无返回值。

1.布尔类型(bool)

 布尔值仅可能为True或False。

布尔运算:

(1)小于,比如i<100;

(2)小于等于,比如i<=100;

(3)大于等于,比如i>=100;

(4)相等,比如 i == 100;

(5)不等于,比如i!= 100.

逻辑运算符还有

或:or       与:and           非:not,与C++中||,&,!相对应。

    与C++有所区别,python中非零值对应于真,True;而0,0.0,0.00,空列表[],空字典{},空元组(),None,以及空字符串“”都对应于假,Flase。而把一个bool类型的True或Flase用int转换,却只会成为1或者0。

   与C++类似,对于一个逻辑表达式,从左往右扫描,当当前结果足以确定最终结果时,不再执行后面的表达式。如:expr1 and expr2,若expr1为假则不再执行expr2了,直接返回expr1的值(而非返回0)。

2.整数类型(int)

支持加减乘除,幂,求模等各种运算,在python3.x中合并了int和long。

与C++一样,不同精度数值运算,结果会转换为精度最高的那个类型。精度上:

与C++的区别:

(1)幂运算用两个*表示,如2的3次方为2**3

(2)python中整数相除不会强制取整,而更符合人的思考如:print(1/3) 为0.333333333333333

(3)求模,python中不限制%符号两侧必须是int型,如1%3.0结果为1.0,1%0.25结果为0.0

(4)八进制:在数值前加上一个0和一个o

(5)优先级:幂>乘除==求模>>加减

3.浮点数类型(float)

大致与C++相同,需注意的是,只要是带圆点符号的数值都会被认为是浮点数类型。

即使是如:1.     这样也会被等同于1.0

4.复数类型

这是一个在其他语言很少见的一个类型,python常被用于科学计算,复数类是科学计算中很有用的一个部分。

形如:a+bj。用type()函数查看类型,print(type(2+3j)),结果是<class'complex'>复数类。j是-1的平方根,即j**j==-1。

5.None类型

这是一个python中特有的概念“空对象”。

     什么是空对象呢?首先,pyhton的思想是万物皆对象,一切都是对象,那空对象就是说没有对象,没有一切,一切没有,什么都不存在。与空字符串“”的区别在于,空字符串虽然看上去没有字符串,但实际上还是一个字符串只不过长度为0罢了,相同点是都可以表示Flase;同样的,None与0不同,0是一个数值,只不过大小为0罢了。而None是python中的一个特殊的常量,它就是表示什么都没有,什么都不存在。函数中无返回结果即为None,相当于C++中的Null。

PS:(1)None是一个特殊的常量,类型是NoneType,可以把None赋值给别的,但不能创建一个其他NoneType类型的对象。

      (2)None不能与None之外的量进行大小比较(会报错),None与None之间也只能用==,返回True。

      (3)对None可以进行逻辑运算,None和其他量相and,返回None。(是and起的作用)

              not None为True。

四、简单类型的运算

主要介绍python的位运算(二进制):

1.求补:按位取反再加一  ~

2.左移右移  <<,>>

3.按位异或  ^

4.按位求和  &

5.按位求或  |

五、常量类型

    简单类型均为常量类型,也就是说这些类型对象一旦被创建,其值就不能修改。

    与C++不同,C++中如下操作:

int a;

a = 1;

a = 2;

    是说:声明一个整型变量啊,先给a赋值为1,再更改赋值为2,这里的a是一个变量,值可以更改。

    Python中:

a = 1

a = 2

  是说:有一个int类对象  1,先把a这个名字与该int类对象绑定,此时a就是这个int类对象的名字,相当于a指向了该int类对象1。

然后,有一个int类对象  2,再把a这个名字与该int类对象绑定,此时a又指向了这个int类对象2.但是要注意的是,原先的int类对象1作为简单类型对象,是一个常量类型对象,按道理来说是不能更改的,那么这里我们更改了吗?我们先引入一个函数--id()

他能返回当前对象的编号,这个编号就相当于C语言里的内存地址。

  我们做如下操作:

a = 1

id(a)

a = 2

id(a)

  我们会发现前一个id()返回值和后一个id()返回值不同,也就是说,与C++中不一样,C++中这样操作a的地址是不变的没变的是a的值,而python中改变了,其实就是说,是a的位置发生了变化,而非原先的1改变了,实际上原先的1一直保存在第一个id(a)返回的编号中,只是a更改了指向,指向了2。

发布了37 篇原创文章 · 获赞 1 · 访问量 2747

猜你喜欢

转载自blog.csdn.net/qq_39685968/article/details/96966129