数字提供了标量储存和直接访问,是不可更改类型,每次变更数值会产生新的对象。Python支持多种数字类型,包括整型、长整型、布尔型、双精度浮点、十进制浮点和复数。
在Python中,变量并不是一个盒子,而是一个指针指向装变量值的盒子。对于不可更改类型来说,没办法改变盒子的内容,但是可以指向一个新的盒子。
我们没办法删除一个数值对象,仅可以不再使用它。内存管理是由Python自己接管的。可以使用del语句来删除引用,但那样的话,这个引用(也就是变量)就不能使用了,除非给它一个新值

>>> anint = 1
>>> del anint
>>> anint Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
anint
NameError: name 'anint' is not defined

数值类型
布尔型
取值范围只有两个值,True和False。
实际上是整型的子类,但不能再被继承而生成它的子类。数学运算中,True和False分别对应1和0
由于在Python2中,True和False都不是关键字,所以会出现以下的代码情况

>>> True, False = False, True
>>> print True
False
>>> print False
True

这只是个示例,在实际编程中,不管出现什么情况都不应该这么干。

整数类型
Python的标准整数类型是通用的数字类型,在32位机上范围是32位,64位机则是64位。书上说标准整型等价于C的(有符号)长整型,但就我的学习,因为C的标准变更,应该是等价于C的整型。
而Python的长整型,是一个非常大范围的数,取值范围仅仅与机器支持的内存大小有关。书写时用大写字母L作为后缀标注长整型。
这里可以用作str()和repr()区别的一个示例

>>> along = 9999999999L
>>> str(along)
''
>>> repr(along)
'9999999999L'

可以看到之前提到的str()对人更友好repr()对Python更友好。

而在Python2.4以后,整型和长整型开始了融合,当整型出现溢出时,就会自动转换为长整型,所以不是特殊的情况下,几乎感觉不到长整型的存在。

Python的浮点型类似于C的double。可以直接用十进制或者科学计数法表示。
Python支持复数类型。虚数部分有后缀j或J。写法是real+imagj
复数是有数值属性的,可以用num.real来调用实部,用num.imag来调用虚部,用num.conjugate()来调用共轭复数。

运算符
混合模式运算符
Python是支持混合模式运算符的,可以将不同类型的数值直接相加。当两个整数相加时,+ 是整数加法,当两个浮点数相加时 + 是浮点数加法,以此类推。非数字类型也可以使用 + 运算符。字符串A + 字符串B表示连接字符串。+ 运算符的多种使用体现了重载概念的应用。
虽然不能让一个数字和字符串相加,但是不同类型的数字相加是可以的。整数和浮点数相加时,系统会使用浮点数加法。这种强制类型转换遵循以下规则:
  如果一个操作数是复数,另一个被转换成复数
  否则,如果一个操作数是浮点,另一个被转换成浮点
  否则,如果一个操作数是长整型,另一个被转换成长整型
  否则,两者都是普通整数,直接相加。
  此外的,还有不少算术运算符,这里不赘述。

同时Python对于整数还提供了位运算符,和C语言中一致,对我十分友好。

数字类型函数
转换工厂函数int(),long(),float(),complex(),bool().将不同的类型,转换成需要的类型。
功能函数,Python还有以下的内建函数用于数值运算abs(),coerce(),divmod(),pow(),round()
abs()是返回参数绝对值,如果是个复数,就返回math.sqrt(num.real**2 + num.imag**2)
coerce()是一个数据类型转换函数,将两个数值转换成可以运算的数值类型。
divmod()是发挥一个包含商和余数的元组。也可以用复数和小数作为参数。
pow()和**都表示幂。一个为内建函数一个为运算符。
round()用于对浮点数进行四舍五入运算,有一个可选的小数位数参数,可以选择精确位数。
int(),round(),math.floor()似乎在做同一件事,但int()是截去小数部分,floor()得到最接近原数但小于原数的整数,round()得到最接近原数的整数。
仅用于整数的函数
进制转换,oct()和hex()返回8进制和16进制的数
ASCII转换函数,chr()是接受数值返回字符,ord()是接受字符返回ASCII码值
同时还有unichr()是接受Unicode码值返回Unicode字符。

十进制浮点数
用十进制浮点可以提高一些浮点运算的精度,需要导入decimal模块以便使用Decimal类
但是Decimal()只能导入字符串。

random模块,random模块包含多个伪随机数发生器,以当前时间为随机数种子,产生随机数。
有以下几个函数:

>>> import random
>>> random.random()#随机生成一个0到1之间的浮点数
0.015119438297251486
>>> random.uniform(10,20)#随机生成两个参数范围内的浮点数
15.620562881753816
>>> random.uniform(20,10)#参数大小部分先后
18.444370827768715
>>> random.randint(10,20)#随机生成两个参数范围内的整数
18
>>> random.randint(10,20)#参数大小不分先后
11
>>> random.randrange(1,100,15)#参数分别为(start,stop,step)
16
>>> random.choice("abcdefg")#序列里随机获取一个元素
'g'
>>> list = [1, 2, 3, 4, 5, 6, 7]
>>> random.shuffle(list)#打乱列表的元素
>>> print list
[4, 6, 7, 5, 1, 3, 2]
>>> random.sample(list,2)#从一个列表中随机截取指定长度
[3, 4]

2015/8/29 Python基础(3):数值的更多相关文章

  1. 2015/9/29 Python基础(20):类的授权

    类的授权 1.包装包装在Python编程世界中时经常会被提到的一个术语.它是一个通用的名字,意思是对一个已存在的对象进行包装,不管它是数据类型,还是一段代码,可以是对一个已存在的对象,增加新的,删除不 ...

  2. python基础之数值类型与序列类型

    Hello大家好,我是python学习者小杨同学,已经学习python有一段时间,今天将之前学习过的内容整理一番,在这与大家分享与交流,现在开始我们的python基础知识之旅吧. 数值类型与序列类型 ...

  3. Python基础:数值(布尔型、整型、长整型、浮点型、复数)

    一.概述 Python中的 数值类型(Numeric Types)共有5种:布尔型(bool).整型(int).长整型(long).浮点型(float)和复数(complex). 数值类型支持的主要操 ...

  4. 2015/9/28 Python基础(19):类的定制和私有性

    用特殊方法定制类前面我们讲了方法的两个重要方面:首先,方法必须在调用前被绑定(到它们相应类的某个实例中):其次,有两个特殊方法可以分别作为构造器和解构器的功能,分别名为__init__()和__del ...

  5. 2015/9/22 Python基础(18):组合、派生和继承

    一个类被定义后,目标就是把它当成一个模块来使用,并把这些对象嵌入到你的代码中去,同其他数据类型及逻辑执行流混合使用.有两种方法可以在你的代码中利用类.第一种是组合,就是让不同的类混合并加入到其他类中, ...

  6. 2015/9/19 Python基础(15):变量作用域及生成器

    变量作用域标识符的作用域是定义为其声明的可应用范围,或者即是我们所说的变量可见性.也就是,我们可以在程序的那个部分去访问一个制定的标识符.全局变量与局部变量定义在函数内的变量有局部作用域,在一个模块中 ...

  7. 2015/9/10 Python基础(11):错误和异常

    程序在执行的过程中会产生异常,出现错误在以前的一个时期是致命的,后来随着程序的发展,使得一些错误的处理方式是柔和的,发生错误会产生一些错误的诊断信息和一些模糊的提示.帮助我们来处理异常.今天将学习Py ...

  8. 2015/9/9 Python基础(10):文件和输入输出

    文件对象文件对象不仅可以用来访问普通的磁盘文件,而且也可以访问其它任何类型抽象层面上的“文件”.一旦设置了合适的“钩子”,你就可以访问文件类型接口的其它对象,就好像访问的是普通文件一样.文件对象的处理 ...

  9. 2015/9/4 Python基础(8):映射和集合类型

    Python里唯一的映射类型是字典.映射类型对象里,hash值(key)和指向的对象(值)是一对多的关系.字典对象是可变的,这一点上很像列表,它也可以存储任意个数任意类型的Python对象,其中包括容 ...

随机推荐

  1. POJ 2987 Firing(最大流最小割の最大权闭合图)

    Description You’ve finally got mad at “the world’s most stupid” employees of yours and decided to do ...

  2. 蓝牙核心技术概述(四):蓝牙协议规范(HCI、L2CAP、SDP、RFOCMM)(转载)

    一.主机控制接口协议  HCI 蓝牙主机-主机控模型 蓝牙软件协议栈堆的数据传输过程: 1.蓝牙控制器接口数据分组:指令分组.事件分组.数据分组(1).指令分组 如:Accpet Connection ...

  3. Special Offer! Super Price 999 Bourles!

    Description Polycarpus is an amateur businessman. Recently he was surprised to find out that the mar ...

  4. Python—字典(当索引不好用时)

    一.定义与概念 1.字典是针对非序列集合而提供的一种数据类型 举例:检索学生信息. “<键><值>对”. 键(即身份证号码) 值(即学生信息). “键值对”例子 姓名和电话号码 ...

  5. 学霸系统PipeLine功能规格说明书

    学霸系统PipeLine功能规格说明书共分为以下三部分: 1.产品面向用户群体 2.用户使用说明 3.产品功能具体实现 1.产品面向用户群体 我们这组的项目并不是传统意义上能发布并进行展示的项目,因此 ...

  6. VS2013运行C++报错:This function or variable may be unsafe. Consider using fopen_s instead.

    在vs2013中运行时发生的关于方法调用的不安全错误. 1.更换方法,但是有些方法更改后参数不变,所以可能比较麻烦. 2.添加一条预处理器定义: 点击项目——>属性——>c/c++——&g ...

  7. Khan Academy

    Khan Academy是一个免费的学院. 致力于教育改革. 百度百科:ohn Resig 百度百科有记者采访,采访内容比较有意思.

  8. (beta冲刺5/7)

    团队信息 队名:爸爸饿了 组长博客:here 作业博客:here 组员情况 组员1(组长):王彬 过去两天完成了哪些任务 推进后端完成安卓端接口的开发 在测试中发现返回地图接口存在错误(待修复) 推进 ...

  9. 刷ROM必備的clockworkmod recovery

    Desire HD 手機早早就 Root,前陣子也S-OFF 變成工程版的 HBOOT(ENG S-OFF),想要刷機的朋友一定常常聽人提起 clockworkmod recovery ,接下來就是安 ...

  10. TCP系列10—连接管理—9、syncookie、fastopen与backlog

    这部分内容涉及较多linux实现,可以跳过. 一.listen系统调用对backlog的处理 当socket处于LISTEN或者CLOSED状态时,fastopen队列的长度可以通过TCP_FASTO ...