防伪码:忘情公子著
本篇我们来说说python的内置对象类型及其运算。
python有许多的内置类型,我们为什么要使用内置类型呢?python编程时是尽量去使用自定义类型还是尽可能多的使用内置类型呢?
内置类型对python本身来讲它的理解能力更好一点,对其执行时所能够带来的性能上也会更好一点。所以,除非内置类型无法提供特殊对象处理时,一般而言最好都用内置类型。因为内置类型使得其内置对象程序更容易编写,另外,内置类型、内置对象是扩展组件,内置对象往往比自己开发的那种数据结构,在执行时更有效率。
python对象的相关术语:
python程序中保存的所有数据都是围绕对象这个概念展开的:
程序中存储的所有数据都是对象。
每个对象都有一个身份、一个类型和一个值。
例如,school="cheqiao"会以"cheqiao"创建一个字符串对象,其身份是指向它在内存中所处位置的指针(其在内存中的地址),而school就是引用这个具体位置的名称。
对象的类型也称对象的类别,用于描述对象的内部表示及它支持的方法和操作。
创建特定类型的对象时,有时也将该对象称为该类型的实例。
实例被创建后,其身份和类型就不可改变
如果对象值是可修改的,则称为可变对象;
如果对象值不可修改,则称为不可变对象
如果某个对象包含对其它对象的引用,则将其称为容器。
大多数对象都拥有大量特有的数据属性和方法
属性:与对象相关的值。在对象实例化时,在对象内部可以使用的变量的变量名称就称之为对象的属性。
方法:被调用时将在对象上执行某些操作的函数。
使用点(.)运算符可以访问属性和方法。
对象的身份与类型:
python内置函数id()可返回一个对象的身份,即该对象在内存中的位置
is运算符用于比较两个对象的身份;
type()用于返回一个对象的类型;
对象类型本身也是一个对象,称为对象的类
该对象的定义是唯一的,且对于某类型的所有实例都是相同的
所有类型对象都有一个指定的名称,可用于执行类型检查,如list、dict
if a is b: statements if a == b: statements if type(a) is type(b): statements
python核心数据类型:
对象类型 | 例子 |
数字 | 3077,3.14,300000 |
字符串 | ‘baidu.com‘,"spam" |
列表 | [‘one‘,‘two‘,‘three‘] |
字典 | {‘course‘:‘linux‘,‘tutor‘:‘baidu‘,‘age‘:42} |
元组 | (32,‘spam‘,‘eggs‘) |
文件 | myFile=open(‘/tmp/tfile‘,‘r‘) |
集合 | set(‘abc‘),{‘a‘,‘b‘,‘c‘} |
其它类型 | 类类型、None、布尔型 |
编程单元类型 | 函数、模块、类 |
与实现相关的类型 | 编译的代码堆栈跟踪 |
python是一个强类型的语言,很多时候我们需要显式地对类型进行转换。
比如一个数字和一个字母相运算,这是个抛出异常的。因为此两者不是同一种类型,在python中不同类型之间是无法进行运算的。
In [1]: a = ‘123‘ In [2]: type(a) Out[2]: str In [3]: print 1 + a --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-3-30abb1f25ec3> in <module>() ----> 1 print 1 + a TypeError: unsupported operand type(s) for +: ‘int‘ and ‘str‘
此时如果我们将类型进行显式的转换一下,就可以完成运算了。
In [1]: a = ‘123‘ In [2]: type(a) Out[2]: str In [3]: print 1 + a --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-3-30abb1f25ec3> in <module>() ----> 1 print 1 + a TypeError: unsupported operand type(s) for +: ‘int‘ and ‘str‘ In [4]: b = int(a) In [5]: type(b) Out[5]: int In [6]: print 1 + b 124
python中类型显式转换常用的内置函数有以下这些:
str(),repr()或format():用于将非字符串转换成字符串
str()的结果与print的结果一样;
repr()表示某个对象的精确值;
format()利用特定格式将其转换成字符串
int():转换成整数
float():转换成浮点数
list(s):将字符串s转换成列表
tuple(s):将字符串s转换成元组
set(s):将字符串s转换成集合
frozenset(s):将字符串s转换成不可变集合
dict(d):根据指定的键值对创建字典,这里的d必须是(key,value)的元组序列,如d = ((‘a‘,1),(‘b‘,2),(‘c‘,3))或d = [(‘a‘,1),(‘b‘,2),(‘c‘,3)]
ord(x):将字符x转换成整数值
hex(x):将整数x转换成十六进制字符串
bin(x):将整数x转换成二进制字符串
oct(x):将整数x转换成八进制字符串
本文出自 “忘情博” 博客,请务必保留此出处http://itchentao.blog.51cto.com/5168625/1887192
原文地址:http://itchentao.blog.51cto.com/5168625/1887192