0.摘要
由于特殊的输出要求,我们在使用print()函数时,并不希望输出结束后自动换行。
1.print()指定结束符
print('hello',end='')print('world')#result:helloworld当print()函数,指定end参数为空字符后,print()函数就不再主动添加换行符了。并且,hello和world之间也不存在任何空格。
a = 'first line'b = 'second line'c = 'third line'print(a,end='nn')print(b)print(c,end='!')我们可以利用指定结束符的方法,灵活控制换行行数和结尾字符。
2.print()函数
知道了如何实现输出不换行,下面我们来看一下原理。
print()函数的形式是:
print(*objects, sep=' ', end='n', file=sys.stdout,flush=False)
objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。sep -- 用来间隔多个对象,默认值是一个空格。end -- 用来设定以什么结尾。默认值是换行符 n,我们可以换成其他字符串。file -- 要写入的文件对象。flush--是否要强行刷新stream上文对objects和end已经做了演示,不在赘述。
sep可以帮助我们填充分隔符,比如:
ip_0 = '166'ip_1 = '111'ip_2 = '77'ip_3 = '201'print(ip_0,ip_1,ip_2,ip_3,sep='.')#result:166.111.77.201file参数,可以指定输出对象,默认是当前的sys.stdout,也就是直接打印出来。
如果我们将对象设置为文件,那么利用file参数就可以轻松地将文本写入文件,实现长期储存。
zen = '''Explicit is better than implicit.Simple is better than complex.Complex is better than complicated.Flat is better than nested.Sparse is better than dense.Readability counts.'''with open('./Zen_of_Python.txt','w') as f: print(zen,file=f)flush参数控制的是刷新功能。
对于写入文件,如果flush=False,文本会存放在内存中,直到文件关闭,才写入;
如果flush=True,文本会立即刷新到文件中。