标准类型

  • 数字
  • Integer 整型
  • Boolean 布尔型
  • Long integer 长整型 (python2)
  • Floating point real number 浮点型
  • Complex number 复数型
  • String 字符串
  • List 列表
  • Tuple 元组
  • Dictionary 字典

其他内建类型

  • 类型
  • Null对象(None)
  • 集合/固定集合
  • 函数/方法
  • 模块

数字类型:

  整数:python2中输入的数比较大时,会自动在其后面加字母L或它的小写l

  浮点型:浮点数可以使用科学计数发表示如2e2,2e-3等

  复数:由实部和虚部组成,使用j或J表示虚部,如3.12+12.5j

字符串类型:

  使用单引号或多引号括起来的必须在一行,使用三引号的可在多行,三引号的能按找代码输入时的格式输出

  字符串引号前加r,该字符串将原样输出,其中的转义字符不进行转义

print("12\t12")  # 12    12
print(r"12\t12") # 12\t12

数据类型转换:

int(x) :将x转换为整型

float(x):转浮点型

complex(real[,imag]):创建一个复数

str(x):转为字符串

repr(x):转为表达式字符串

eval(str):计算在字符串中的有效python表达式,并返回一个对象

chr(x):将整数x转换为一个字符

ord(x):将一个字符x转换为它对应的整数值

hex(x):将一个整数x转换为一个十六进制的字符串

oct(x):将一个整数x转换为一个八进制的字符串

类型对象和type类型对象

调用内建函数type(),能够得到特定对象的类型信息

# 11是个int型对象
>>> type(11)
<type 'int'>
# 类型对象的类型是type,所有类型对象的类型都是type,它是所有python类型的根和所有python标准类的默认元类
>>> type(type(11))
<type 'type'>

布尔值

下列对象的布尔值是False

  • None
  • False(布尔类型)
  • 所有的值为零的数
  • 0(整型)
  • 0.0(浮点型)
  • 0L(长整型)
  • 0.0+0.0j(复数)
  • ""(空字符串)
  • [](空列表)
  • ()(空元组)
  • {}(空字典)
  • 自定义对象的__bool__方法返回False或__len__方法返回0

用户创建的类实例如果定义了nonzero(__nonzero__())或length(__len__())且值为0,那么它们的布尔值就是False

class NonTest:
# __nonzero__必须是静态的
@staticmethod
def __nonzero__(self):
pass if __name__ == '__main__':
if NonTest():
     print(True) # True
class NonTest:
def __len__(self):
return 0 class NonTest2:
def __len__(self):
return 1 if __name__ == '__main__':
if NonTest():
print('NonTest')
if NonTest2():
print('NonTest2') # 打印 NonTest2

对象身份比较

# python3.7测试
if __name__ == '__main__':
# foo1 和 foo2 指向相同的对象
foo1 = foo2 = 4.2
print(foo1 is foo2) # True
# foo3 和 foo4 指向相同的对象
foo3 = 5.3
foo4 = foo3
print(foo3 is foo4) # True
# foo5 和 foo6 指向相同的对象
foo5 = 6.99
foo6 = 6.99
print(foo5 is foo6) # False
print(id(foo5) == id(foo6)) # foo5 is foo6等价与id(foo5) == id(foo6) # True
#python2.7.10测试
>>> a = 1.99
>>> id(a)
140195765685264
>>> b = 1.99
>>> id(b)
140195765685240
>>> c = 1.99
>>> id(c)
140195765685216
>>>

标准类型内建函数

- cmp(obj1,obj2):

# python2中的比较
>>> cmp(a,b)
0
>>> cmp(1,1)
0
>>> cmp(1,2)
-1
>>> cmp(2,1)
1

附:python3中cmp不能用了,可用operator代替

import operator

if __name__ == '__main__':
obj1 = 12.99
obj2 = 11.99+1.00
print(operator.eq(obj1, obj2)) # True

- repr(obj)或``
# python3不支持
`obj`
# 返回一个对象的字符串表示
repr(obj)

- str(obj)

- type(obj)

instance()

    # isinstance(_o,_t)判断对象类型
print(isinstance(6, (int, float))) # True
print(isinstance(6.1, (int, float))) # True
print(isinstance("6.1", (int, float))) # False
print(isinstance("6.1", str)) # True

算术运算符:

//取整除,即返回商的整数部分

**幂,即返回x的y次方

左移位运算符<<

将一个二进制操作数向左移动指定位数,左端溢出丢失,右边空位补0,相当于乘以2的n次幂

右移位运算符<<

将一个二进制操作数向右移动指定位数,右端溢出丢失,左边空位补0,相当于除以2的n次幂

01.python对象的更多相关文章

  1. python征程3.0(python对象)

    1.python使用对象模型来存储数据.构造任何类型的值都是一个对象.”尽管python被当成一种面向对象的脚本的编程语言“,但你完全能够写出不使用任何类和实例的脚本. python对象都拥有三个特性 ...

  2. python 对象

    python 对象 在python中,对象就是为C中的结构体在堆上申请的一块内存,一般来说,对象是不能被静态初始化的,并且不能再栈空间上生存.本文主要对Python的基本数据类型做简单的介绍. PyO ...

  3. Python 对象的引用计数和拷贝

    Python 对象的引用计数和拷贝 Python是一种面向对象的语言,包括变量.函数.类.模块等等一切皆对象. 在python中,每个对象有以下三个属性: 1.id,每个对象都有一个唯一的身份标识自己 ...

  4. Python对象(译)

    这是一篇我翻译的文章,确实觉得原文写的非常好,简洁清晰 原文链接:http://effbot.org/zone/python-objects.htm ------------------------- ...

  5. 《Python核心编程》 第四章 Python对象- 课后习题

    练习 4-1. Python对象.与所有Python对象有关的三个属性是什么?请简单的描述一下. 答:身份.类型和值: 身份:每一个对象都有一个唯一的身份标识自己,可以用id()得到.  类型:对象的 ...

  6. Python对象体系揭秘

    Guido用C语言创造了Python,在Python的世界中一切皆为对象. 一.C视角中的Python对象 让我们一起追溯到源头,Python由C语言实现,且向外提供了C的API http://doc ...

  7. 【2】python核心编程 第四章-python对象

    1.python对象 所有的Python 对像都拥有三个特性:身份,类型和值. 身份: 每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数id()来得到. 这个值可以被认为是该对象的 ...

  8. python学习笔记:python对象

    一.python对象 python使用对象模型来存储数据,构造任何类型的值都是一个对象.所有的python对象都拥有三个特性:身份.类型和值. 身份:每个对象都有一个唯一的身份标识自己,对象的身份可以 ...

  9. Python对象类型及其运算

    Python对象类型及其运算 基本要点: 程序中储存的所有数据都是对象(可变对象:值可以修改 不可变对象:值不可修改) 每个对象都有一个身份.一个类型.一个值 例: >>> a1 = ...

随机推荐

  1. 取得所有网卡的MAC地址,包括禁用的

    先在nuget包中添加System.Management.Automation引用. 然后下面就是代码了. using System;using System.Collections.ObjectMo ...

  2. react-native 组件之间传值

    1.通过 AsyncStorage 将值保存在本地(最低端的方法) import { AsyncStorage, } from 'react-native'; // 保存 IP AsyncStorag ...

  3. Linux动态库和静态库

    Linux下动态库查看办法:nm -D libavformat.so Linux下静态库查看办法:ar -t libavformat.a ------------------------------- ...

  4. Linux内核调试方法总结之死锁问题分析

    死锁问题分析 死锁就是多个进程(线程)因为等待别的进程已占有的自己所需要的资源而陷入阻塞的一种状态,死锁状态一旦形成,进程本身是解决不了的,需要外在的推动,才能解决,最重要的是死锁不仅仅影响进程业务, ...

  5. Linux随笔 - vi/vim 编辑器显示行号

    显示行号 1. 打开vi 编辑器 2. 输入  :set number 3. 回车 关闭行号显示 1. 打开vi 编辑器 2. 输入  :set nonumber 3. 回车 行号在每次打开 vi/v ...

  6. VMware 虚拟化编程(15) — VMware 虚拟机的恢复方案设计

    目录 目录 前文列表 将已存在的虚拟机恢复到指定时间点 恢复为新建虚拟机 灾难恢复 恢复细节 恢复增量备份数据 以 RDM 的方式创建虚拟磁盘 创建虚拟机 Sample of VirtualMachi ...

  7. 一个有关Golang Deferred Function 执行顺序的问题

    先看一下一段关于defer的解释, 引自<Go程序设计语言> Syntactically, a defer statement is an ordinary function or met ...

  8. 优化 | Redis AOF重写导致的内存问题 不错

    一.问题说明 业务上接到报警提示服务器内存爆了,登录查看发现机器剩余内存还很多,怀疑是被OOM了,查看/var/log/messages: kernel: [25918282.632003] Out ...

  9. Altium Designer chapter7总结

    PCB设计高级进阶中需要注意如下: (1)PCB层集合管理:对于后期的处理可以看到不同层的相关信息. (2)内电层的分割:对于多层板的设计,特别是电源层中有不同类型的电源时需要考虑电源的分割. (3) ...

  10. [Python3 填坑] 006 “杠零”,空字符的使用

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 \0 是空字符,输出时看不到它,但它占 1 个字符的长度 2.2 \0 "遇八进制失效" 2.3 \0 与 '' 不 ...