python基础学习二——数据类型

一、整数
整数的大小只受限于机器内存的大小,因此,包含几百个数的整数也能创建与操作。二进制数用0b引导,八进制数用0o引导,十六进制数用0x引导。
这里写图片描述
所有二元数学操作符(+、-、/、//、%与**)都有相应的增强版赋值操作符(+=、-=、/=、//=、%=与*=)。
对象的创建可以通过给变量赋字面意义的值,x=17,或者将相关的数据类型作为函数调用。
这里写图片描述
这里写图片描述
int(x),将x转换为整数时,如果转换失败会报ValueError异常,如果x不支持整数转换会报TypeError异常。
2.浮点类型
python提供了3种浮点类型,分别为内置的float与complex类型,以及来自标准库的decimal.Decimal类型。float存放的为双精度浮点数,具体取值范围依赖于构建python的c编译器,由于精度受限,相对来说不够可靠。
如果需要高精度运算则使用decimal.Decimal 类型,默认精度为小数点后28位。但是计算速度相对于float类型来说较慢。decimal.Decimal 类型只能与int进行混合类型运算,如果使用不兼容的数据类型,则会报TypeError异常。
(1)浮点数
float可以作为函数调用,在无参数的情况下返回0.0,转换时有返回NaN的可能。在IDLE中输入sys.float_info可以查看到float类型的信息。
化为整数:

import sys
import math

int(float(1.2))   #舍弃小数部分
round(float(1.2))  #四舍五入
round(float(1.8)) #四舍五入
math.floor(float(1.2))   #向下转换最近的整数
math.ceil(float(1.2))   #向上转换最近的整数

math模块:
这里写图片描述
这里写图片描述
这里写图片描述
(2)复数
负数包含real与imag属性:

z = 1 + 10j

z.real,z.imag
Out[14]: (1.0, 10.0)

取共轭:

z = 1 + 10j

z.conjugate()
Out[16]: (1-10j)

math不支持复数的计算,但是cmath专门支持复数的计算。
(3)十进制数
当需要非常高精度时,需要利用decimal模块提供的十进制数,精度由我们具体掌控,但是计算速度较慢。
创建方式:decimal.Decimal(int/str),可以接受整数或字符串作为参数,但是不能接受float类型, 因为float类型本身不够精确。

import decimal

a = decimal.Decimal(19)
b = decimal.Decimal('19.12345567')

python3.1提供了函数可以将float数转化为最近似的十进制数。

import decimal

a = decimal.Decimal.from_float(0.221)

a
Out[19]: Decimal('0.2210000000000000019984014443252817727625370025634765625')

所有的数值型操作符与函数都可以应用于decimal.Decimal数据类型。但混合数据类型计算只能使用int型,否则会出现TypeError异常。
提供了用于计算自然对数的ln(函数)(以e为底)。

a.ln()
Out[20]: Decimal('-1.509592577464384226708411833')

3.字符串
在创建字符串时,使用三引号”’可以直接在引号中换行,双引号与单引号不能。

'''kai  
shi '''
Out[30]: 'kai  \nshi '

这里写图片描述

如果使用的字符串很长,要跨越2行,并且不想用三引号,可以使用如下方法:
这里写图片描述
python官网文档推荐使用括号将跨越多行的语句进行封装。
(1)字符串分片与步距
可以使用[]对字符串内容进行提取。

str[start]
str[start:end]
str[start:end:step]

其中如果start或者end缺省,则分别默认为字符串首字符与字符串尾字符,如果step为负数,则反过来。

(2)字符串操作符与方法
这里写图片描述
这里写图片描述
这里写图片描述
(3)使用str.format()方法进行字符串格式化
简单的位置参数:

"I {0} an {1} ".format("have",'apple')
Out[124]: 'I have an apple '

如果字符串中包含花括号{},需要对其进行复写:

"I {0} an {{{1}}} ".format("have",'apple')
Out[125]: 'I have an {apple} '

连接字符串与数字:

"{0} {1}".format(100,"yuan")
Out[127]: '100 yuan'

使用关键字参数名:

"I {v} an {fruit} ".format(v = 'have',fruit = 'apple')
Out[129]: 'I have an apple '

关键词参数总是在位置参数之后:

"I {v} an {0} ".format('apple',v = 'have')
Out[130]: 'I have an apple '

字段名可以引用集合数据类型,例如列表:

li = ['apple','have']

"I {0[1]} an {0[0]} ".format(li)
Out[132]: 'I have an apple '

使用字典对象:

li = dict(vb = 'have',fruit = 'apple')

"I {0[vb]} an {0[fruit]} ".format(li)
Out[138]: 'I have an apple '

存取属性:

"math.pi = {0.pi}".format(math)
Out[140]: 'math.pi = 3.141592653589793'

通过内置的loads()函数访问,loads()函数将还在作用范围内的所有变量与变量引用构成一个字典。并且可以通过映射拆分操作符**传递:

li = dict(vb = 'have',fruit = 'apple')

"I {vb} an {fruit} ".format(**li)
Out[142]: 'I have an apple '

(4)表象形式与字符串形式
在decimal.Decimal中有两种显示形式:

decimal.Decimal('123.654')
Out[144]: Decimal('123.654')

print(decimal.Decimal('123.654'))
123.654

第一种为表象形式,第二种为字符串形式。s:用于强制使用字符串形式,r:用于强制使用表象形式,a:用于强制使用表象形式,但仅限于ASCII字符。如下:

'{0} {0!s} {0!r} {0!a}'.format(decimal.Decimal('123.321'))
Out[151]: "123.321 123.321 Decimal('123.321') Decimal('123.321')"

(5)格式规约
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
WALDM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值