社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

一文带您了解python number:您真正理解python中数字吗?

新语数据故事汇 • 8 月前 • 238 次点击  

数字是任何编程语言的重要组成部分,Python也不例外。但是我们真正理解数字吗?比如在Python计算0.1+0.2 等多少?

或者看下面的结果

为什么会是上面的结果?浮点数在计算机中是以二进制形式存储的,但并非所有的十进制小数都能精确地转换为二进制小数。这种情况类似于十进制系统无法精确表示1/3(只能近似为0.333...),二进制系统也无法精确表示某些十进制小数,如0.1或0.2。

接下来,我们逐步展开在python 的数字的相关内容,包括整形和浮点型的区别、如何四舍五入到指定小数位数以及如何格式化数字显示。

整数

Python有三种内置的数值数据类型:整数、浮点数和复数。我们下来看看整数:整数是一个没有小数位的整数。例如,1是一个整数,但1.0不是。整数数据类型的名称是int,你可以通过type()函数看到它:

你可以通过键入所需的数字来创建一个整数。例如,以下代码将整数25赋值给变量num:

也可以使用int()函数将包含整数的字符串转换为数字,这在处理用户输入时特别有用。例如,以下代码将字符串"25"转换为整数25:

千分问表示:手写大数字时,你通常会将数字分成每三位一组,并用逗号或小数点分隔。数字1,000,000比1000000更容易阅读。

在Python中,你不能在整数字面量中使用逗号来分组数字,但你可以使用下划线(_)。以下两种方式都是有效的,用于以整数字面量的形式表示一百万:

python中整数可以有多大是没有限制的,无论多大Python可以毫无问题地处理它!

浮点数

浮点数(简称float)是一个有小数位的数字。1.0是一个浮点数,-2.75也是。浮点数据类型的名称是float:

与整数一样,浮点数可以通过浮点数字字符串创建,或者通过将字符串转换为浮点数来创建,使用float()函数:

表示浮点数字的方式有三种。以下每种方式都创建了一个值为一百万的浮点数字面量:

E表示法是指数表示法的简称。你可能在计算器上看到过这种表示法,用于表示太大而无法在屏幕上显示的数字。

要使用E表示法编写浮点数字面量,请键入一个数字,后跟字母e,然后再键入另一个数字。Python将e左边的数字乘以10的e右边数字的次幂。因此,1e6等价于1×10⁶。

Python还使用E表示法来显示大的浮点数:

浮点数200000000000000000.0会显示为2e+17。+号表示指数17是一个正数。你也可以使用负数作为指数:

与整数不同,浮点数确实有一个最大大小。最大浮点数取决于你的系统,但类似于2e400的数字应该远远超出了大多数机器的能力。2e400是2×10⁴⁰⁰,这远远超过了宇宙中原子的总数!

算术运算符和表达式

接下来我们介绍一下在Python中使用数字进行基本的算术运算,如加法、减法、乘法和除法。同时,您还将学习在代码中编写数学表达式的一些约定。

加法

加法使用+运算符进行:

在+运算符两侧的两个数被称为操作数。在上面的例子中,两个操作数都是整数,但操作数不必是同一类型。将一个整数与一个浮点数相加:

减法

要减去两个数,只需在它们之间放置一个-运算符:

-运算符也用于表示负数:

一个数中减去一个负数,但正如你下面看到的那样,这有时会看起来很令人困惑:

在编写代码时,清晰地表达你的意图很重要,尤其是当涉及到负数和减法时。你可以使用括号来明确你的计算顺序,虽然对于简单的表达式来说,Python的运算符优先级(先乘除后加减,从左到右)通常足够清晰。但对于更复杂的表达式,使用括号可以使代码更易于理解。

乘法

要乘以两个数,使用*运算符:

乘法中得到的数字类型遵循与加法和减法相同的规则。两个整数相乘的结果是一个整数,而一个数与一个浮点数相乘的结果是一个浮点数。

除法

/运算符用于除以两个数:

整除

如果认为写int(5.0 / 2)有点冗长,Python提供了第二个除法运算符,称为整数除法运算符(//),也称为向下取整除法运算符:

指数

可以使用 ** 运算符将一个数提升为幂次:

模运算符

% 运算符,或称为模,返回左操作数除以右操作数的余数:

使用 % 运算符处理负数时,事情会变得有点棘手:

虽然乍一看可能令人疑惑,但这些结果是Python中明确定义行为的产物。为了计算一个数x除以另一个数y的余数r,Python使用等式r = x - (y * (x // y))。

例如,为了找到5 % -3,Python首先找到(5 // -3)。由于5 / -3大约是-1.67,这意味着5 // -3是-2。现在Python将这个结果乘以-3得到6。最后,Python从5中减去6得到-1。

算术表达式

可以将运算符组合起来形成复杂的表达式。表达式是Python可以计算或评估以返回值的数字、运算符和括号的组合。

以下是一些算术表达式的示例:

表达式的规则与日常算术中的规则相同。在表达式中,、/、// 和 % 运算符具有相同的优先级,而这些运算符的优先级都高于 + 和 - 运算符。

数学函数和数字方法

Python 有一些内置函数,你可以使用它们来处理数字。接下来介绍三个最常见的函数:

  • round(),用于将数字四舍五入到指定的小数位数

  • abs(),用于获取一个数的绝对值

  • pow(),用于将一个数提升到某个幂次

使用 round() 四舍五入数字

可以使用 round() 将一个数字四舍五入到最接近的整数:

当数字以 .5 结尾时,round() 的行为可能会有些出乎意料:在 Python 3 中,round() 函数采用的是“银行家舍入”规则(也称为四舍六入五成双规则),这意呀着当需要舍入的数字是 .5 时,它会查看该数字前面的一位。如果这一位是偶数,则 .5 向下舍入(即向更靠近的偶数舍入);如果这一位是奇数,则 .5 向上舍入。这种舍入方法有助于减少由于连续舍入操作导致的统计偏差。

例如:

  • round(2.5) 会返回 2,因为 2 是偶数。

  • round(3.5) 会返回 4,因为 3 是奇数。

然而,需要注意的是,这种规则只适用于正好为 .5 的情况。对于其他小数,round() 会简单地四舍五入到最接近的整数。

round() 函数还可以接受第二个参数,用于指定需要保留的小数位数。如果省略此参数,则默认为 0,即四舍五入到最接近的整数。

例如:

使用 abs() 计算绝对值

一个数 n 的绝对值,如果 n 是正数,则就是 n;如果 n 是负数,则是 -n。例如,3 的绝对值是 3,而 -5 的绝对值是 5。在 Python 中,要获取一个数的绝对值,你可以使用 abs() 函数:

使用 pow() 求幂

使用 ** 运算符将一个数进行幂次。也可以使用 pow() 函数来达到相同的结果。

pow() 函数接受两个参数。第一个参数是底数(base),即要提升到某个幂次的数;第二个参数是指数(exponent),即底数要提升到的幂次。

例如:

pow() 函数接受一个可选的第三个参数,该参数用于计算第一个数提升到第二个数的幂次后,再对第三个数取模。换句话说,pow(x, y, z) 等同于 (x ** y) % z

检查浮点数是否为整数

浮点数有一个 .is_integer() 方法,如果数字是整数(即没有小数部分),则返回 True;否则返回 False:

以特定格式打印数字

向用户显示数字需要将数字插入到字符串中。你可以使用 f-strings 来实现这一点,方法是将分配给数字的变量用花括号包围起来:

关于格式化数字,详细可以参考:https://docs.python.org/3/library/string.html#format-specification-mini-language

接下来介绍几个常用的,保留两位小数的格式:

可以使用 , 选项在数字的整数部分插入逗号,以千位为单位对较大的数字进行分组:

另一个有用的选项是 %,它用于显示百分比。% 选项将数字乘以 100,并以定点格式显示,后面跟着一个百分号。

% 选项应该始终放在你的格式化规范的末尾,你不能将它与 f 选项混合使用。例如,.1% 将数字显示为具有一位小数的百分比:

复数

Python 是少数几个为复数提供内置支持的编程语言之一。虽然复数在科学计算和计算机图形学等领域之外并不常见,但 Python 对它们的支持是其强项之一。

在 Python 中创建一个复数,你只需写出实部,然后是一个加号,接着是带有字母 j 的虚部:

虚数带有两个属性,.real 和 .imag,它们分别返回该数的实部和虚部:

复数还有一个 .conjugate() 方法,它返回该数的复共轭:

复数的四则运算:


Python中的数字包括整数、浮点数和复数。整数类型int没有大小限制,可用下划线分组显示。浮点数float以二进制存储,有最大值限制,支持E表示法。常见运算符包括加减乘除、整除、指数和模运算。Python提供round()abs()pow()等函数处理数字,支持使用f-strings格式化输出。复数在Python中有内置支持,支持四则运算和属性访问。理解这些基础有助于更好地掌握Python的数值处理能力。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/173174
 
238 次点击