Python自学07-基本数据类型2-内置的数值运算函数和数字类型转换函数

内置的数值运算函数

函数描述
abs(x)x的绝对值
divmod(x,y)(x//y,x%y),输出为二元组形式(也成为元组类型)
pow(x,y[,z])(xy)%z,[…]表示该参数可以省略,即pow(x,y),它与xy相同
round(x[,ndigits])对x四舍五入,保留ndigits位小数。round(x)返回四舍五入的整数值
max(x1,x2,…,xn)x1,x2,…,xn的最大值,n没有限定
min(x1,x2,…,xn)x1,x2,…,xn 的最小值 ,n没有限定

abs()可以计算复数的绝对值。复数的绝对值是二维坐标系中复数位置到坐标原点的长度。

>>> abs(-3+4j)
5.0

pow()函数第三个参数z是可选的,使用该参数时,模运算与幂运算同时进行,速度很快。例如,求3的3999次幂结果的最后4位。从Python语法角度,pow(3,pow(3,999))%10000(不要在计算机中尝试该语句)和pow(3,pow(3,999),10000)都能完成计算需求。但是,前者是先求幂运算结果在进行模运算,由于幂运算结果数值巨大,上述计算在一般计算机上无法完成;而第二条语句则在幂运算同时进行模运算,可以很快计算出结果。pow()函数第三个参数z这个特点在运算加解密算法和科学计算中十分重要。

内置的数字类型转换函数

函数描述
int()将x转换为整数,x可以是浮点数或字符串
float()返回浮点数x或者字符串x所对应的整数类型
complex()生成一个复数,实部为re,虚部为im,re可以是整数、浮点数或字符串,im可以是整数或浮点数但不能为字符串

数值运算操作符可以隐式地转换输出结果的数字类型,例如,两个整数采用运算符“/”的除法将可能输出浮点数结果。此外,通过内置的数字类型转换函数可以显示地在数字类型之间进行转换。
浮点数类型转换为整数类型时,小数部分会被舍弃(不使用四舍五入),复数不能直接转换为其他数字类型,可以通过.real和.imag将复数的实部或虚部分别转换。

>>> int(10.99)
10
>>> complex(10.99)
(10.99+0j)
>>> float(10+99j)
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    float(10+99j)
TypeError: can't convert complex to float
>>> float((10+99j).imag)
99.0

实例

一年365天,以第1天的能力值为基数,记为1.0,当好好学习时能力值相比前一天提高1‰,当没有学习时能力值相比前一天下降1‰。每天努力和每天放任,一年下来的能力值相差多少呢?

import math
dayup = math.pow((1.0 + 0.001), 365) # 每天提高0.001
daydown = math.pow((1.0 - 0.001), 365) # 每天荒废0.001
print("向上: %.2f, 向下: %.2f."%(dayup, daydown))

运行结果如下:

向上: 1.44, 向下: 0.69.

一年365天,以第1天的能力值为基数,记为1.0,当好好学习时能力值相比前一天提高5‰,当没有学习时能力值相比前一天下降5‰。每天努力和每天放任,一年下来的能力值相差多少呢?

import math
dayup = math.pow((1.0 + 0.005), 365) # 每天提高0.005
daydown = math.pow((1.0 - 0.005), 365) # 每天荒废0.005
print("向上: %.2f, 向下: %.2f."%(dayup, daydown))

运行结果如下:

向上: 6.17, 向下: 0.16.

一年365天,以第1天的能力值为基数,记为1.0,当好好学习时能力值相比前一天提高1%,当没有学习时能力值相比前一天下降1%。每天努力和每天放任,一年下来的能力值相差多少呢?

import math
dayfactor = 0.01
dayup = math.pow((1.0 + dayfactor), 365) # 提高dayfactor
daydown = math.pow((1.0 - dayfactor), 365) # 放任dayfactor
print("向上: {:.2f}, 向下: {:.2f}.".format(dayup, daydown))

运行结果如下:

向上: 37.78, 向下: 0.03.

一年365天,以第1天的能力值为基数,记为1.0,当如果每个工作日都很努力,可以提高1%,仅在周末放任一下下降1%。一年下来的能力值相差多少呢?

dayup, dayfactor = 1.0, 0.01
for i in range(365):
    if i % 7 not in [6, 0]:
        dayup = dayup * (1 + dayfactor)
    else:
        dayup = dayup * (1 - dayfactor)
print("向上5 天向下2 天的力量: {:.2f}.".format(dayup))

运行结果如下:

向上5 天向下2 天的力量: 4.63.
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值