Python?print函數(shù):如何將對(duì)象打印輸出
描述
print函數(shù)是Python的內(nèi)置函數(shù),它會(huì)將對(duì)象的__repr__特殊函數(shù)返回的字符串打印輸出。
默認(rèn)情況下,print函數(shù)調(diào)用底層的sys.stdout.write函數(shù),即往控制臺(tái)打印字符串。
語(yǔ)法
print(*args, sep=' ', end='\n', file=None)
名稱(chēng) | 說(shuō)明 | 備注 |
---|---|---|
args | 任意類(lèi)型、任意數(shù)量的參數(shù)。 | 可省略的參數(shù) |
sep | 當(dāng)args中包含多個(gè)對(duì)象時(shí),中間的分隔符。默認(rèn)情況下是一個(gè)空格。 | 可省略的關(guān)鍵字參數(shù) |
end | 在args中最后一個(gè)值后附加的字符串,默認(rèn)為換行符。 | 可省略的關(guān)鍵字參數(shù) |
file | 類(lèi)文件對(duì)象(流)。默認(rèn)為當(dāng)前sys.stdout。 | 可省略的關(guān)鍵字參數(shù) |
使用示例
打印對(duì)象
常見(jiàn)的Python內(nèi)置類(lèi)型使用print函數(shù)打印如下所示:
if __name__ == '__main__': # str print("Python") # output: python # bool print(True) print(False) # outputs: # True # False # list print(['A', "B", "Java", True]) # output: ['A', 'B', 'Java', True] # tuple print(("Apple", "Orange", "Banana")) # output: ('Apple', 'Orange', 'Banana') # dict print({"version.BuildInfo": {"Version": "v3.6.0", "GoVersion": "go1.16.4"}}) # output: {'version.BuildInfo': {'Version': 'v3.6.0', 'GoVersion': 'go1.16.4'}} # set print({1, 3, 5, 7, 9}) # output: {1, 3, 5, 7, 9}
可并不是所有的類(lèi)型在print輸出中都顯得那么通俗易懂。大部分類(lèi)型在經(jīng)過(guò)print輸出時(shí)顯得有些晦澀----它輸出一個(gè)字符串,包含一個(gè)十六進(jìn)制數(shù)表示對(duì)象的內(nèi)存地址。
from collections import OrderedDict ? def fun(): ? ? return "fun" ? if __name__ == '__main__': ? ? r = OrderedDict() ? ? print(r) ? ? # output: OrderedDict() ? ? ? print(fun) ? ? # output: <function fun at 0x104d1f0d0>
指定分隔符
可選的sep關(guān)鍵字參數(shù)用來(lái)指定分隔符。默認(rèn)情況下sep是一個(gè)空格,即使用print打印多個(gè)對(duì)象時(shí),對(duì)象和對(duì)象之間用一個(gè)空格來(lái)做分隔。我們可以通過(guò)傳入關(guān)鍵字參數(shù)sep來(lái)定制自己的分隔符:
if __name__ == '__main__': ? ? print("A", "B", "C") ? ? # output: A B C ? ? ? print("A", "B", "C", sep="#") ? ? # output: A#B#C
打印到文件
認(rèn)為print函數(shù)只是打印到標(biāo)準(zhǔn)輸出(STDOUT)是一種錯(cuò)誤的看法。print函數(shù)同樣可以將內(nèi)容打印到文件中(功能類(lèi)似于write函數(shù))。通過(guò)關(guān)鍵字參數(shù)file來(lái)指定一個(gè)文件,用來(lái)將內(nèi)容輸出到文件中。
下面的代碼將創(chuàng)建一個(gè)名為oops.txt的文件,并使用print函數(shù)將字符串"Oops, I create a file"寫(xiě)入到該文件中:
if __name__ == '__main__': ? ? new_file = open("oops.txt", "w") ? ? print("Oops, I create a file.", file=new_file) ? ? new_file.close()
設(shè)定結(jié)尾字符串
可選的end參數(shù)可以指定結(jié)尾字符串,默認(rèn)情況下是一個(gè)換行符“\n”,這也是為什么默認(rèn)情況下我們使用print函數(shù)總是在打印完對(duì)象后換行的原因。
我們可以顯式傳入?yún)?shù)來(lái)定制自己的結(jié)尾字符串,常用在取消print默認(rèn)換行的場(chǎng)景中:
if __name__ == '__main__': ? ? for i in range(10): ? ? ? ? print(i, end="") ? ? # output: 0123456789
print與__repr__
print函數(shù)中打印每個(gè)對(duì)象所顯示的內(nèi)容,其實(shí)是調(diào)用了該對(duì)象的__repr__方法。
__repr__方法返回一個(gè)字符串,該字符串就是print函數(shù)打印該對(duì)象所顯示的內(nèi)容。
由于__repr__是object類(lèi)中的方法,因此任何對(duì)象都有__repr__的默認(rèn)實(shí)現(xiàn)。
我們可以通過(guò)重寫(xiě)__repr__方法來(lái)定制我們自己的打印輸出:
class Demo(object): ? ? def __repr__(self): ? ? ? ? return "I am a Demo object." ? if __name__ == '__main__': ? ? d = Demo() ? ? print(d) ? ? # output: I am a Demo object.
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python時(shí)間整形轉(zhuǎn)標(biāo)準(zhǔn)格式的示例分享
這篇文章主要介紹了python時(shí)間整形轉(zhuǎn)標(biāo)準(zhǔn)格式的示例,需要的朋友可以參考下2014-02-02Python處理json字符串轉(zhuǎn)化為字典的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇Python處理json字符串轉(zhuǎn)化為字典的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07python基礎(chǔ)之面對(duì)對(duì)象基礎(chǔ)類(lèi)和對(duì)象的概念
這篇文章主要介紹了python面對(duì)對(duì)象基礎(chǔ)類(lèi)和對(duì)象的概念,實(shí)例分析了Python中返回一個(gè)返回值與多個(gè)返回值的方法,需要的朋友可以參考下2021-10-10python wxpython 實(shí)現(xiàn)界面跳轉(zhuǎn)功能
wxpython沒(méi)提供界面跳轉(zhuǎn)的方式,所以就需要借助threading模塊,本文給大家分享python wxpython 實(shí)現(xiàn)界面跳轉(zhuǎn)功能,感興趣的朋友跟隨小編一起看看吧2019-12-12request基本使用及各種請(qǐng)求方式參數(shù)的示例
這篇文章主要為大家介紹了request的基本使用及各種請(qǐng)求方式參數(shù)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04