Python 提供了兩種簡單的內建函數以獲取用戶輸入的資訊,分別是 raw_input()
和 input()
。兩個函數都適合在終端運行的程式上使用。
raw_input 函數
raw_input([prompt])
函數可接受一個字串作為參數,該字串會在作為問題向用家查詢,並且在 stdout
上顯示。
我們使用下面的代碼作測試。當 raw_input
函數被叫喚時,它會將第一個參數顯示在標準輸出 (Standard Output) 上,然後等待用戶輸入一行的資訊,將輸入的內容設定為x的數值,再將數值顯示在標準輸出上。
|
|
我們看看以下的測試結果︰
>>> Input: 2013
2013
>>> Input: foolegg.com
foolegg.com
>>> Input: yo python
yo python
>>> Input: 12 + 8
12 + 8
>>> Input: 'abc' + 'def'
'abc' + 'def'
>>> Input: 12 * 3 - 9 * 4
12 * 3 - 9 * 4
>>> Input: 1 + 'a'
1 + 'a'
我們可以看見,所有輸入的內容也會當作字串處理。如果需要作數學運算,需要使用其他函數將字串轉為數字。
input 函數
input([prompt])
函數可接受一個字串作為參數,該字串會在作為問題向用家查詢,並且在 stdout
上顯示。
我們使用下面的代碼作測試。當input函數被叫喚時,它會將第一個參數顯示在標準輸出 (Standard Output) 上,然後等待用戶輸入一行的資訊,將輸入的內容設定為x的數值,再將數值顯示在標準輸出上。
|
|
我們看看以下的測試結果︰
>>> Input: 2013
2013
>>> Input: foolegg.com
Traceback (most recent call last):
File , line 1, in
File input.py, line 8, in
rawInputTest()
File input.py, line 4, in rawInputTest
x = input(>>> Input: )
File , line 1, in
NameError: name 'foolegg' is not defined
>>> Input: yo python
Traceback (most recent call last):
File , line 1, in
File input.py, line 8, in
rawInputTest()
File input.py, line 4, in rawInputTest
x = input(>>> Input: )
File , line 1
yo python
^
SyntaxError: unexpected EOF while parsing
>>> Input: 'foolegg.com'
foolegg.com
>>> Input: True
True
>>> Input: 12 + 8
20
>>> Input: 'abc' + 'def'
abcdef
>>> Input: 12 * 3 - 9 * 4
0
>>> Input: 1 + 'a'
Traceback (most recent call last):
File , line 1, in
File input.py, line 8, in
rawInputTest()
File input.py, line 4, in rawInputTest
x = input(>>> Input: )
File , line 1, in
TypeError: unsupported operand type(s) for +: 'int' and 'str'
由以上的結果,我們可以看得出 input
函數並不會把輸入的內容當作字串。如果輸入的是一條數學算式,算式計算出來的結果會作為 input
的返回值。如果輸入的內容不是字串、數值、變數或者布林值,系統則提示錯誤。