Python中的Number用于程序中存储数值类型,Python中的数字有三种类型:int,float和complex。在Python2中有long类型,但在Python3中不再提倡使用long类型。
在Python中可以直接将数字赋值给变量,则就会定义一个数值类型的变量。
x = 5
y = 12.34
z = 3 + 2j
上面就定义了三个Numbers,分别为int类型,float类型和复数类型。
1、int类型
int类型即整数类型,包括正整数,0和负整整,不能包含小数点。
int类型默认为10进制的,我们也可以在程序中使用二进制、八进制和十六进制的整型数字。
二进制以 0b 开始,后面的数字只能是0或1;
八进制以 0o开始,后面的数字只能是0到7的八个数,使用超出7的数字会报错;
十六进制以 0x开始,后面的数字是有0-9十个数字和A-F六个字母构成,字母大小写无所谓。
a = 0b1001 #二进制形式
print(a) #输出 9
b = 0o17 #八进制形式
print(b) #输出15
c = 0x9F #十六进制形式
print(c) #输出 159
上面描述的情形如下图所示:
2、float类型
float类型是含小数点的数字。包括正负浮点数。也可以使用“e”或“E”来定义科学计数法的浮点数。
x = 1.2E3
print(x) #输出1200.0
y = 12.34e3
print(y) #输出12340.0
上面的 1.2E3 相当于 1.2*(10*10*10) = 1200.0
3、complex类型
复数类型有两部分组成:实部和虚部,复数的虚部在Python中使用j来做后缀。上面的例子中,3位实部,2为虚部。
在程序中可以使用complex()函数来创建一个复数或将一个字符串转换为复数类型。
x = complex(1, 2)
print(x)
y = complex(1)
print(y)
z = complex(-1, -2.4)
print(z)
x = complex("-2+3j")
print(x)
x = complex("-2 + 3j") #会报错ValueError:complex() arg is a malformed string #畸形字符串
print(x)
以上在Python IDLE中的执行情况如下图:
上面执行结果中,最后一个出现错误,原因在于字符串中间有空格,也就是说将一个复数字符串转换为复数时,中间不允许有任何的空白字符。
4、数据类型间的转换
在Python程序中,可以将int类型转换为float类型,也可以将float类型转换为int类型;可以将int类型或float类型转换为complex类型,但不能把complex转换为int类型或float类型。在把int类型或float类型转换为complex类型时,其虚部为“0j”。
转换时可以使用int(),float()和complex()函数来实现。
i = 5
f = 3.5
itf = float(i)
print(itf)
fti = int(f)
print(fti)
itc = complex(i)
print(itc)
ftc = complex(f)
print(ftc)
以上在python IDLE 中的执行情况如下图:
5、数据类型的判断
我们可以使用type()函数来判断一个变量所属的类型:
x = 5
y = 12.34
z = 3 + 2j
print(type(x)) #<class 'int'> 即int类型的对象
print(type(y)) #<class 'float'>
print(type(z)) #<class 'complex'>
新闻热点
疑难解答