您的位置:首页 > 编程语言 > Python开发

python实例复习3——“天天向上”和文本进度条

2019-03-02 20:15 302 查看

一、“天天向上”

这个是为了复习数据类型相关的知识,比如整数、浮点数、列表、字符串等。这里之前比较陌生的是格式化参数:

使用format函数时,对应的{ }里面的参数可以控制字符串的形式:

1、填充:在{}里面使用=、*之类的可以用来对空格进行填充;

2、对齐:使用<(左对齐)、>(右对齐)、^(居中);

3、设置宽度:直接用整数可以设置宽度,如20,即字符串宽度20;

4、千位分隔符(财务数据读取):用‘,’即可;

5、设置精度:‘.’加数字可以设计精度;

6、设置数据类型:如0x、0b等设置进制、e设置小数的科学计数法、f设置为浮点数。

什么是天天向上:就是常说的每天进步1%,一年累计可以进步多少?加入工作日努力,周末休息(休息时退步1%),那么工作日要多努力才可以追上了?还有常说的三天打鱼、两天晒网又需要是什么样的情况?

这个直接写第二种情况的:

def up(df):
dayup = 1
for i in range(365):
if i % 7 in [6, 0]:      #余数为6和0表示为周六和周末
dayup *= (1 - 0.01)
else:
dayup *= (1 + df)
return dayup
dayfactor = 0.01
while up(dayfactor) < 37.78:  #37.78是表示每天努力进步0.01,一年可以进步多少的数
dayfactor += 0.001
print('工作日的努力参数是:{:.3f}'.format(dayfactor))

运算的结果

可以看出,如果每周休息两天那么工作日就要加倍努力了。

那如果三天打鱼、两天晒网呢?

……
for i in range(365):
if i % 5 in [4, 0]:      #余数为4和0表示为五天中休息两天
dayup *= (1 - 0.01)
……

那么就需要努力更多了。

二、文本进度条
这里面还是time模块的应用,我觉得我比较难以记住的还是时间的格式化:
%Y:年份
%m:表示月份
%B:月份的名称
%b:月份名称的缩写
%D:日期
%A:星期
%a:星期的缩写
%H:小时(24小时制)
%h:小时(12小时制)
%p:上下午
%M:分钟
%s:秒
time模块里面常用的还有个计时的函数:perf_counter(),成对存在,记录两个之间的时间,常常可以用作看一个程序运行了多久。

文本进度条,就是常用的可以看到随着时间的移动,进度条往前走:

import time
scale = 50
print("执行开始".center(scale//2, '-'))
start = time.perf_counter()
for i in range(scale+1):
a = '*' * i
b = '-' * (scale-i)
c = (i/scale)*100
dur = time.perf_counter() - start
print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c, a, b, dur), end = '')
time.sleep(0.01)
print("\n"+"执行结束".center(scale//2, '-'))

执行的效果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: