工具:Pycharm
import time scale = 50 print("开始执行".center(scale//2,"-")) start = time.perf_counter() # 调用一次 perf_counter(),从计算机系统里随机选一个时间点A,计算其距离当前时间点B1有多少秒。 # 当第二次调用该函数时,默认从第一次调用的时间点A算起,距离当前时间点B2有多少秒。两个函数取差,即实现从时间点B1到B2的计时功能。 for i in range(scale+1): a = '*' * i b = '-' * (scale-i) c = (i/scale)*100 dur = time.perf_counter() - start # 计时,计算进度条走到某一百分比的用时 print(" {:^3.0f}%[{}>{}]{:.2f}s".format(c,a,b,dur),end='') # 用来在每次输出完成后,将光标移至行首,这样保证进度条始终在同一行输出,即在一行不断刷新的效果; # {:^3.0f},输出格式为居中,占3位,小数点后0位,浮点型数,对应输出的数为c;{}, # ^, <, > 分别是居中、左对齐、右对齐,后面带宽度,: 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。 # {:.2f},输出有两位小数的浮点数,对应输出的数为dur; # end='',用来保证不换行,不加这句默认换行。 time.sleep(0.3) # 在输出下一个百分之几的进度前,停止时长 print(" "+"执行结束".center(scale//2,'-'))
Python center()方法
描述
Python center() 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。默认填充字符为空格。
语法
center()方法语法:
str.center(width[, fillchar])
参数
- width -- 字符串的总宽度。
- fillchar -- 填充字符。
返回值
该方法返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。
实例
以下实例展示了center()方法的实例:
>>>str = 'runoob' >>> str.center(20, '*') '*******runoob*******' >>> str.center(20) ' runoob ' >>>
Python中 ' ' 的实际应用
表示将光标的位置回退到本行的开头位置
表示将光标的位置回退一位
在 python
语言中, 使用 print
打印输出时,默认是会进行换行的。如何让其不换行呢?
- 在
python 2.x
中的语法是在print
语句的末尾添加逗号,例如print x,
;或者使用sys.stdout.write()
对标准输出进行重定向,如此文所示 https://segmentfault.com/q/1010000002810865 。 - 在
python 3.x
中,print
成为了一个独立的函数,有一个end
参数,可以指定输出的结束符,默认是
2. 在命令行中实现倒计时功能
import time count_down = 10 # 设置倒计时时间,单位:秒 for i in range(count_down, 0, -1): msg = u" 系统将在 " + str(i) + "秒 内自动退出" print(msg, end="") time.sleep(1) end_msg = "结束" + " "*(len(msg)-len("结束")) # 如果单纯只用“结束”二字,无法完全覆盖之前的内容 print(u" "+end_msg)
3. 在命令行中实现“转圈”功能
import time count_down = 10 # 设置倒计时时间,单位:秒 interval = 0.25 # 设置屏幕刷新的间隔时间,单位:秒 for i in range(0, int(count_down/interval)): ch_list = ["\", "|", "/", "-"] index = i % 4 msg = " 程序运行中 " + ch_list[index] print(msg, end="") time.sleep(interval) print(u" 结束" + " "*len(msg))