Python——八种数据类型

  • Post author:
  • Post category:python




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是正实数.所以可以分母实数化。把这种方法叫做分母实数化法。

另外,由上述乘法法则可得另一计算方法,即幅角相减,模长相除。



版权声明:本文为JD20200906原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。