【python系統學習05】input函式——實現人機互動
input函式
目錄
- input用途
- 語法
- 示例
- 引數
- 返回值
- 返回值資料型別轉換
- 容錯處理
- 動手吧
input用途
實現人機互動:
1、你提出問題列印在螢幕上,
2、執行程式的人再輸入回答。
3、按下回車,程式得到收集來的回答
4、之後,邏輯向下繼續執行。
我們寫的程可以實現根據他輸入的回答進行不同的邏輯走向。
語法
示例
result = input('你愛我嗎?請輸入:') if result == '不': print('哼!你個大豬蹄子!') else: print('me too!!!')) # 拿著蒐集到的結果資料“result”的值來處理我們的程式,根據result的值不同,邏輯走向也就不同。
你提出的問題就是小括號“()”裡邊的那段字串。result接受的就是執行的人輸入的回答。執行的人按下回車,流程向下繼續走。
引數
是一句話,只要填寫你要詢問客戶的問題或你想輸入、表達出來的任何資料,都行。且任何資料型別的皆可。
比如下邊幾個不同引數的示例:
a、字串型別的引數
result = input('你愛我嗎?請輸入:')
# 執行時會列印:你愛我嗎?請輸入:
b、數字型別 引數
result = input(520)
# 執行時會列印:520
c、布林型別 引數
result = input(True)
# 執行時會列印:True
d、甚至複雜型別(日後要整理的列表)引數都可以!
result = input([1,2,3])
# 執行時會列印:[1,2,3]
返回值
1、正常情況下
返回的就是使用者輸入的內容。
BUT⚠️, input函式的返回值,一定是字串格式的。
也就意味著result變數肯定是字串型別的資料。
result = input('你愛我嗎?請輸入:')
print(type(result)) # <class 'str'>
控制檯交流如下:
“你愛我嗎?請輸入:”
此時我輸入了123,還是純數字鍵盤輸入的123喔。
然後觀察print的result型別,發現是<class 'str'>
,字串格式。
2、非正常情況下
那麼,我使用者不回答,直接回車跳過你這個問題呢?返回值是啥?看圖說話:
可以看到圖中最後一行列印的依舊是<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('允許這裡有個白眼!