本文來自異想之旅公開發布的Python教程,原文地址:https://www.yuque.com/yxzl/python
先來看一個例子:
a = input()
print(a)
運行這兩行代碼,你會發現程序沒有輸出任何內容,但是也沒有停止。
這是為什麼呢?input
函數的功能是獲取用戶輸入的信息,因此需要我們在運行程序的終端輸入一些信息,然後回車提交。
本例的輸出不做演示了,因為你輸入什麼輸出就是什麼。你可以嘗試輸入一個數字,或者一句話。
再看一個和上面略有差別的例子:
a = input('請輸入一個數字:')
print(a)
與上一個相比,這次在運行後多輸出了一句話,然而程序依然沒有結束,依然要你輸入一點什麼再按下回車,程序將你輸入的內容輸出才結束。
打印出的 a
並不包含字符串“請輸入一個數字”,由此觀之, input
函數的括號內的文字僅作為提示用。
我所教的幾乎所有新手在使用 **input**
時都會犯這樣的錯誤:將 **a = input()**
寫成 **input(a)**
。牢記編程語言從右到左賦值的原則,以及調用 **input**
時傳遞的參數僅作為提示用,是不會犯這個錯誤的。
我們來看一道簡單的習題:輸入一個整數,輸出這個整數加 1 的值。
要解決這個問題,請我們首先思考一件事: a = input()
執行後,變量 a
中存放的數據是什麼類型的?
在前面測試時,我們嘗試過,無論是整數、小數還是字符串, input
都能輕松讀取並存到 a
中。
由此觀之, a
的數據類型能存下各種各樣的字符,於是它能且只能是字符串(str)了。
假設我們輸入 1,那麼如果我們直接 print(a + 1)
,這明顯是荒謬的,因為 a
是字符串,這麼寫無異於 print('1' + 1)
——字符串和數字怎麼能相加呢?它們做加法,就像是 print('異想之旅' + 1
一樣,毫無意義。如果想要它們的數字的數值相加,必須先進行前文提到過的強制類型轉換。
參考題解如下:
a = input()
print(int(a) + 1)