Python中print()函数

文章目录

import time
for val in range(101):
    print("\r{:3}%".format(val),end='',flush=True)
    time.sleep(0.05)

解释:第一行 引入time模块,第二行 是一个for循环 val的取值范围为[0,101),左逼右开,步长默认为1,即每for遍历一次val的值增加1,。第二行是一个print()函数,第一个参数"\r{:3}%“.format(val):表示对val值进行格式化(val值占三个字符位,不够的前面补空格)其中的\r,当print()函数的第二个参数设置为end=‘’时表示print()输出不换行,默认end=‘\n’,即print函数默认是换行的。end=’ '时可以使每次打印的数据以空格分隔。flush=True表示,即使把数据从缓存中,刷新到标准输出中,即及时在界面上显示出来,time.sleep(0.05);表示每循环遍历一次当前线程睡眠0.05秒。这样可以看出动态自增的变化,否则程序执行太快,瞬间就变成100%了。这里的”\r"的作用就是在当前位置替换掉上次的输出,显示当前的输出。通过下面的动态图可以看出在达到100%之前,第一个位始终是一个空的占位符。
在这里插入图片描述
python的语句不需要加分号(;)来结尾。但是当多条语句,位于同一行时,就必须需要分号来分隔了。
如下:

print("\r10%",end='');print("\r30%",end='');print("\r20%");
print("\r10%");print("\r30%");print("\r20%");

在这里插入图片描述
从上面也可以看到一行多条语句的代码,执行完毕后,只显示最后执行输出的20%,因为它们都输出到同一行里的同一位置,由于程序中使用的’\r’,先前的输出都被后来的输出替换了。
而第二行的多条语句的代码,由于没有设置end=‘’,所以print()的输出是换行打印的,即使里面有’\r’,也不会替换或覆盖掉下一条语句的输出。

a = 10
print(a) #可以
print('a=',a) #可以
print('a='+a) #不可以,因为'a='是字符串,而a是数值,两者不能做加号使两者连接起来。字符串只能和字符串相连接。

在这里插入图片描述
使用%s占位符,输出字符串。

c = 'tiantian'
d = 'xiangshang'
print('c=%s'%c) # 打印一个参数的情况 表示用参数c的值,替换%s
print('d=%s'%d) # 打印一个参数的情况 表示用参数d的值,替换%s
print('c=%s,d=%s'%(c,d)) # 打印两个参数的情况 表示分别用参数c和d的值,替换第一个%s,和第二个%s

在这里插入图片描述

print('hello', 'world', 'china')
print("=================================")
# 使sep='\n'前面用逗号分开的每一项独占一行
print('hello', 'world', 'china', sep='\n')

输出结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/adminstate/article/details/130780498