目錄 html
實現人機交互:前端
一、你提出問題打印在屏幕上,python
二、運行程序的人再輸入回答。git
三、按下回車,程序獲得收集來的回答github
四、以後,邏輯向下繼續運行。web
咱們寫的程能夠實現根據他輸入的回答進行不一樣的邏輯走向。編輯器
result = input('你愛我嗎?請輸入:')
if result == '不':
print('哼!你個大豬蹄子!')
else:
print('me too!!!'))
# 拿着蒐集到的結果數據「result」的值來處理咱們的程序,根據result的值不一樣,邏輯走向也就不一樣。
你提出的問題就是小括號「()」裏邊的那段字符串。result接受的就是運行的人輸入的回答。運行的人按下回車,流程向下繼續走。函數
是一句話,只要填寫你要詢問客戶的問題或你想輸入、表達出來的任何數據,都行。且任何數據類型的皆可。工具
好比下邊幾個不一樣參數的示例:spa
a、字符串類型的參數
result = input('你愛我嗎?請輸入:')
# 運行時會打印:你愛我嗎?請輸入:
b、數字類型 參數
result = input(520)
# 運行時會打印:520
c、布爾類型 參數
result = input(True)
# 運行時會打印:True
d、甚至複雜類型(往後要整理的列表)參數均可以!
result = input([1,2,3])
# 運行時會打印:[1,2,3]
一、正常狀況下
返回的就是用戶輸入的內容。
BUT⚠️, input函數的返回值,必定是字符串格式的。
也就意味着result變量確定是字符串類型的數據。
result = input('你愛我嗎?請輸入:')
print(type(result)) # <class 'str'>
控制檯交流以下:
「你愛我嗎?請輸入:」
此時我輸入了123,仍是純數字鍵盤輸入的123喔。
而後觀察print的result類型,發現是<class 'str'>
,字符串格式。
二、非正常狀況下
那麼,我用戶不回答,直接回車跳過你這個問題呢?返回值是啥?看圖說話:
能夠看到圖中最後一行打印的依舊是<class 'str'>
,字符串格式。說明用戶不輸入,result接收的、或者說input返回的值是一個字符串形式的空串。
至於函數相關內容。我學過js接受起來很方便。可能零基礎看起來就不爽了。
什麼是參數、什麼是返回值。。。內心一千個草泥馬沸騰。
這個也按下不表,往後詳談。
可是說回正題。咱們平時寫邏輯,得把用戶輸入的可能性都考慮進去。也就是result若是不符合咱們指望的狀況,都考慮進去。
好比我上例中,result只要不是「不」字,就都走到else的狀況了。
上邊強調了好幾遍,input函數賦值給變量後,變量確定是字符串格式。
立刻要過年了,過年確定要見你的七大姑八大姨吧!
那麼假如咱們對input有如下使用場景呢:
age = input('石頭,你今年多大啦!')
if age > 24:
marryBu = input('哎呀!那你有對象了嗎?打算啥時候結婚啊!')
elif age < 24:
whereWork = input('工做啦!那你年薪多少啊如今!')
else:
print('哎吆,24不小了!我兒子24歲那年,他兒子都出生啦!')
print('容許這裏有個白眼!🙄️')
好,那咱們來分析這段程序。
運行你就會發現,這段程序確定會報錯。
TypeError
的錯誤,具體錯誤分析就去這裏看,不贅述。
可是簡而言之呢,就是說我們截圖中輸入的 12 ,他是個字符串。
而到了下邊if、else裏,age和數字24來作判斷。
python做爲強類型語言對這樣寫法是零容忍的,因此就報錯了。
說了這麼多廢話呢,就一句話歸納: 針對input的返回值使用時,注意進行類型轉換。 須要把字符串轉換成你須要的其餘類型再進行if判斷。
上述代碼改進以下:
age = input('石頭,你今年多大啦!')
if int(age) > 24:
marryBu = input('哎呀!那你有對象了嗎?打算啥時候結婚啊!')
elif int(age) < 24:
whereWork = input('工做啦!那你年薪多少啊如今!')
else:
print('哎吆,24不小了!我兒子24歲那年,他兒子都出生啦!')
print('容許這裏有個白眼!🙄️')
最後放一下運行成功的圖。(偷偷告訴你,主要是由於我喜歡那個白眼。)
從根源上改進的寫法以下:
# age = input('石頭,你今年多大啦!')
age = int(input('石頭,你今年多大啦!'))
if age > 24:
marryBu = input('哎呀!那你有對象了嗎?打算啥時候結婚啊!')
elif age < 24:
whereWork = input('工做啦!那你年薪多少啊如今!')
else:
print('哎吆,24不小了!我兒子24歲那年,他兒子都出生啦!')
print('容許這裏有個白眼!🙄️')
⚠️ 接上文。
用int()
強制類型轉換的同時,你得確保用戶輸入的是能夠用int轉換的數據——即整數。若是他輸入浮點數、布爾值、中英文字符串等,我們上邊寫法的程序可能就掛了。
因此仍是那句話,涉及到和用戶打交道的時候,你必須得作容錯處理
。即你得把全部可能性都想到,由於你不能保證用戶輸入啥!
我以爲這也是前端苦逼的地方之一吧。❤️
說了這麼多,你也來寫一寫吧!
實現效果:
一、【簡單】讓用戶輸入本身的名字,而後打印出來「hello!用戶的名字」
「須要用到
」input
、變量賦值
等
二、【困難】匯率計算器:讓用戶輸入要兌換的幣種,再輸入目標幣種。輸入用戶的金額。輸出轉換後的結果。(文字描述枯燥,效果可百度「匯率計算」,看搜索結果的第一條在線小工具。體驗事後用python實現)
「須要用到
」input
、if語句
、類型轉換
、變量賦值
、算術運算符及表達式
等前邊鋪設過的知識點。