python数字类型的操作_【Python】基本数据类型------数字类型及操作

数字类型及操作

整数类型

与数学中整数的概念一致

可正可负,没有取值范围限制

pow(x,y)函数:计算xy,想算多大算多大

>>> pow(2,100)

1267650600228229401496703205376

>>> pow(2,pow(2,15))

141 546103104495478900155.....

4种进制表示形式

十进制: 1010, 99, -217

二进制,以0b或0B开头: 0b010, -0B101

八进制,以0o或0O开头: 0o123, -0O456

十六进制,以0x或0X开头: 0x9a, -0X89

浮点数类型

与数学中实数的概念一致

带有小数点及小数的数字

浮点数取值范围和小数精度都存在限制,但常规计算可忽略

取值范围数量级约-10308至10308,精度数量级10-16

浮点数间运算存在不确定尾数,不是bug

>>> 0.1 + 0.3

0.4

>>> 0.1 + 0.2

0.30000000000000004

0.1 53位二进制表示小数部分,约10-16

0.00011001100110011001100110011001100110011001100110011010 ( 二进制表示)

0.00000000000000055511151231257827021181583404541015625 ( 十进制表示)

二进制表示小数,可以无限接近,但不完全相同

0.1+0.2

结果无限接近0.3,但可能存在尾数

>>>0.1+0.2==0.3

False

>>> round(0.1+0.2, 1) == 0.3

True

round(x, d):对x四舍五入,d是小数截取位数

浮点数间运算及比较用round()函数辅助

浮点数可以采用科学计数法表示

使用字母e或E作为幂的符号,以10为基数,格式如下:

e 表示 a*10b

例如: 4.3e-3 值为0.0043 9.6E5值为960000.0

复数类型

与数学中复数的概念-致

如果x2= -1 ,那么x的值是什么?

定义j=√ (-1) , 以此为基础,构建数学体系

a+bj被称为复数,其中, a是实部,b是虚部

z = 1.23e-4+5.6e+89j

实部是什么? z.real获得实部

虚部是什么? z.imag获得虚部

数值运算操作符

数字类型的关系

类型间可进行混合运算,生成结果为"最宽"类型

三种类型存在一种逐渐"扩 展"或"变宽"的关系:

整数->浮点数->复数

例如: 123 + 4.0= 127.0 (整数+浮点数= 浮点数)

数值运算函数

实例:天天向上的力量

基本问题:持续的价值

一年365天,每天进步1%,累计进步多少呢?

一年365天 ,每天退步1%,累计剩下多少呢?

数学公式可以求解,似乎没必要用程序

如果是"三天打鱼两天晒网”呢?

如果是"双休日又不退步"呢?

问题1:1‰的力量

一年365天,每天进步1‰ ,累计进步多少呢?

1.001365

一年365天,每天退步1‰ ,累计剩下多少呢?

0.999365

#DayDayUpQ1.py

dayup =pow(1.001,365)

daydown =pow(0.999,365)

print("向上: {:.2f}, 向下: {:.2f}" .format(dayup, daydown))

问题2:5%和1%的力量

一年365天,每天进步5%或1 %,累计进步多少呢?

1.005365 1.01365

一年365天,每天退步5%或1 %,累计剩下多少呢?

0.995365 0.99365

#DayDayUpQ2. py

dayfactor = 0.005

dayup = pow(1+dayfactor, 365 )

daydown = pow(1-dayfactor, 365)

print("向上: {:.2f}, 向下: {:.2f}" . format (dayup, daydown))

使用变量的好处:一处修改即可

问题3 :工作日的力量

一年365天, 一周5个工作日,每天进步1%

一年365天, 一周2个休息日,每天退步1%

这种工作日的力量,如何呢?

#DayDayUpQ3. py

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))

问题4 :工作日的努力

工作日模式要努力到什么水平,才能与每天努力1%-样?

A君: 一年365天,每天进步1% ,不停歇

B君: 一年365天,每周工作5天休息2天,休息日下降1%,要多努力呢?

for…in…(计算思维)—> def…while…(“笨办法”试错)

#DayDayUpQ4. py

def dayUP(df):

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:

dayfactor += 0.001

print("工作日的努力参数是: {:.3f} ".format ( dayfactor))

根据df参数计算工作日力量的函数,参数不同,这段代码可共用

def保留字用于定义函数

while保留字判断条件是否成立,条件成立时循环执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值