作为一种让程序输出内容到控制台的最常用方法,print()函数几乎是每个Python程序员都不可避免地要处理的事情。然而,许多人可能并没有完全掌握这个函数的各种用法,本文将带领读者了解Python Print函数的各种格式和技巧,以便开发高效的Python应用程序。
一、Python Print格式
1、基本用法
在Python中,print()函数最基本的格式是print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout)。其中,第一个参数*objects是一个或多个要输出的对象,它们将按照顺序输出到控制台;第二个参数sep是在输出多个对象时用来分隔它们的字符串,默认为一个空格;第三个参数end是在所有对象输出完毕时要添加到最后的字符串,默认为一个换行符;最后一个参数file则是从print()输出的所有内容都将写入的流(默认为sys.stdout,即屏幕终端)。
>>> print('Hello', 'World', sep=',', end='!')
Hello,World!
2、格式化输出
Python中可以使用格式化字符串(即带有占位符的字符串)的方式来输出特定格式的内容。在格式化字符串中,使用花括号{}来表示占位符,然后使用.format()方法将要输出的内容填充到占位符位置。
>>> name = 'Jack'
>>> age = 25
>>> print('My name is {}, and I am {} years old.'.format(name, age))
My name is Jack, and I am 25 years old.
另外,也可以使用%f占位符输出浮点数,%d占位符输出整数,%s占位符输出字符串。
>>> pi = 3.14159
>>> print('Pi is approximately equal to %.2f.' % pi)
Pi is approximately equal to 3.14.
3、进阶技巧
除了基本用法和格式化输出,Python的print()函数还有许多其他有用的技巧。
(1)输出进度条:
import sys
import time
def progress_bar(percent):
fill = int(percent * 50)
sys.stdout.write("\rProgress: [{0}{1}] {2:.1f}%".format('#'*fill, '-'*(50-fill), percent * 100))
sys.stdout.flush()
for i in range(100):
progress_bar(i / 100.0)
time.sleep(0.1)
(2)控制颜色:
class Color:
BLACK = '\033[30m'
RED = '\033[31m'
GREEN = '\033[32m'
YELLOW = '\033[33m'
BLUE = '\033[34m'
PURPLE = '\033[35m'
CYAN = '\033[36m'
WHITE = '\033[37m'
RESET = '\033[0m'
print(Color.RED + 'Hello, world!' + Color.RESET)
(3)输出日志:
import logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
logger.info('This is an informational message.')
二、Python Print实用技巧
1、将输出重定向到文件
在控制台中输出的内容也可以通过print()函数中的file参数重定向到文件。只需要在使用print()函数时,在file参数中传入一个打开的文件对象即可。
with open('output.txt', 'w') as f:
print('Hello, World!', file=f)
2、批量格式化输出
如果需要反复执行类似的格式化输出,可以使用字符串模板来指定格式。
from string import Template
greeting = Template('Hello, $name!')
print(greeting.substitute(name='World'))
3、将多个字符串组合成一个输出
如果需要将多个字符串组合成一个输出,可以使用join()函数。这个函数接受一个可迭代对象作为参数,并在其中的所有元素之间插入指定的分隔符。
words = ['Hello', 'World']
print(' '.join(words))
三、Python Print注意事项
1、print()执行效率
与其他一些Python操作相比,print()操作是非常低效的,尤其是在处理大量输出时。因此,尽量避免在循环中使用print()函数。
2、使用end参数
在每次循环迭代时进行输出时,使用end参数指定空字符串,而不是默认的换行符。这样可以在输出结束时进行一次换行,而不是在每次迭代后进行。这样可以避免在大量输出时产生额外的行尾换行符。
for i in range(10):
print(i, end=' ')
print()
3、使用缓冲区
在大量输出时,为print()函数设置缓冲区可以减少每次操作输出时的I / O延迟。可以在调用print()函数前使用sys.stdout.flush()强制将缓冲区刷新到输出设备。
import sys
for i in range(100):
print(i, end=' ', flush=True)
结论
Python的print()函数在日常编程中发挥非常重要的作用,了解各种格式和技巧可以帮助程序员更好地使用这个函数来输出有用的信息。在进行大量输出时,也需要注意print()函数的执行效率和设置缓冲区来避免不必要的延迟。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/241624.html