总览 Python 数据类型
目标
- 了解Python有几种数据类型
- 认识Python的数字类型
- 重点掌握对数字类型的操作
第一部分 数字类型
数字类型用于存储数学意义上的数值。
Python 支持三种不同的数字类型,整数、浮点数和复数:
1. 整数
定义:正或负整数,不带小数点的数
Python 的整数长度为 32 位,并且通常是连续分配内存空间的。
>>> id(0) 4361838576 >>> id(1) 4361838608 >>>
|
小整数对象池
Python 初始化的时候会自动建立一个小整数对象池,方便我们调用,避免后期重复生成!这是一个包含262 个指向整数对象的指针数组,范围是-5 到 256。
也就是说比如整数 10,即使我们在程序里没有创建它,其实在 Python 后台已经悄悄为我们创建了。
看下边的 id(-6)与 id(257)的地址,4364640112
>>> id(-6) 4364640112 >>> id(-5) 4361838416 >>> id(255) 4361846736 >>> id(256) 4361846768 >>> id(257) 4364640112
|
为什么存在小整数对象池?
像懒加载一样,创建一个一直存在,永不销毁,随用随拿的小整数对象池,减小开支。
整数缓冲区
刚被删除的整数,不会被真正立刻删除回收,而是在后台缓冲一段时间,等待下一次的可能调用。
>>> a = 100 >>> id(a) 4401859696 >>> del a >>> b = 100 >>> id(b) 4401859696 >>>
|
把 a 删了,然后创建一个 b,地址是一样的。
2. 浮点数
浮点数也就是小数
对于很大或很小的浮点数,一般用科学计数法表示,把10用e替代,1.23x10^9就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。
3. 复数
复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。关于复数,不做科学计算或其它特殊需要,通常很难遇到。
第二部分 操作数字类型
1. 简单常用的计算
import math # print(dir(math)) # print(abs(-10)) # print(cmp(1, 3)) # print(math.exp(2)) # print(math.ceil(1.2), math.ceil(-1.2)) # print(math.floor(1.2)) # print(max([12, 1]))
|
2. 随机操作
主要还没涉及更复杂的计算,只是罗列一些可能常用的方法;
真值分部相关的操作,如正态分部啥的,因为暂无需求,
我希望: 有朝一日能用的上那些高大上的。
# coding=utf-8 import random
print("---基本---") # 基本 # 返回当前生成器的内部状态 print(random.getstate()) # 不大于K位的Python整数,结果是0~2^10之间的整数 print(random.getrandbits(10))
print("---整数---") # 整数 # 0-9的整数: print(random.randrange(10)) # 0-100的偶数 print(random.randrange(0, 101, 2)) # 返回 a <= N <= b, 等同于randrange(a, b+1)。 print(random.randint(1, 9))
print("---list---") # list # 从序列随机选择一个元素 print(random.choice(['python', 'node', '种地']))
print("---真值分布---") # 随机浮点数: 0.0 <= x < 1.0 print(random.random()) # 随机浮点数: 1.1 <= x < 11.1 print(random.uniform(1.1, 11.1))
# 对序列进行洗牌,改变原序列 deck = 'one two three four'.split() random.shuffle(deck) print(deck)
|