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

>>> anint = 1
>>> del anint
>>> anintTraceback (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)
'9999999999'
>>> 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]

转载于:https://www.cnblogs.com/SRL-Southern/p/4770105.html

2015/8/29 Python基础(3):数值相关推荐

  1. 2015/8/26 Python基础(1):基本规则及赋值

    Python有如下的基本规则: #后表示注释 \n是行分隔符 \是继续上一行,将过长语句分开 :分号将两个语句连接在一行中 :冒号将代码头和体分开 代码块用缩进块的方式体现 不同缩进深度分隔不同的代码 ...

  2. Python基础学习数值运算之内建函数

    1.abs(num) 返回num的绝对值 2.coerce(num1,num2) 将num1和num2转换为同一类型,然后以一个无级的形式返回 3.divmod(num1,num2) 除法取余运算的结 ...

  3. python数值类型教程_Python 基础数据类型-数值类型

    Python 基础数据类型-数值类型 为什么会有数据类型?[了解] 更好分配管理内存 方便统一管理 更贴近人类分类管理习惯 数据类型种类 [熟悉] 数值类型:int.bool.float.comple ...

  4. python提供的三种基本数值类型_Python 基础数据类型-数值类型

    Python 基础数据类型-数值类型 为什么会有数据类型?[了解] 更好分配管理内存 方便统一管理 更贴近人类分类管理习惯 数据类型种类 [熟悉] 数值类型:int.bool.float.comple ...

  5. Python基础教程:内置类型之数值

    Python有以下三种的数值类型: 整型(integers), 浮点型(floating point numbers), 以及 复数(complex numbers).此外,布尔是整数的子类型. 数值 ...

  6. python split函数 空格_Python随笔29:Python基础编程练习题23~24

    注:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性. Python编程 Python基础练习题23:求三角形斜边上的高 输入直角三角形两直角边a.b的值,输出斜边上的高,最后结果使用 ...

  7. python中复数的实部和虚部都是浮点数_Python基础:数值(布尔型、整型、长整型、浮点型、复数)...

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

  8. Python on the Way, Day1 - Python基础1

    一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为AB ...

  9. Day1 python基础

    一.python介绍 目前Python主要应用领域: 云计算: 云计算最火的语言, 典型应用OpenStack WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, ...

最新文章

  1. 生信宝典被分享最多的15篇文章
  2. python实现使用最近最久未使用算法的请求分页存储管理_答疑(存储管理)之一...
  3. pycharm和jupyter notebook中的快捷键
  4. Flex 4(Hero)对应Flex 3 容器方法
  5. 基于FPGA的波束形成verilog开发
  6. uri和url区别和关联
  7. 数据库实验四 视图实验
  8. A4纸在屏幕上的像素尺寸
  9. ChemDraw中如何旋转结构
  10. Dataframe两个表格合并
  11. 普通人如何使用ChatGPT接单挣钱-第一弹
  12. Arduino播放声音
  13. Weex 修改安卓生成apk默认的启动页面
  14. linux lp命令,lp命令_Linux lp 命令用法详解:打印文件或修改排队的打印任务
  15. 闪光网-彭亮《与风约定》
  16. fpga驱动rgb液晶屏_用FPGA设计LCD 转 VGA 其实vga和lcd驱动 非常类似
  17. 《jetson系列刷机指南》
  18. 光伏逆变器“核心器件”IGBT在光伏逆变器的应用
  19. java unescape_java中的escape和unescape
  20. 理论——RNN(循环神经网络)与LSTM(长短期记忆神经网络)

热门文章

  1. LeetCode 第 69 场力扣双周赛
  2. python批量读取csv并入库pg_如何通读CSV然后在Python中发布批量API调用
  3. 11选5下期算法_玫瑰2020196期福彩3D推荐:双胆2、6,和值看好11
  4. 百家号 python高手养成_python高手养成记04:python的所有数据类型,一篇足矣
  5. java object转map_Java 面试题:百度前 200 页都在这里
  6. 最好用的营养计算机软件,营养计算器(标准版)
  7. shell条件判断 if else
  8. 如何通过map文件优化代码
  9. IAR执行到断点处不能单步运行解决方法
  10. 网络监视工具nethogs命令