Python“天天向上的力量”——基本数据类型以及数值运算函数

整数类型:与数学中整数的概念一致
-可正可负,没有取值范围限制
-pow(x,y)函数:计算xy,想算多大算多大
-十进制:1010,99,-217
-二进制:以0b或0B开头:0b010,-0B101
-八进制:以0o或0O开头:0o123,-0O456
-十六进制:以0x或0X开头:0x9a,0X89

浮点类型:与数学中实数的概念一致
(1)带有小数点及小数的数字
-浮点数取值范围和小数精度都存在限制,但常规计算可忽略
-取值范围数量级约-10308至10308,精度数量级10-16
-浮点数间运算存在不确定位数,不是bug
在这里插入图片描述
-round(x,d):对x四舍五入,d是小数截取位数,浮点数间运算及比较用round()函数辅助
(2)浮点数可以采用科学计数法表示
-使用字母e或E作为幂的符号,以10为基数,格式为< a > e < b >,表示a*10b
如:4.3e-3=0.0043、9.6E5=960000.0

复数类型:与数学中复数的概念一致
-a+bj被称为复数,其中,a是实部,b是虚部
如:z=1.23e-4+5.6e+89j
通过z.real获得实部,通过z.imag获得虚部

数字类型及操作符
操作符是完成运算的一种符号体系

操作符及使用描述
x+y加,x与y之和
x-y减,x与y之差
x*y乘,x与y之积
x/y除,x与y之商,10/3=3.3333333333333335
x//y整数除,x与y之整数商,10//3=3
+xx本身
-yy的负值
x%y余数,模运算,10%3=1
x**y当y是整数时,x的y次幂=xy ,当y是小数时,开方运算,10**0.5=√10(根号10)

同时二元操作符有对应的增强赋值操作符
在这里插入图片描述
类型间可进行混合运算,生成结果为“最宽”类型
-三种类型存在一种逐渐“扩展”或“变宽”的关系:整数->浮点数->复数
如:123+4.0=127.0

数值运算函数:一些以函数形式提供的数值运算功能

函数及使用描述
abs(x)绝对值,x的绝对值,abs(-10.01)=10.01
divmod(x,y)商余,(x//y,x%y),同时输出商和余数,divmod(10,3)=(3,1)
pow(x,y[,z])幂余,(x**y)%z,[…]表示参数z可省略,pow(3,pow(3,99),10000)=4587
round(x[,d]四舍五入,d是保留小数位,默认值为0,round(-10.123,2)=-10.12
max(x1,x2,…,xn)最大值,返回x1,x2,…,xn中的最大值,n不限,max(1,9,5,4,3)=9
min(x1,x2,…,xn)最小值,返回x1,x2,…,xn中的最小值,n不限,min(1,9,5,4,3)=1
int(x)将x变成整数,舍弃小数部分,int(123.45)=123,int(“123”)=123
float(x)将x变成浮点数,增加小数部分,float(12)=12.0,float(“1.23”)=1.23
complex(x)将x变成复数,增加虚数部分,complex(4)=4+0j

问题1:一年365天,每天进步千分之一,累计进步多少呢?
答:pow(1.001,365)
问题2:一年365天,每天退步千分之一,累计剩下多少呢?
答:pow(0.999,365)
问题3:一年365天,每天进步或退步x,累计进步或剩下多少呢?

dayfactor=input("每天进步或退步:")
dayup=pow(1+eval(dayfactor),365)
daydown=pow(1-eval(dayfactor),365)
print("向上:{:.2f},向下{:.2f}".format(dayup,daydown))

问题4:一年365天,一周5个工作日,每天进步1%,一周2个休息日,每天退步1%,结果如何?

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

问题5:工作日模式要努力到什么水平,才能与每天努力1%一样?

def dayUP(df): #根据df参数计算工作日力量的函数,def保留字用于定义函数
    dayup=1
    for i in range(365):
        if i%7 in [6,0]:
            dayup=dayup*(1-0.01)
        else:
            dayup=dayup*(1+df)
    return dayup
dayfactor=0.01
while dayUP(dayfactor)<37.78: #365每天努力1%=37.78
    dayfactor+=0.001
print("工作日的努力参数是:{:.3f}".format(dayfactor))
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值