如何在Python中使用整数和浮点数

346 阅读8分钟

你可能听说过,编程需要大量的数学。实际上,只要你有基本的算术技能,你可以不需要大量的数学就能完成大量的编程工作。当你确实需要在Python中处理数字时,它提供了加、减、乘、除、取整、排序、将数字转换成字母、将数字转换成二进制、分离数字以及其他一些方便的技巧。在本教程中,我们将看看如何在Python中使用整数和浮点数,以便在你的程序中使用。


如何加数

在Python中加数是非常容易的。你知道如何使用**+**号吗?那么你就知道如何在Python中加数。通过数字相加,我们可以得到数字的总和。

整数和浮点数

在我们开始添加数字之前,我们应该快速讨论一下什么是整数,什么是Python中的浮点数。一个整数 (或 int)数据类型指的是整数的值。0、1、2、3、4、5、6、7、8、9都是整数值。带有小数点的数字,如1.61,被称为浮点数(或 floats).请注意,尽管数值12是一个整数,但数值12.0将是一个浮点数。顺便提一下,1.61也被称为黄金比例--用这个图片表示。

The Golden Ratio 161

我们可以使用IDLE,它是一个集成开发环境,实际上包含在Python的默认安装中。它使得测试Python代码的片段变得很容易。这里我们添加一些不同的整数。就像在数学课上一样,Python使用**+**运算符来添加数字。

Add Integers In Python

添加浮点数的工作方式也类似。

How To Add Floating Point Numbers In Python


如何在Python中减去数字

减法是用**-**运算符完成的。同样,我们可以减去整数、浮点数或各种类型的混合数。

Python Subtract Numbers


数字的除法

除法是用**/**运算符完成的。注意,你不希望除以0,否则会遇到ZeroDivisionError

How To Divide Numbers In Python

Python 也有一个整数除法运算符 //。它为你把商压低。换句话说,它将除法运算的结果向下舍入。这里有几个标准除法和整数商除法的例子。

Python Integer Floored Quotient Division


如何在Python中进行数字乘法

在Python中,数字可以被相乘。*操作符为你处理乘法。

Multiply Python Numbers


指数运算符

指数是一个数字乘以自己的指定次数。Python 中的******操作符允许你像这样计算指数。

How To Apply An Exponent In Python


查找余数

在编程中,你经常想找到除法运算的剩余部分。这可以用模数运算符**%**来完成。

python modulus operator example


操作的顺序

在做加法、减法、乘法、除法等运算时,有一个运算顺序或优先级,需要遵循。有些数学运算符的优先级比其他运算符高。这意味着它们优先于优先级较低的数学运算符。**运算符首先被评估。*/、**//%运算符从左到右排在后面。最后的运算顺序是+-**运算符从左到右。
如果需要,你可以像代数类一样使用括号来覆盖标准优先级。

Python math order of operations precedence


Python数学运算符从高到低的优先级

操作符操作
**指数
%模数
//整数除法
/标准除法
*乘法
-减法
+加法

在Python中对数字进行四舍五入

要在Python中对一个数字进行四舍五入,你可以使用内置的**round()**函数。round()函数通常将一个小数四舍五入到作为第二个参数的设定的小数位数。如果你不使用第二个参数,round()会将你的数字舍入到最接近的整数。

how to round python numbers


格式化数字

在Python中,有各种各样的方法来格式化数字。下面是一些常见的例子。

四舍五入到小数点后2位

python round 2 decimal places

将浮动数格式化为百分比

python format float as percentage

左边有零的填充

python left padding with zeros

右边有零的填充

python right padding with zeros

在大数上加逗号

python adding commas to large numbers


如何在Python中对数字进行排序

在Python中对数字进行排序通常发生在你有一个数字列表或其他类型的数字集合,如一个元组或一个数字字典。想象一下,我们将这些数字存储在一个列表中。

nums = [1, 3, 2, 5, 4]

我们可以在 Python 中对这些数字进行排序,一种方法是使用内置的sorted()函数。

sorted(nums)
[1, 2, 3, 4, 5]

要对这些数字进行反向排序,只需在 sorted() 函数中加入第二个参数。

sorted(nums, reverse=True)
[5, 4, 3, 2, 1]

当使用 sorted() 函数时,列表的原始顺序保持不变,你只是按照排序的顺序来展示这些数字。sorted()函数以一个特定的顺序显示你的列表,但不影响列表的实际顺序。在 Python 中,我们可以使用的另一个选项是使用**sort()**函数来对数字进行排序。

如果我们看一下我们的 **nums**变量,其排序顺序仍然是最初分配的方式。这表明sorted()函数将原始列表保持原样。

nums
[1, 3, 2, 5, 4]

为了使用 sort() 函数,我们实际上把它作为 list 对象的一个方法。我们可以在这里看到该语法与 sorted() 的不同之处。

nums.sort()
[1, 2, 3, 4, 5]

为了用**.sort()** 来扭转排序顺序,我们使用类似的reverse=True参数。

nums.sort(reverse=True)
[5, 4, 3, 2, 1]

考虑一下这个字典,它现在代表了我们最初的数字集合。

nums = {'a': 1, 'b': 3, 'c': 2, 'd': 5, 'e': 4}

如果我们试图在这里使用 .sort() 方法会发生什么?

nums.sort()
Traceback (most recent call last):
  File "<pyshell#100>", line 1, in <module>
    nums.sort()
AttributeError: 'dict' object has no attribute 'sort'

原因是你不能对 dictionary 进行排序,你只能得到一个被排序的 dictionary 的表示。字典本身是无边界的。在这种情况下,让我们试试 sorted() 函数,因为我们知道它可以保留原始数据,但以一种排序的方式呈现数据。为了使其发挥作用,我们需要将.items()方法与lambda函数结合使用。

sorted(nums.items(), key= lambda x: x[1])
[('a', 1), ('c', 2), ('b', 3), ('e', 4), ('d', 5)]

要对数字进行反向排序,你知道该怎么做。

sorted(nums.items(), key= lambda x: x[1], reverse=True)
[('d', 5), ('e', 4), ('b', 3), ('c', 2), ('a', 1)]

这些是在 dictionary 中使用 sorted() 的组件。

参数语法意义
对象nums.items()指向我们 "nums "字典中的所有值。如果我们只使用 "nums",我们将不得不引用项目的索引位置来获得其单独的值。另一方面,如果我们使用 nums.items(),就会创建一个可迭代的列表,其中的项目都在一个列表中。
keykey=lambda x: x[1] 。一个排序机制,允许你按值对一个字典进行排序。这是一个 Lambda 函数的例子,它是一个没有名字的函数。
reversereverse=True说明我们要对数字进行反向排序,或降序排序。

如何在Python中打印数字

如果你想打印出一个数字序列,你可以用 Python 中的**range()**函数来做。range() 函数是与 **for**构造中使用。它需要三个参数。第一个参数是你想从哪一个数字开始。第二个参数是你想数到的数字,再加上1。换句话说,如果你想从1数到10,你应该使用range(1, 11)而不是range(1, 10)。

for num in range(1, 11):
    print(num)
1
2
3
4
5
6
7
8
9
10

第三个参数是你要计算的步骤值。假设你想以十为单位数到100。非常简单。

for num in range(0, 101, 10):
    print(num)
0
10
20
30
40
50
60
70
80
90
100

也可以反过来做。你可以在第三个参数中使用一个负数来创造一个倒计时效果。

for num in range(10, 0, -1):
    print(num)
10
9
8
7
6
5
4
3
2
1

如何在Python中分离数字

如果你有一个非常大的数字,并且想把它拆成各个数字,这里你可以做到这一点。我们需要使用[str()函数]和一个[列表理解]。

num = 916571163
[int(d) for d in str(num)]
[9, 1, 6, 5, 7, 1, 1, 6, 3]

如何在Python中把数字转换为字母

这个整洁的小片段将打印出与其位置数字相对应的每个字母。

import string

for x, y in zip(range(1, 27), string.ascii_uppercase):
    print(x, y)
1 A
2 B
3 C
4 D
5 E
6 F
7 G
8 H
9 I
10 J
11 K
12 L
13 M
14 N
15 O
16 P
17 Q
18 R
19 S
20 T
21 U
22 V
23 W
24 X
25 Y
26 Z

如何在Python中把数字转换为二进制

Python 提供了一个bin()函数,可以将一个整数转换为以 "0b" 为前缀的二进制字符串。

num = 123
print(bin(num))
0b1111011

如果你只想要零和一,没有前导的 0b,你可以使用带有 :b 格式的 f-string。

num = 123
print(f'{num:b}')
1111011

如何在Python中使用数字 摘要

学习在Python中处理数字,以及可以进行的基本数学运算,是一件好事。有了这些基础知识,你可以做一些事情,比如使用[Matplotlib]数学绘图库绘制数据。对于用Python编程的许多任务,你所需要的只是数学基础知识,我们在本教程中涵盖了大部分需要的内容。