作為一種讓程序輸出內容到控制台的最常用方法,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/zh-hant/n/241624.html