Python 八种数据类型
1. 整数类型:int
有些强类型的编程语言会提供多种整数类型,每种类型的长度都不同,能容纳的整数的大小也不同,开发者要根据实际数字的大小选用不同的类型。例如C语言提供了 short、int、long、long long 四种类型的整数,它们的长度依次递增,初学者在选择整数类型时往往比较迷惑,有时候还会导致数值溢出。
而 Python 则不同,它的整数不分类型,或者说它只有一种类型的整数。Python 整数的取值范围是无限的,不管多大或者多小的数字,Python 都能轻松处理。
decimal = 10
print(type(decimal))
输出结果:<class 'int'>
2. 浮点数型:float
浮点数和整数在计算机内部存储的方式是不同的,整数运算永远是精确的,然而浮点数的运算则可能会有四舍五入的误差
在Pyton中你可以使用round()这个函数来控制浮点数精确位数,rand()函数是返回某个值四舍五入后的值
decimal = 10.1
print(type(decimal))
print(8.5 - 8.4)
print(round(8.5 - 8.4, 2))
输出结果:<class 'float'>
输出结果:0.09999999999999964
输出结果:0.1
3. 字符串类型:str
- 单引号(’ ‘):包含在单引号中的字符串,其中可以包含双引号
- 双引号(” “):包含在双引号中的字符串,其中可以包含单引号
- 三单引号(‘’’ ‘’’)或三双引号(“”” “””):包含在三引号中的字符串,可以跨行
str = 'hello python'
print(type(str))
输出结果:<class 'str'>
4. 列表类型:list
- 列表是最常用的Python数据类型,可以作为一个方括号内的逗号分隔值出现
- 列表的数据项不需要具有相同的类型,列表索引从0开始
- 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可
lis = [1, 2, 3, 4, 5]
print(type(lis))
输出结果:<class 'list'>
5. 元组类型: tuple
- 与列表相似,不同之处就在于元组的元素不能被修改
- 列表使⽤的是中括号“[]”,元组使⽤的是⼩括号“()”
- 列表属于可变类型,元组属于不可变类型
- Python内部对元组进⾏了⼤量的优化,访问和处理速度都⽐列表快
tupl = (1, 2, 3, 4, 5)
print(type(tupl))
输出结果:<class 'tuple'>
6. 集合类型:set
- set集合是一个 无序并且元素不重复的 集合的数据类型
se = {1, 3, 4, 5, 'a', 'b', 'c'}
print(type(se))
输出结果:<class 'set'>
7. 字典类型:dict
- 每个键与值用冒号隔开 :,每对后面必须用逗号结尾,整体放在花括号中 {}
- 键必须独一无二,但值则不必。
- 值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。
dic = {
'name': 'dd',
'age': '18'
}
print(type(dic))
输出结果:<class 'dict'>
8. 复数类型:complex
c1 = 12 + 0.2j
c2 = 6 - 1.2j
print(c1)
print(c2)
print(type(c1))
print(type(c2))
输出结果:(12+0.2j)
输出结果:(6-1.2j)
输出结果:<class 'complex'>
输出结果:<class 'complex'>
#对复数进行简单计算
print(c1+c2)
print(c1-c2)
print(c1*c2)
print(c1/c2)
输出结果:(18-1j)
输出结果:(6+1.4j)
输出结果:(72.24-13.2j)
输出结果:(1.9166666666666667+0.4166666666666667j)
加法法则
复数的加法按照以下规定的法则进行:设z1=a+bi,z2=c+di是任意两个复数,
则它们的和是 (a+bi)+(c+di)=(a+c)+(b+d)i。
两个复数的和依然是复数,它的实部是原来两个复数实部的和,它的虚部是原来两个虚部的和。
复数的加法满足交换律和结合律,
即对任意复数z1,z2,z3,有: z1+z2=z2+z1;(z1+z2)+z3=z1+(z2+z3)。
减法法则
复数的减法按照以下规定的法则进行:设z1=a+bi,z2=c+di是任意两个复数,
则它们的差是 (a+bi)-(c+di)=(a-c)+(b-d)i。
两个复数的差依然是复数,它的实部是原来两个复数实部的差,它的虚部是原来两个虚部的差。
乘法法则
规定复数的乘法按照以下的法则进行:
设z1=a+bi,z2=c+di(a、b、c、d∈R)是任意两个复数,那么它们的积(a+bi)(c+di)=(ac-bd)+(bc+ad)i。
其实就是把两个复数相乘,类似两个多项式相乘,展开得: ac+adi+bci+bdi2,因为i2=-1,所以结果是(ac-bd)+(bc+ad)i 。两个复数的积仍然是一个复数。
在极坐标下,复数可用模长r与幅角θ表示为(r,θ)。对于复数a+bi,r=√(a²+b²),θ=arctan(b/a)。此时,复数相乘表现为幅角相加,模长相乘。
除法法则
复数除法定义:满足(c+di)(x+yi)=(a+bi)的复数x+yi(x,y∈R)叫复数a+bi除以复数c+di的商。
运算方法:可以把除法换算成乘法做,在分子分母同时乘上分母的共轭。所谓共轭你可以理解为加减号的变换,互为共轭的两个复数相乘是个实常数。
除法运算规则:
①
设复数a+bi(a,b∈R),除以c+di(c,d∈R),其商为x+yi(x,y∈R),
图1 分母实数化
图1 分母实数化
即(a+bi)÷(c+di)=x+yi
∵(x+yi)(c+di)=(cx-dy)+(dx+cy)i
∴(cx-dy)+(dx+cy)i=a+bi
由复数相等定义可知 cx-dy=a dx+cy=b
解这个方程组,得 x=(ac+bd)/(c2+d2) y=(bc-ad)/(c2+d2)
于是有:(a+bi)/(c+di)=(ac+bd)/(c2+d2) +((bc-ad)/(c2+d2))i
②
利用共轭复数将分母实数化得(见图1):
点评:①是常规方法;②是利用初中我们学习的化简无理分式时,都是采用的分母有理化思想方法,而复数c+di与复数c-di,相当于我们初中学习的 的对偶式,它们之积为1是有理数,而(c+di)·(c-di)=c2+d2是正实数.所以可以分母实数化。把这种方法叫做分母实数化法。
另外,由上述乘法法则可得另一计算方法,即幅角相减,模长相除。