為什么需要 input?
大家好,歡迎來到 Crossin的編程教室 !
了解哪怕一點點?Python 基礎(chǔ)的朋友應(yīng)該都知道,Python 里有一個內(nèi)置的輸入函數(shù):input
input 的作用
這個函數(shù)的作用很簡單,就是從控制臺獲取用戶的輸入。
然而簡單歸簡單,對于剛剛接觸編程的人來說,很可能在這一步就卡住了。因為它牽涉到 2 個概念:什么是「控制臺」,以及什么叫「用戶的輸入」。
所謂控制臺,又叫命令行、終端,是與計算機系統(tǒng)或程序進行交互的界面。通??吹降臉幼邮呛诘装鬃?,開頭有當(dāng)前目錄名,后面一個光標(biāo)不停跳動。

不同系統(tǒng)有不同的系統(tǒng)控制臺,不同的Python開發(fā)工具也有自己的 Python 控制臺。并且在系統(tǒng)控制臺中,你可以通過 python 命令進入 Python 的控制臺。所以這就有點讓人暈了,導(dǎo)致經(jīng)常有人會在系統(tǒng)控制臺輸入 Python 代碼,或在 Python 控制臺中執(zhí)行系統(tǒng)命令(比如 pip)的,然后發(fā)現(xiàn)無法得到預(yù)期的效果。
對于 input 來說,找到控制臺倒不是難事,因為你可以用 print 語句輸出,或者給 input 增加提示語(稍后講到),看到輸出的內(nèi)容在哪里,哪里就是我們提供輸入的控制臺。
而至于「用戶的輸入」,是一個看一遍演示視頻就能明白的事。但若光憑文字講解,不少人會產(chǎn)生誤解。比如把想要輸入的值寫在了 input 后面的括號里,或者看見程序運行后卡住不動而不知道此時它正在等待你的輸入。
使用 input
1. 程序運行到 input 語句時,會停止繼續(xù)運行,等待用戶輸入。

2. 這時候使用程序的人需要在控制臺跳動的光標(biāo)處輸入內(nèi)容,然后按回車確認(rèn)完成輸入。

3. 用戶輸入的內(nèi)容,會被 input 函數(shù)獲取,并可以賦值給一個變量記錄下來,供后續(xù)的代碼使用

這就是一個 input 獲取輸入的流程。
提示語
至于 input 后面的括號里的內(nèi)容,那是輸入的“提示語”。
你可以什么都不給,如果給了,就會在等待輸入之前輸出在控制臺,相當(dāng)于做了一次 print。

為什么需要 input?
有人要問了:
需要什么值,直接賦值給變量不就好了,干嘛還要用 input?
直接賦值,是寫代碼的人在開發(fā)時就寫死在代碼里;
而 input 獲取的是用戶的輸入,是在程序運行之后才知道是什么值,每次運行都可以不一樣。
比如最簡單的「hello world」程序,如果加上一個 input,讓用戶輸入昵稱,就可以讓每個人得到不同的輸出結(jié)果。

這樣同一份代碼,就可以滿足不同的人。
軟件的輸入
為什么從沒在其他軟件中看過這種控制臺的輸入?
獲取用戶輸入的途徑有很多,比較常見的像輸入框,按鈕,甚至麥克風(fēng)和攝像頭,都是用戶在向程序輸入信息。
通過控制臺輸入,大概只有開發(fā)人員才會用到。
目前我們只是從最簡單的方式開始學(xué)起。以后還可以編寫更加人性化的輸入。
輸入的類型
input 得到的值都是字符串,即使你輸入的是一個數(shù)字,或者一個計算式,它也會將其當(dāng)做一個字符串來處理。
如果想當(dāng)做數(shù)字來進行運算,需要進行類型轉(zhuǎn)換,否則會報錯。

這個問題在 Python 2 里有點不同,那時候有兩個輸入函數(shù):input 和 raw_input。其中 input 得到的是數(shù)值本身,比如輸入數(shù)字就是得到數(shù)字。
好在現(xiàn)在幾乎不會有人再用 Python 2 進行學(xué)習(xí),這個常讓人混淆的坑幾乎沒人再踩了。
對于 Python 的輸入,你還要什么想了解的內(nèi)容?歡迎在留言區(qū)討論。
