天天向上的力量
每天进步千分之一或退步千分之一会怎么样?
#DayDayUpQ1.py
dayup = pow(1.001,365)
daydown = pow(0.999,365)
print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))
用变量定义
#DayDayUpQ2.py
dayfactor = 0.005
dayup = pow(1+dayfactor,365)
daydown = pow(1-dayfactor,365)
print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))
工作日的力量
一年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))
工作日的努力
工作日情况怎么样才能达到每天努力1%的水平?
A童鞋:一年365天,每天进步百分之一,不停歇
B童鞋:一年365天,每周工作5天,休息2天,休息日下降1%,要多努力才能达到A童鞋的水平呢?
#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))
数据类型及操作
整数型
- 可正可负,没有范围限制
- 4种表示形式
十进制:1010,99,-217
二进制,以0b或0B开头:0b010,0B101
八进制,以0o或0O开头:0o123,-0o456
十六进制,以0x或0X开头:0x9a,-0X89
浮点数类型
- 带有小数点及小数点的数字
- 取值范围和精度基本无限制
- 运算存在不确定尾数
- 浮点数可以采用科学计数法表示
使用字母e或E表示,格式:<a>e<b> 表示a*10b
列如:4.3e-3值为0.0043,9.6E5值为960000.0
复数类型
- a+bj称为复数,其中,a是实部,b是虚部
- z.real获得实部
z.imag获得虚部
z = 1.23e-4 + 5.6e+89j
print(z.real)
print(z.imag)
#结果
0.000123
5.6e+89
列表
用[ ]标识,逗号分隔其中元素
元组
用( )标识的元素为元组
数值运算操作符
- x+y 加
- x-y 减
- x*y 乘
- x/y 除
>>> 10/3
3.3333333333333335
- x//y 整数除
>>> 10//3
3
- +x x本身
- -x x的负值
- x%y 余数
>>> 10%3
1
- x**y 幂运算,xy
相当于pow(x,y)
数值运算函数
- abs(x) 绝对值,x的绝对值
>>> abs(-10.01)
10.01
- divmod(x,y) 商余,同时输出商和余数
>>> divmod(10,3)
(3, 1)
-
pow(x,y[,z]) 幂余
pow(x,y) = xy
pow(x,y,z) = xy%z
>>> pow(2,3)
8
>>> pow(2,3,5)
3
- round(x[,d]) 四舍五入 d是保留小数位数,默认为0
>>> round(-10.123,2)
-10.12
- max(x1,x2,...,xn) 最大值
- min(x1,x2,...,xn) 最小值
- 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)
>>> complex(4,2)
(4+2j)