问题:
1. Python数值有哪些?
2. 各类型的精度是多少?
3. 类型的转换是如何实现的?
5. 如何使用这些数据类型?需要注意什么?
6. 什么是不可变类型?
数值类型:
整型: (不可变类型)
标准整型:取值范围[-sys.maxint-1, sys.maxint]
长整型:可表示无限大的整数,其值仅与你机器支持的(虚拟)内存大小有关
数值超出标准整型范围将会转换为长整型。
例如:
1.定义标准整型
>>> import sys
>>> a = sys.maxint
>>> a
2147483647
2.将a的值加1
>>> a=sys.maxint+1
>>> a
2147483648L
布尔型:(不可变类型)
取值范围:True 和 False 分布对应整型的1和0
对bool值区分大小写
例如:
>>>a=true
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name ‘true‘ is not defined
浮点型:
类似c语言中的double,每个浮点型数值占8个字节(64位)
精度:
>>> sys.float_info
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.
2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsi
lon=2.220446049250313e-16, radix=2, rounds=1)
复数:
Python中关于复数的几个概念:
1.虚数不能单独存在,它们总是和一个值为0.0的实数部分一起来构成一个复数
2.复数由实数部分和虚数部分构成
3.表示复数的语法:real+imagej
4.实数部分和虚数部分都是浮点数
5.虚数部分必须有后缀j或J
类型转换:
当我们在做运算时,如果两个操作数都是同一种数据类型,那就没必要进行类型转换,
仅当两个类型不一致的情况下,Python才会去检查一个操作数是否可以转换为另一类型的操作数。
自动类型转换:
无需编码解决转换问题。
基本规则:
将一个整型转换为浮点型,只需在整型后面加".0"
将一个非复数转换为复数,只需在非复数后面加"0j"
强制类型转换:coerce()
coerce() Python内建函数用来实现强制类型转换
示例:
1.整型与浮点的转换
>>> coerce(1,1.1)
(1.0, 1.1)
2.长整型与浮点的转换
>>> coerce(123L,0.1)
(123.0, 0.1)
3.整数与长整数的转换
>>> coerce(1,2L)
(1L, 2L)
4.整数与复数的转换
>>> coerce(1,1+1j)
((1+0j), (1+1j))
不可变类型:
创建一个变量并赋值这个过程是将变量名和变量值分别分配内存,而变量值一旦被
创建后就不可以被更改。
例如:
1.创建变量a,变量b,都赋值为1
>>> a=1;b=1
2.查看a,b变量的值的引用地址
>>> id(a);id(b)
5153592
5153592
id函数的解释:
Return the identity of an object. This is guaranteed to be unique among
simultaneously existing objects. (Hint: it‘s the object‘s memory address.)