Python编程2.2 数值类型 - 主打产品 - 新余市思创暖通工贸有限公司
现在的位置: 主页 > 主打产品 > 文章正文
Python编程2.2 数值类型
作者:新余市思创暖通工贸有限公司 来源:www.jxsichuang.com 发布时间:2017-09-09 10:16:43
Python编程2.2 数值类型

数值类型,说白了就是处理各种各样的数字,Python中的数值类型包括整型、长整型、布尔、双精度浮点、十进制浮点和复数,这些类型在很多方面与传统的C类型有很大的区别。

Python中的数值类型都是不可变类型,意味着创建、修改数字的值,都会产生新的对象,当然这是幕后的操作,编程过程中大可不必理会。

2.2.1标准整型和长整型

标准整型等价于C中的有符号长整型(long),与系统的最大整型一致(如32位机器上的整型是32位,64位机器上的整型是64位),可以表示的整数范围在[-sys.maxint-1, sys.maxint]之间。整型字面值的表示方法有3种:十进制(常用)、八进制(以数字“0”开头)和十六进制(以“0x”或“0X”开头)。

# -*- coding:utf-8 -*-

a = 0101

print 'a='+str(a)

b=64

print 'b='+str(b)

c=-237

print 'c='+str(c)

d=0x80

print 'd='+str(d)

e=-0x92

print 'e='+str(e)

上面的代码输出结果为:

\

图2

长整型是整型的超集,可以表示无限大的整数(实际上只受限于机器的虚拟内存大小)。长整型字面值的后面带有字母“L”或“l”(推荐使用大写的“L”)。

长整型和标准整型,目前已经基本统一,当数学运算遇到整型异常的情况,在Python2.2以后的版本,会自动转换为长整型。例如:

\

图3

2.2.2布尔型和布尔对象

布尔型其实是整型的子类型,布尔型数据只有两个取值:True和False,分别对应整型的1和0。

每一个Python对象都天生具有布尔值(True或False),进而可用于布尔测试(如用在if、while中)。

以下对象的布尔值都是False,除此之外是True:

None

False(布尔型)

0(整型0)

0L(长整型0)

0.0(浮点型0)

0.0+0.0j(复数0)

''(空字符串)

[](空列表)

()(空元组)

{}(空字典)

用户自定义的类实例,该类定义了方法__nonzero__()或__len__(),并且这些方法返回0或False

下面我们通过几段代理来加深对布尔类型的认识。

# -*- coding:utf-8 -*-

#基本测试

print bool(1)

print bool(True)

print bool('0')

print bool([])

pring bool((1,))

结果如下:

\

图4

下面我们看看bool类型作为只有0和1取值的特殊整型的特性。

# -*- coding:utf-8 -*-

#使用bool数

foo = 42

bar = foo<42

print bar

print bar+10

print '%s' %bar

print '%d' %bar

运行结果如下:

\

图5

再来验证下没有_nonzero_()方法的对象,默认是True。

#无_nozero_()

class C:pass

c=C()

print bool(c)

运行结果如下:

\

图6

2.2.3双精度浮点型

Python里的浮点型数字都是双精度,类似C语言的double类型。可以用十进制或者科学计数法表示。下面我们看一些典型的浮点型数字。

# -*- coding:utf-8 -*-

print 0.0

print -777.

print -5.555567119

print 96e3 * 1.0

print -1.609E-19

运行结果如下:

\

图7

2.2.4复数

在Python中,有关复数的概念如下:

l虚数不能单独存在,它们总是和一个值为0.0的实数部分一起来构成一个复数。

l复数由实数部分和虚数部分组成。

l表示虚数的语法:real+imagj.

l实数部分和虚数部分都是浮点型。

l虚数部分必须有后缀j或J。

下面是几个复数的例子:

print 64.375+1j

print 1.23e-045+6.7e+089j

运行结果如下:

\

图8

2.2.5十进制浮点型

十进制浮点通常称为decimal类型,主要应用于金融计算。双精度浮点型使用的是底和指数的表示方法,在小数表示上精度有限,会导致计算不准确,decimal采用十进制表示方法,看上去可以表示任意精度。

下面我们看一下十进制浮点的例子。

from decimal import *

dec=Decimal('.1')

print dec

print Decimal(.1)

print dec +Decimal(.1)

使用decimal类型,首先要引入decimal模块,然后通过Decimal类来初始化一个Decimal对象。

运行结果如下:

\

图9

2.2.6操作符

下表是主要的操作类型,供参考。

操作

说明

bool

int

long

float

complex


x ** y

指数运算


+x

符号不变


-x

符号取反


~x

按位取反


x * y

乘法


x / y

除法


x // y

地板除


x % y

取余


x + y

加法


x - y

减法


x << y

位左移


x >> y

位右移


x & y

按位与


x ^ y

按位异或


x | y

按位或


abs(x)

取绝对值


bin(x)

整型->二进制字符串


bool(x)

布尔型转换


chr(x)

ASCII码->单字符串


complex(re, im)

实部为re,虚部为im的复数


divmod(x, y)

除法及取余


float(x)

浮点转换函数


hex(x)

整型->十六进制字符串


int(x)

整型转换


long(x)

长整型转换


pow(x)

指数运算


oct(x)

整型->八进制字符串


round(x[, n])

保留n位小数并四舍五入


unichr(x)

ASCII码->Unicode单字符串



企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:武汉做网站 https://www.feimao666.com


  • 上一篇:将字符串中的空格变成%20如“we are happy ”变成“we
  • 下一篇:最后一页
  • 
    COPYRIGHT © 2015 新余市思创暖通工贸有限公司 ALL RIGHTS RESERVED.
    本站所有原创信息,未经许可请勿任意转载或复制使用 网站地图 技术支持:肥猫科技
    精彩专题:网站建设
    购买本站友情链接、项目合作请联系客服QQ:2500-38-100