整型和浮点型的区别_15.深入探究math.fmod与“%”求模运算符的区别,您注意到了吗? - 数据类型(六)...

89217ed66a65f3292a9f73bac4262c9e.png
本节将对math与random模块中涉及数字和数学相关的、常用的、重要的函数做一个简单介绍,学会了对这些函数的熟练、正确使用,可以极大地提高涉及算术运算相关编程的质量、效率。同时,您将会发现,上节讲到的同样功能的Python内置函数与这里面讲到的函数存在着或多或少的区别,需要加以区分和特别注意。

1 math.ceil与math.floor函数

import 
  • 需要引用math模块,两函数传入的x一般都为浮点数,返回的都是一个整型的数;
  • ceil函数返回的整数为x的上限:大于或等于x的最小整数;
  • floor函数返回的整数为x的下限:小于或等于x的最大整数。
import 

2 math.fabs函数

import 
  • 需要引用math模块,该函数返回数值x的绝对值;
  • 传入的x适用于浮点型和整型,返回的绝对值始终为浮点型(与内置abs有区别,见下面代码);
  • 除了返回值类型的差别外,与Python内置函数abs另外一处差异在于:内置abs函数还可适用于复数(求复数的模),而math.fabs则不允许传入复数。
import 

3 math.copysign函数

import 
  • 需要引用math模块,x、y可以为整数,也可以为浮点数;
  • 该函数返回一个浮点数,该浮点数的绝对值等于x的绝对值,而其符号则与y的符号相同;
  • 注意:y的值尽量不要传入0、0.0、-0、-0.0,在不同的平台上结果可能不一样。
import 

4 math.factorial函数

import 
  • 需要引用math模块,返回数值x的阶乘(整型);
  • x必须为0或者正整数。
import 

5 math.fmod函数

import 
  • 需要引用math模块,该函数用于对浮点数求模,即求x除以y后的余数,结果为浮点型;
  • math.fmod函数与“%”求模运算符(如:x % y)的区别如下:
    • 前者始终返回浮点数;后者在x、y均为整型时,返回整型,其他情况下,即x、y任有一浮点型时,结果均返回浮点型。
    • 前者返回结果的符号(正负)始终与x相同;后者所得结果的符号(正负)始终与y相同。
    • 前者返回结果的绝对值始终等于“|x| % |y|”;对于后者,若x与y符号(正负)相同,结果的绝对值为“|x| % |y|”,若x与y的符号(正负)不同,结果的绝对值为“|y| - (|x| % |y|)”。
import 
  • 需要注意的是:当采用“%”求模运算符,且出现上述“|y| - (|x| % |y|)”这种情况时(即x与y的符号不同),若同时还符合下面两个条件:
    • |x|远小于|y|;
    • x与y中至少有一个是浮点数(只有浮点数才会导致精度损失)。

此时,导致(|x| % |y|)的值相对非常小(即等于|x|),而因为|y|相对又非常的大,加上计算机对浮点数计算精度的损失,会出现“|y| - (|x| % |y|)”的最终结果被截取成为“|y|”的奇怪现象,如下所示。

import 

6 对数函数

import 
  • 以上三个函数均需要引用math模块;
  • log函数返回x的自然对数(以e为底);
  • log2返回x以2为底的对数;
  • log10返回x以10为底的对数。
import 

7 三角函数

import 
  • 以上三个函数均需要引用math模块;
  • sin返回x弧度的正弦值;
  • cos返回x弧度的余弦值;
  • tan返回x弧度的正切值。
import 

8 随机数函数

import 
  • 以上两个函数均需要引用random模块;
  • 传入randint函数的a、b必须为整数,且a必须小于或等于b,返回的随机整数N满足:a <= N <= b;
  • 传入uniform函数的a、b为整数或浮点数,返回的随机浮点数N满足:min(a, b) <= N <= max(a, b)。
import 

青少年、零基础、初学者Python编程从入门到精通,“老马带小马 一块学Python”编程系列。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值