第三章:基本数据类型(天天向上的力量、文本进度条)(time库)
一、天天向上的力量:
1.一年365天,一周5个工作日,如果每个工作日都很努力,可以提高1%,仅在周末两天放任一下,能力值下降1%,那一年可以进步多少呢?
dayfactor=0.01
dayup=1.0
for i in range (365):
j=i%7
if j in range (1,6): #表示j可取1 2 3 4 5
#注意是 (,)
dayup=dayup*(1+dayfactor)
else:
dayup=dayup*(1-dayfactor)
print("一年进步:{:.2f}".format(dayup))
结果显示:
一年进步:4.63
注意:for j in range (1,6) 是从1取到5
而在字符串里 使用的是 [1:6]
2.如果每周工作五天,休息两天,休息日水平下降0.01,工作日要努力到什么程度,一年后的水平才 与每天努力1%取得的效果一样呢?
import math
dayup_365=math.pow((1+0.01),365)
def dayup(df):
dayup=1.0
for i in range (365):
j=i%7
if j in range (1,6):
dayup=dayup*(1+df)
else:
dayup=dayup*(1-0.01)
return dayup
dayfactor=0.01
while(dayup(dayfactor)<dayup_365):
dayfactor += 0.001
print("每天的努力参数是:{:.3f}".format(dayfactor))
结果展示:
每天的努力参数是:0.019
二、文本进度条:
1.用print()函数实现简单的非刷新文本进度条。
import time
scale=10
s1="执行开始"
print("{0:-^24}".format(s1))
for i in range (scale+1):
a='**'*i
b='..'*(scale-i)
c=(i/scale)*100
print("%{:^3.0f}[{}->{}]".format(c,a,b))
time.sleep(0.1)
s2="执行结束"
print("{0:-^24}".format(s2))
结果显示:
----------执行开始----------
% 0 [->....................]
%10 [**->..................]
%20 [****->................]
%30 [******->..............]
%40 [********->............]
%50 [**********->..........]
%60 [************->........]
%70 [**************->......]
%80 [****************->....]
%90 [******************->..]
%100[********************->]
----------执行结束----------
2.单行动态刷新:
import time
scale=10
for i in range (101):
print("{:3}%".format(i),end='')
time.sleep(0.005)
'''
print()函数 默认输出 换行
end='' 表示:使输出不换行
end=' ' 表示:使输出不换行 间隔一个 空格
'''
结果显示:
0% 1% 2% 3% 4% 5% 6% 7% 8% 9% 10% …… …… 90% 91% 92% 93% 94% 95% 96% 97% 98% 99%100%
3.带刷新的文本进度条
import time
scale=20
print("执行开始".center(scale*3,'-'))
t=time.perf_counter()
#time.perf_counter
#time.process_time
for i in range (scale+1):
a="**"*i
b=".."*(scale-i)
c=(i/scale)*100
t-= time.perf_counter()
print("{:^3.0f}%[{}->{}]\t{:.2f}".format(c,a,b,-t))
time.sleep(0.05)
print("执行结束".center(scale*3,'-'))
'''
代码第四行,不可以使用str.center()函数
会出现warning:
t=time.clock()
DeprecationWarning: time.clock has been deprecated in Python 3.3 and will be
removed from Python 3.8: use time.perf_counter or time.process_time instead
'''
结果显示:
0 %[->........................................] 0.00
5 %[**->......................................] 0.65
10 %[****->....................................] 1.41
15 %[******->..................................] 2.29
20 %[********->................................] 3.28
25 %[**********->..............................] 4.39
30 %[************->............................] 5.63
35 %[**************->..........................] 6.98
40 %[****************->........................] 8.45
45 %[******************->......................] 10.04
50 %[********************->....................] 11.74
55 %[**********************->..................] 13.56
60 %[************************->................] 15.49
65 %[**************************->..............] 17.55
70 %[****************************->............] 19.72
75 %[******************************->..........] 22.00
80 %[********************************->........] 24.41
85 %[**********************************->......] 26.92
90 %[************************************->....] 29.56
95 %[**************************************->..] 32.32
100%[****************************************->] 35.19