input() 函數用於向用戶生成一條提示,然后獲取用戶輸入的內容。由於 input() 函數總會將用戶輸入的內容放入字符串中,因此用戶可以輸入任何內容,input() 函數總是返回一個字符串。
例如如下程序:
- msg = input("請輸入你的值:")
- print (type(msg))
- print(msg)
第一次運行該程序,我們輸入一個整數,運行過程如下:
請輸入你的值:2
<class 'str'>
2
第二次運行該程序,我們輸入一個浮點數,運行過程如下:
請輸入你的值: 1.2
<class 'str'>
1.2
第三次運行該程序,我們輸入一個字符串,運行過程如下:
請輸入你的值:Hello
<class 'str'>
Hello
從上面的運行過程可以看出,無論輸入哪種內容,始終可以看到 input() 函數返回字符串,程序總會將用戶輸入的內容轉換成字符串。
需要指出的是,Python 2.x 提供了一個 raw_input() 函數,該 raw_input() 函數就相當於 Python 3.x 中的 input() 函數。
而 Python 2.x 也提供了一個 input() 函數,該 input() 函數則比較怪異:要求用戶輸入的必須是符合 Python 語法的表達式。通常來說,用戶只能輸入整數、浮點數、復數、字符串等。重點是格式必須正確,比如輸入字符串時必須使用雙引號,否則 Python 就會報錯。
使用 Python 2.x 來運行上面程序,假如輸入一個整數,運行過程如下:
請輸入你的值:2
<class 'int'>
2
使用 Python 2.x 來運行上面程序,假如輸入一個復數,運行過程如下:
請輸入你的值: 2+3j
<type 'complex'>
(2+3j)
使用 Python 2.x 來運行上面程序,假如輸入一個字符串,運行過程如下:
請輸入你的值:Hello
NameError : name 'Hello' is not defined
上面程序報錯的原因是:Python 2.x 的 input() 函數要求用戶輸入字符串時必須用引號把字符串括起來。
在 Python 2.x 中應該盡量使用 raw_input() 函數來獲取用戶輸入,因為 Python 2.x 中的 raw_input() 等同於 Python 3.x 中的 input()。