标准类型

  • 数字
  • 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. linux中也有闹钟alarm, timer, stopwatch, world clock 等等

    stopwatch和timer的区别? timer叫计时器, 是先给出一个时间, 然后从现在开始, 倒数, 减少, 直到时间为0 stopwatch 叫跑錶, 则是从现在开始, 往后 增加时间, 事先 ...

  2. AtomicInteger 源码分析

    AtomicInteger AtomicInteger 能解决什么问题?什么时候使用 AtomicInteger? 支持原子更新的 int 值. 如何使用 AtomicInteger? 1)需要被多线 ...

  3. CSS - 层叠上下文(The stacking context)

    对 MDN 的上的例子的拓展 Root - DIV #1(z-index: 5) - DIV #2(z-index: 2) - DIV #3(z-index: 4) - DIV #4(z-index: ...

  4. Cannot refer to the non-final local variable user defined in an enclosing scope

    (1)首先该错误只会在 JDK 1.7 版本及其以前如果要在匿名内部类中报出,解决办法为在传入的参数前面增加final修饰,但如果在JDK 如果变更为1.8版本及其以后,该异常就不存在了. (2)如何 ...

  5. npm 中的 --

    -- 命令告诉cli-parser停止向下解析, --后面的内容会传给命令行作为命令行参数 文档地址: https://docs.npmjs.com/misc/config.html

  6. 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_07 Collections工具类_2_Collections集合工具类的方法

    默认规则一般都是升序排序 再来创建一个字符串的数组 排序后,按照升序输出结果 自定义类型排序 创建一个Person类,getter和setter 有参构造和无参构造 重写toString的方法 传对象 ...

  7. axios 获取不到数据错误

    1.问题: 打算学习下vue,但是vue-resource作者已经不更新了,并且大家都建议用axios来进行前后端交互,所以就从学习axios开始. 但是在使用 axios 的过程中,自己写的接口竟然 ...

  8. Python学习笔记(20)-文件和文件夹的移动、复制、删除、重命名

    一,概述 python中对文件和文件夹进行移动.复制.删除.重命名,主要依赖os模块和shutil模块,要死记硬背这两个模块的方法还是比较困难的,可以用一个例子集中演示文件的移动.复制.删除.重命名, ...

  9. linux启动内核源码分析

    内核的启动时从main.c这个文件里面的start_kernel函数开始的,这个文件在linux源码里面的init文件夹下面 下面我们来看看这个函数 这个函数很长,可以看个大概过去 asmlinkag ...

  10. 谷歌,火狐浏览器不能禁用自动补齐的bug缺陷

    IE浏览器里有autocomplete="off",可以禁止自动补全账号和密码,为了防止信息泄露,需要去除自动补齐. 自动补齐产生的场景是,form里面有密码框,因此只要将该密码框 ...