print用法

进度条和一般的print区别在哪里呢?答案就是print会输出一个\n,也就是换行符,这样光标移动到了下一行行首,接着输出,之前已经通过stdout输出的东西依旧保留,而且保证我们在下面看到最新的输出结果。进度条不然,我们必须再原地输出才能保证他是一个进度条,否则换行了怎么还叫进度条?最简单的办法就是,再输出完毕后,把光标移动到行首,继续在那里输出更长的进度条即可实现,新的更长的进度条把旧的短覆盖,就形成了动画效果。可以想到那个转义符了吧,那就是 \r。转义符\r就可以把光标移动到行首而不换行,转义符\n就把光标移动到行首并且换行。在python中,输出stdout(标准输出)可以使用sys.stdout.write

from __future__ import division

import sys,time

j = ‘#‘

if __name__ == ‘__main__‘:

for i in range(1,61):

j += ‘#‘

sys.stdout.write(str(int((i/60)*100))+‘%  ||‘+j+‘->‘+"\r")

sys.stdout.flush()

time.sleep(0.5)

print

第二种思路是用转义符\b

转义符\b是退格键,也就是说把输出的光标往回退格子,这样就可以不用+=了,例如:

from __future__ import division

import sys,time

if __name__ == ‘__main__‘:

for i in range(1,61):

sys.stdout.write(‘#‘+‘->‘+"\b\b")

sys.stdout.flush()

time.sleep(0.5)

print

光标回退2格,写个#再回退,再写,达到增长的目的了

2.左上三角形

#左上三角格式输出九九乘法表

for i in range(1,10):

for j in range(i,10):

print("%d*%d=%2d" % (i,j,i*j),end=" ")

print("")

注:乘法算式按行输出,与完整格式相比,内层循环范围为i~9,当外层循环的i逐渐递增时,每行输出的算式个数会越来越少,print("")表示换行,不输出这句的话输出的乘法表格式错乱。

3.右上三角形

#右上三角格式输出九九乘法表

for i in range(1,10):

for k in range(1,i):

print (end="      
")

for j in range(i,10):

print("%d*%d=%2d"
% (i,j,i*j),end=" ")

print("")

注:相比左上三角形,内层循环语句多了两句(代码标红处),由于每个算式所占的位置为7个字节,所以多余前面空出的地方输出相应的空格数,在Python中不能直接写print("      ")语句表示输出空格,必须添加end关键字,表示结尾以等号右边的内容输出,与后面的右上和左上的差别相似。

时间: 2024-08-17 11:06:12

print用法的相关文章

Python——print用法详解

1.print语法格式 print()函数具有丰富的功能,详细语法格式如下:print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) 默认情况下,将值打印到流或sys.stdout.可选关键字参数:file:类文件对象(stream); 默认为当前的sys.stdout.sep:在值之间插入的字符串,默认为空格.end:在最后一个值后附加的字符串,默认为换行符.flush:是否强制刷新流. 2.sep可选关键字参数 se

python基础(1)--input print if else elif while 用法说明

1 变量名的命名规则: 由数字,字母和下划线组成,但是不能以数字开头命名变量.例如 a ,b ,c ,name ,user1 user_id 等都可作为变量名称. 1a,2b 3cd等都不行.特别注意不能以python语法中的关键字作为变量名.常见的有"class" "and" "as" "insert " "while" "elif ""else " "

Python 模拟SQL对文件进行增删改查

1 #!/usr/bin/env python 2 # _*_ coding:UTF-8 _*_ 3 # __auth__: Dalhhin 4 # Python 3.5.2,Pycharm 2016.3.2 5 # 2017/05/15 6 7 import sys,os 8 9 def where(dbfile,where_list): #条件是一个list 10 11 def and_or_where(sub_where_list): 12 '''获取and或同时含有and.or关键字的条

Python 处理标准输出

输出有两种,一种是标准输出,一种是标准错误输出,python 处理标准输出使用 sys.stdout ,处理标准错误输出用 sys.stderr In [2]: import sys In [3]: sys.stdout.write('Hello World') # 标准输出(看起来跟print用法一致) Hello World In [4]: sys.stderr.write('Hello World') # 标准错误输出 Hello World [[email protected] ~]#

Java SE学习之枚举总结

本文是学习网络上的文章时的总结以及自己的一点实践,感谢大家无私的分享. 最近在看Java基础方面的书的时候,又遇到了枚举的介绍.在网上查了一些资料,对这些资料进行一些总结. 用法一:常量 package meiju; /** * * @ClassName: Color * @Description: 枚举变量的常量用法 * @author zhangjunshuai [email protected] * @date 2014-11-16 下午07:29:40 * */ public enum

MySQL MHA高可用环境部署

一,安装MHA基本环境 安装MHA节点 (1)基本环境说明 角色IP地址主机名 ========================================= 主机192.168.1.121节点1 从机192.168.1.122节点2 从机192.168.1.123节点3 监视主机192.168.1.125节点5 (2)在node1,node2,node3,node5中操作: #vi / etc / hosts 192.168.1.121 node1 192.168.1.122 node2

linux中批量替换文本中字符串--转载

(一)通过vi编辑器来替换.vi/vim 中可以使用 :s 命令来替换字符串.:s/well/good/ 替换当前行第一个 well 为 good:s/well/good/g 替换当前行所有 well 为 good:n,$s/well/good/ 替换第 n 行开始到最后一行中每一行的第一个 well 为 good:n,$s/well/good/g 替换第 n 行开始到最后一行中每一行所有 well 为 goodn 为数字,若 n 为 .,表示从当前行开始到最后一行:%s/well/good/(

Zabbix-20160817-高危SQL注入漏洞

漏洞概述: zabbix是一个开源的企业级性能监控解决方案.近日,zabbix的jsrpc的profileIdx2参数存在insert方式的SQL注入漏洞,攻击者无需授权登陆即可登陆zabbix管理系统,也可通过script等功能轻易直接获取zabbix服务器的操作系统权限. 但是无需登录注入这里有个前提,就是zabbix开启了guest权限.而在zabbix中,guest的默认密码为空.需要有这个条件的支持才可以进行无权限注入. 影响程度: 攻击成本:低 危害程度:高 是否登陆:不需要 影响范

awk(未完)

awk的运行方式 (1)  awk命令行 (2)  awk程序文件 awk –f /path/from/awk_script (3)  awk脚本 #!/bin/awk –f 基本用法: gawk[OPTIONS] 'program' FILE1 FILE2-- program:PATTERN{ACTIONSTATEMENT} 选项: -F[]:指明输入字段分隔符 -vVAR_NAME=VALUE:变量赋值 -f /PATH/FROM/AWK_SCRIPT: 1.awk的输出命令之一:print