Python 数字
大多数情况下,您在所做的任何工作中都会处理数字。显然,任何计算机应用都会处理数字。因此,编程语言(包括Python)都内置了存储和处理数字数据的支持。
在本章中,我们将详细了解Python数值类型的属性。
Python解释器内置了三种数字类型:整数( int )、浮点数( float )和复数( complex )。Python还有一种内置的布尔数据类型叫做 bool 。它可以被视为int类型的子类型,因为它的两个可能值True和False分别表示整数1和0。
Python整数
在Python中,没有存储小数部分的数被称为整数。(注意,如果一个数的小数部分为0,并不意味着它是一个整数。例如,数值为1.0的数并不是整数,它是一个小数,小数部分为0,数值为1.)一个整数可以是零、正数或负整数。例如,1234、0、-55。
有三种方法可以形成一个整数对象:通过字面表示、任何求值为整数的表达式以及使用 int() 函数。
字面是一种在源代码中直接表示常数的表示法。例如 –
然而,请看下面整数变量c的赋值。
它将产生以下 输出 −
这里,c确实是一个整数变量,但先计算表达式a+b,并将其值间接赋给c。
形成整数对象的第三种方法是使用int()函数的返回值。它将浮点数或字符串转换为整数。
你可以用二进制、八进制或十六进制表示一个整数。然而,在内部,对象存储为一个整数。
二进制数
一个只由二进制数字(1和0)组成的数字,并以0b为前缀的数字是一个二进制数。如果你将一个二进制数赋值给一个变量,它仍然是一个整数变量。
要以二进制形式表示一个整数,可以直接将其作为文本值存储,或者使用int()函数,其中基数设置为2。
它将产生以下 输出 –
在Python中还有一个 bin() 函数。它返回一个整数的二进制字符串等价物。
它将产生以下内容 输出 −
八进制数
八进制数由数字0至7组成。为了指定整数使用八进制表示法,需要在前面加上 0o (小写的O)或者 0O (大写的O)。八进制数的字面表示如下所示−
它会产生以下 输出 −
请注意,该对象在内部是以整数形式存储的。八进制数107的十进制等价数是71。
由于八进制数系统有8个符号(0到7),它的基数是7。因此,在使用int()函数将八进制字符串转换为整数时,您需要将基数参数设置为8。
它将产生以下输出 –
八进制数30的十进制表示是16。
在下面的代码中,从八进制表示中获得了两个整数对象,并进行了它们的相加操作。
它将生成以下结果 输出 −
要获取一个整数的八进制字符串,请使用 oct() 函数。
十六进制数
顾名思义,十六进制数系统中有16个符号。它们是0-9和A到F。前10个数字与十进制数字相同。字母A,B,C,D,E和F分别等价于11、12、13、14、15和16。这些字母符号可以使用大写或小写。
以十六进制表示法表示整数时,前缀为 0x 或 0X 。
以下是它将产生的 输出 −
将一个十六进制字符串转换为整数,将基数设为16在 int() 函数中。
尝试使用以下代码片段。它接受一个十六进制字符串,并返回整数。
它将产生如下 输出 −
但是,如果字符串中包含任何除了十六进制符号表(例如X001)以外的符号,那么会引发以下错误−
Python的标准库中有 hex() 函数,你可以通过它获得整数的十六进制表示方式。
这将产生以下的 输出 −
尽管整数可以用二进制、八进制或十六进制表示,但内部仍然是整数。因此,在进行算术运算时,表示方式并不重要。
它将产生以下 output −
Python 浮点数
浮点数由整数部分和小数部分组成,以小数点符号 (.) 分隔。默认情况下,该数为正数,对于负数,需要在前面加上减号 (-
) 符号。
浮点数是 Python 的 float 类的对象。要存储一个浮点对象,可以使用文字表示法,使用算术表达式的值,或使用 float() 函数的返回值。
使用文字表示法是最直接的方法。只需将具有小数部分的数字赋给一个变量。以下每个语句都声明了一个浮点对象。
在Python中,浮点数的小数点后可以有任意多位。然而,为了缩短表示,会使用 E 或 e 符号。E代表10的幂次。例如,E4表示10的4次方(或10的4次幂),e-3表示10的负3次方。
在科学计数法中,一个数有系数和指数两部分。系数应该是大于等于1但小于10的浮点数。因此,1.23E+3、9.9E-5和1E10是科学计数法表示的浮点数的示例。
第二种形成浮点对象的方法是间接的,使用表达式的结果。在这里,两个浮点数的商被赋值给一个变量,该变量引用一个浮点对象。
它将产生以下 输出 −
Python的float()函数返回一个浮点对象,如果有适当的内容,则解析一个数字或字符串。如果括号中没有给出参数,则返回0.0,对于int参数,添加了0的小数部分。
即使整数以二进制、八进制或十六进制表示,float() 函数返回的浮点数的小数部分仍为0。
它将产生以下 输出 −
float()函数从包含浮点数的字符串中提取出一个浮点数,可以是标准的十进制形式,也可以是科学计数法形式。
它将产生以下 输出 −
在数学中,无穷是一个抽象的概念。从物理上来看,无限大的数永远无法在任何内存中存储。然而,对于大多数计算机硬件配置,一个非常大的数,比如10的400次方,被表示为Inf。如果你将”Infinity”作为float()函数的参数,它会返回Inf。
它将产生以下 输出 –
另一个这样的实体是NaN(代表不是一个数)。它表示任何未定义或不可表示的值。
Python 复数
在本节中,我们将详细了解 Python 中的复数数据类型。复数在电磁学、电子学、光学和量子理论等数学方程和定律中都有应用。傅里叶变换使用复数。它们被用于波函数计算、滤波器设计、数字电子学中的信号完整性、射电天文学等等。
复数由实部和虚部组成,用”+”或””分隔。实部可以是任何浮点数(或本身是复数);虚部也是一个浮点数/复数,但要乘以一个虚数。
在数学上,虚数”i”定义为-1的平方根(√−1)。因此,复数可以表示为”x+yi”,其中x是实部,”y”是虚部的系数。
为了避免与电流理论中的电流使用方式相混淆,通常使用符号”j”代替”i”作为虚数。Python 也使用”j”作为虚数。因此,”x+yj”是 Python 中复数的表示。
和 int 或 float 数据类型一样,可以使用字面表示法或 complex() 函数来创建复数对象。以下所有语句都形成一个复数对象。
请注意,实部和虚部的系数必须是浮点数,并且可以用标准的小数点表示法或科学计数法表示。
Python的 complex() 函数有助于形成复数对象。该函数接收实部和虚部的参数,并返回复数。
complex()函数有两个版本,一个带有两个参数,一个带有一个参数。使用带有两个参数的complex()函数是直截了当的。它将第一个参数用作实部,第二个参数用作虚部的系数。
它将产生以下 输出 −
在上面的示例中,我们使用了x和y作为浮点参数。它们甚至可以是复合数据类型。
它将产生以下 输出 −
对上面的例子感到惊讶吗? 将“x”设为 1+2j,将“y”设为 2-3j。试着手动计算“x+yj”,你就会知道了。
如果你只使用一个数值参数作为complex()函数的参数,它将把它视为实部的值,并将虚部设置为0。
将会产生以下输出
输出 −
complex()函数还可以将一个字符串解析为一个复数,如果它的唯一参数是复数表示。
在以下片段中,用户被要求输入一个复数。它被用作参数。由于Python将输入读取为一个字符串,函数从中提取复数对象。
它将产生以下 输出 −
Python的内置复数类有两个属性 real 和 imag ,它们分别返回对象的实部和虚部的系数。
它将产生以下 输出 –
复数类还定义了一个conjugate()方法。它返回另一个复数,其中虚部的符号被翻转。例如,x+yj的共轭是x-yj。