在mooc学习python的第三周——基本数据类型(学习笔记)

Case1 天天向上的力量:

工作日工作的力量:使用for循环语句(注意与c++的使用不同,在for和if后面都要加冒号)

这个程序自己写的时候没有保留两位小数是因为什么呢?写成了{:2f},少了一个.,应该是{:.2f};

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

问:工作日要进步多少才能与每天都进步的程度一样?

#daydayupQ4.py
def dayUp(df):  #定义一个函数用于计算“力量”
    dayup = 1;
    for i in range(365):
        if i%7 in [0,6]:
            dayup *= 1-0.01
        else:
            dayup *= 1+df
    return dayup
df = 0.01
while dayUp(df)<37.78:
    df += 0.001
print("工作日的努力参数为:{:.3f}".format(df))

字符串格式化输出:


case2 如何产生一个进度条?

需求分析:采用字符串方式打印可以动态变化的文本进度条,并且进度条需要能在一行中逐渐变化

问题:

Q1:如何获得文本进度条的变化时间?sleep

单行动态刷新:

刷新的本质:用后打印的字符覆盖之前打印的字符

不能换行:print()始终在同一行输出 end = ''

要可以回退,打印后光标回到之前的位置 \r实现

import time #引入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.05)
print("\n"+"执行结束".center(scale//2,'-'))
time库函数

时间获取: time() ctime() gmtime()

时间格式化: strftime()  strptime()

程序计时: 测量时间:perf_counter() ; 产生时间sleep()

>>> import time  #引入time库
>>> time.time()   #获取当前时间戳,即计算机内部时间;为浮点数
1523097843.3245733 
>>> time.ctime() #获取当前时间并以易读格式表示,返回字符串
'Sat Apr  7 18:44:14 2018'
>>> time.gmtime()  #获取当前时间,表示为计算机可处理的时间格式
time.struct_time(tm_year=2018, tm_mon=4, tm_mday=7, tm_hour=10, tm_min=44, tm_sec=25, tm_wday=5, tm_yday=97, tm_isdst=0)
>>> t = time.gmtime()
>>> time.strftime("%Y-%m-d% %H:%M:%S",t)  #将计算机可处理的时间格式表示为定制的时间格式
>>> time.strftime("%Y-%m-%d %H:%M:%S",t)
'2018-04-07 10:45:01'
>>> timestr = time.strftime("%Y-%m-%d %H:%M:%S",t)
>>> time.strptime(timestr,"%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2018, tm_mon=4, tm_mday=7, tm_hour=10, tm_min=45, tm_sec=1, tm_wday=5, tm_yday=97, tm_isdst=-1)

strftime()



perf_counter() :返回一个CPU级别的精确时间计数值,单位为s,这个计数值起点不确定,所以一般是采用差值

sleep(s) : s拟休眠的时间,单位是s,可以是浮点数// 程序将等待3.3秒后再退出。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值