Python3 CookBook中如何高效处理数字?

2026-05-26 17:252阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1011个文字,预计阅读时间需要5分钟。

Python3 CookBook中如何高效处理数字?

欢迎关注我的微信公众号+AlwaysBeta,更多精彩内容等你来!

以下测试代码全部基于Python3。数字处理通常来说都比较简单,本文主要介绍几个常见问题和常用函数。

1. 取整pythonimport math

num=3.14int_num=math.floor(num) # 向下取整int_num=math.ceil(num) # 向上取整

2. 四舍五入pythonnum=3.6rounded_num=round(num) # 四舍五入

Python3 CookBook中如何高效处理数字?

3. 列表操作pythonnumbers=[1, 2, 3, 4, 5]sum_numbers=sum(numbers) # 求和min_numbers=min(numbers) # 最小值max_numbers=max(numbers) # 最大值

4. 字符串处理pythontext=Hello, World!upper_text=text.upper() # 转大写lower_text=text.lower() # 转小写split_text=text.split(,) # 分割字符串

5. 字典操作pythonmy_dict={name: Alice, age: 25}my_dict[name]=Bob # 修改键值对del my_dict[age] # 删除键值对

6. 遍历列表pythonnumbers=[1, 2, 3, 4, 5]for num in numbers: print(num)

7. 条件判断pythonx=5if x > 3: print(x is greater than 3)elif x==3: print(x is equal to 3)else: print(x is less than 3)

欢迎关注我的微信公众号 ​AlwaysBeta​,更多精彩内容等你来。

以下测试代码全部基于 Python3。

数字处理一般来说都比较简单,这篇文章主要介绍几个常见问题和常用函数。

取整和四舍五入

使用 int() 函数取整会直接丢弃小数位,不进行四舍五入。

In [4]: int(1.63)
Out[4]: 1

round() 函数会根据所带参数确定保留的小数位数,然后输出四舍五入后的结果。

In [6]: round(1.63)
Out[6]: 2

In [7]: round(1.63, 1)
Out[7]: 1.6

精确的浮点数运算

浮点数计算最让我头疼的就是它的小误差,这种误差并不是每一次都会出现,有的时候想在页面上展示一个计算结果,突然发现这个结果变成了一大长串数字,然后还要修改代码,将这串数字格式化。

In [8]: a = 1.1

In [9]: b = 1.2

In [10]: a + b
Out[10]: 2.3

In [11]: a = 4.2

In [12]: b = 2.1

In [13]: a + b
Out[13]: 6.300000000000001

如果想要避免这种情况可以使用 Decimal() 来进行精确计算,但这样的问题是会有一些性能上的损耗。

In [14]: from decimal import Decimal

In [15]: a = Decimal(2.1)

In [16]: b = Decimal(4.2)

In [17]: a + b
Out[17]: Decimal('6.300000000000000266453525910')

In [18]: a = Decimal('2.1')

In [19]: b = Decimal('4.2')

In [20]: a + b
Out[20]: Decimal('6.3')

需要注意的是,传入的参数需要是字符串,有点奇怪。

随机数

用 random 来生成随机数,该模块还提供了很多 function,特别有用。

产生[0,1)之间的随机数。

​​random.random()​​

产生[min, max)之间的随机整数。​​random.randint(min, max)​​

从可迭代对象中随机选取一个元素返回。

​​random.choice(iterable)​​

从可迭代对象中随机选取不重复的 k 个元素,以数组的形式进行返回。

​​random.sample(iterable, k)​​

在[start, stop)中以步长 step 进行步进,随机产生一个元素。

​​random.randrange(start, stop, step)​​

对序列进行原地随机打乱顺序,返回 None,一定要注意这是原地起作用的。

​​random.shuffle(l)​​

这里就不做具体演示了。

关于数字还有很多其他操作,比如格式化输出,十六进制整数的转换,复数运算等等,但都不是很复杂,有的可能也不常遇到。

未完待续。。。

本文共计1011个文字,预计阅读时间需要5分钟。

Python3 CookBook中如何高效处理数字?

欢迎关注我的微信公众号+AlwaysBeta,更多精彩内容等你来!

以下测试代码全部基于Python3。数字处理通常来说都比较简单,本文主要介绍几个常见问题和常用函数。

1. 取整pythonimport math

num=3.14int_num=math.floor(num) # 向下取整int_num=math.ceil(num) # 向上取整

2. 四舍五入pythonnum=3.6rounded_num=round(num) # 四舍五入

Python3 CookBook中如何高效处理数字?

3. 列表操作pythonnumbers=[1, 2, 3, 4, 5]sum_numbers=sum(numbers) # 求和min_numbers=min(numbers) # 最小值max_numbers=max(numbers) # 最大值

4. 字符串处理pythontext=Hello, World!upper_text=text.upper() # 转大写lower_text=text.lower() # 转小写split_text=text.split(,) # 分割字符串

5. 字典操作pythonmy_dict={name: Alice, age: 25}my_dict[name]=Bob # 修改键值对del my_dict[age] # 删除键值对

6. 遍历列表pythonnumbers=[1, 2, 3, 4, 5]for num in numbers: print(num)

7. 条件判断pythonx=5if x > 3: print(x is greater than 3)elif x==3: print(x is equal to 3)else: print(x is less than 3)

欢迎关注我的微信公众号 ​AlwaysBeta​,更多精彩内容等你来。

以下测试代码全部基于 Python3。

数字处理一般来说都比较简单,这篇文章主要介绍几个常见问题和常用函数。

取整和四舍五入

使用 int() 函数取整会直接丢弃小数位,不进行四舍五入。

In [4]: int(1.63)
Out[4]: 1

round() 函数会根据所带参数确定保留的小数位数,然后输出四舍五入后的结果。

In [6]: round(1.63)
Out[6]: 2

In [7]: round(1.63, 1)
Out[7]: 1.6

精确的浮点数运算

浮点数计算最让我头疼的就是它的小误差,这种误差并不是每一次都会出现,有的时候想在页面上展示一个计算结果,突然发现这个结果变成了一大长串数字,然后还要修改代码,将这串数字格式化。

In [8]: a = 1.1

In [9]: b = 1.2

In [10]: a + b
Out[10]: 2.3

In [11]: a = 4.2

In [12]: b = 2.1

In [13]: a + b
Out[13]: 6.300000000000001

如果想要避免这种情况可以使用 Decimal() 来进行精确计算,但这样的问题是会有一些性能上的损耗。

In [14]: from decimal import Decimal

In [15]: a = Decimal(2.1)

In [16]: b = Decimal(4.2)

In [17]: a + b
Out[17]: Decimal('6.300000000000000266453525910')

In [18]: a = Decimal('2.1')

In [19]: b = Decimal('4.2')

In [20]: a + b
Out[20]: Decimal('6.3')

需要注意的是,传入的参数需要是字符串,有点奇怪。

随机数

用 random 来生成随机数,该模块还提供了很多 function,特别有用。

产生[0,1)之间的随机数。

​​random.random()​​

产生[min, max)之间的随机整数。​​random.randint(min, max)​​

从可迭代对象中随机选取一个元素返回。

​​random.choice(iterable)​​

从可迭代对象中随机选取不重复的 k 个元素,以数组的形式进行返回。

​​random.sample(iterable, k)​​

在[start, stop)中以步长 step 进行步进,随机产生一个元素。

​​random.randrange(start, stop, step)​​

对序列进行原地随机打乱顺序,返回 None,一定要注意这是原地起作用的。

​​random.shuffle(l)​​

这里就不做具体演示了。

关于数字还有很多其他操作,比如格式化输出,十六进制整数的转换,复数运算等等,但都不是很复杂,有的可能也不常遇到。

未完待续。。。