Python 3 進階 —— print 列印和輸出

Jioby發表於2019-02-16

在 Python 中,print 可以列印所有變數資料,包括自定義型別。

在 2.x 版本中,print 是個語句,但在 3.x 中卻是個內建函式,並且擁有更豐富的功能。

引數選項

可以用 help(print) 來檢視 print 函式的引數解釋。

print(...)
    print(value, ..., sep=` `, end=`
`, file=sys.stdout, flush=False)

    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.
  • value: 列印的值,可多個
  • file: 輸出流,預設是 sys.stdout
  • sep: 多個值之間的分隔符
  • end: 結束符,預設是換行符
  • flush: 是否強制重新整理到輸出流,預設否

能列印任意資料

  • 列印數字、字串、布林值
print(1024, 10.24, `hello`, False)

# 1024 10.24 hello False
  • 列印列表
print([1, 2, 3])

# [1, 2, 3]
  • 列印元組
print((1, 2, 3))

# (1, 2, 3)
  • 列印字典
print({`name`: `hello`, `age`: 18})

# {`name`: `hello`, `age`: 18}
  • 列印集合
print({1, 2, 3})

# {1, 2, 3}
  • 列印物件
class Demo:
    pass


demo = Demo()
print(demo)

# <__main__.Demo object at 0x1005bae80>

分隔符

預設分隔符是空格,sep 引數可以修改。

print(1, 2, 3, sep=`-`)

# 1-2-3

結束符

預設結束符是行號,end 引數可以修改。

print(`第一行`, end=`-`)

print(`第二行`)

# 第一行-第二行

輸出重定向

預設情況下,print 函式會將內容列印輸出到標準輸出流(即 sys.stdout),可以通過 file 引數自定義輸出流。

with open(`data.log`, `w`) as fileObj:
    print(`hello world!`, file=fileObj)

此時,不會有任何標準輸出,但對應的檔案中已經有了內容。

我們也可以輸出到錯誤輸出流,例如:

import sys

print(`hello world!`, file=sys.stderr)

參考資料


原文地址: https://shockerli.net/post/py…
更多文章請訪問我的個人部落格: https://shockerli.net

相關文章