Python輸入和輸出(IO)

veelion發表於2019-03-03

計算機程式設計中,會經常涉及輸入輸出(IO,Input/Output)。提供IO功能的裝置就是輸入輸出裝置,比如,鍵盤、滑鼠就是典型的輸入裝置,顯示器就是典型的輸出裝置。程式在執行過程中,資料儲存在記憶體中,但有時候它需要使用者透過輸入裝置把資料(比如,密碼)傳遞給程式;也有時候,程式需要把執行的結果資料輸出給使用者,這可能是列印到顯示器,也可能是寫到磁碟檔案中。

Python IO

程式設計時,關於IO有兩個基本概念:標準輸入(stdin)和標準輸出(stdout)。標準輸入和輸出都是對於命令列程式設計(非圖形化介面)的,簡單來說,stdin就是在命令列透過敲打鍵盤輸入,stdout就是列印到顯示器。

Python語言提供了方便的輸入(input())和輸出(print())函式。

輸入函式 input()

程式在執行過程中,如何接收使用者的鍵盤輸入呢?那就是透過input()函式,我們先來看一個例子:

In [6]: a = input('請輸入你的年齡:')
請輸入你的年齡:18

In [7]: print(type(a))
<class 'str'>

這個例子中,請輸入你的年齡:就是讓使用者輸入前給的提示,input()函式返回接收到的鍵盤輸入,並且是一個字串,這一點非常重要,雖然我們知道,年齡應該是一個數字,但是input返回的是字串,你要根據需要轉變為整數:a = int(a)

關於input()函式,我們可以詳細瞭解它的說明:

In [5]: input?
Signature: input(prompt=None, /)
Docstring:
Read a string from standard input.  The trailing newline is stripped.

The prompt string, if given, is printed to standard output without a
trailing newline before reading input.

If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.
On *nix systems, readline is used if available.
Type:      builtin_function_or_method

輸出函式 print()

這個print函式,我們已經接觸過很多了,在程式執行過程中,我們使用print把必要的資料列印到顯示器(stdout),以便我們檢視程式狀態、資料結果等等,這在Python程式的debug過程中很有用。

我們先類看看print函式的說明:

In [8]: print?
Docstring:
print(value, ..., sep=' ', end='\n', 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.
Type:      builtin_function_or_method

print函式是一個可變引數函式,也就是說,它可以列印若干個變數,比如print(1), print(1, 2, 3)。它的定義有四個預設引數:

  • sep=' ' 表示被列印的若干個變數之間用空格隔開;
  • end='\n' 表示列印完畢會自動多列印一個換行符;
  • file=sys.stdout 表示預設輸出到標註輸出裝置(顯示器),利用該引數我們也可以列印到檔案中;
  • flush=False 預設不強制重新整理到輸出裝置。

下面我們看看print()函式的使用例子:

In [23]: print(1, 2, 3)
1 2 3

In [24]: print(1, 2, 3, sep=';')
1;2;3

In [25]: print(1, 2, 3, sep=';', end='|')

再看看如何把資訊print到檔案中:

In [30]: f = open('z.log', 'w')

In [31]: print('猿人學Python', file=f)

In [32]: f.close()

In [33]: cat z.log
猿人學Python

總結

(1)標註輸入函式input()讓我們的程式從鍵盤獲得輸入資料;
(2)標註輸出函式print()讓我們的程式把資料列印到顯示器;

練習

(1)寫一段程式從鍵盤獲取字串、整數、浮點數;
(2)練習print()函式的各個引數的使用。

猿人學banner宣傳圖

我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。

***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***

相關文章