Python基础系列之--数字类型【2】

总览 Python 数据类型

目标

    1. 了解Python有几种数据类型
    1. 认识Python的数字类型
    1. 重点掌握对数字类型的操作

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)