#章节四:input()函数
章節四:input()函數
目錄- 章節四:input()函數
- 1. input()函數
- 1.1 input()函數的使用
- 1.2 input()函數結果的賦值
- 1.3 input()函數的數據類型
- 1.4 input()函數結果的強制轉換
- 2. 本章小結
- 3. 習題練習
- 3.1 習題一
- 3.2 習題二
- 3.3 習題三
- 1. input()函數
1. input()函數
1.1 input()函數的使用
input()函數是輸入函數。就上面例子來講,它需要你輸入針對括號內'請在以下四個選項【格蘭芬多;斯萊特林;拉文克勞;赫奇帕奇】中,輸入你想去的學院名字:'的答案。
所以,當你在函數的括號內寫出問題時,input()函數會將此問題原樣顯示在屏幕上,并在終端區域等待你針對此問題的回答。
可是,我們為什么要在終端處輸入回答呢?不輸入行不行?
事實上,我們可以把input()函數當作一扇鏈接現實世界與代碼世界的門。
當問題從代碼世界傳遞給我們,可我們卻沒有回答時,這扇等待輸入的input()大門,就會一直處于敞開狀態,一直等著你往里送回答。
而當我們輸入信息后,這扇input()大門便會關上,繼續執行下面的命令。
下面,我們來總結一下input()函數的使用方法:
但是輸入答案按回車鍵后,是不是除了自己輸入的信息,其他什么都沒有?但是程序又沒有報錯,這是為什么呢?
我們反復強調代碼是一行行往下執行命令的,所以即使input()函數通過了,門關上了,由于input()函數下沒有其他命令,自然就不會有結果產生。
但是,我們輸入的回答并沒有丟失,它被計算機儲存在了程序中。
那么,如果我想要從程序海洋中找到剛剛輸入的回答,利用它產生一個結果,比如表達學院對我的歡迎要怎么辦?
1.2 input()函數結果的賦值
這就涉及到了input()函數的第二個知識點——函數結果的賦值。
比如,以我們下面這串代碼為例:
name = input('請輸入你的名字:') #函數賦值雖然看上去像是給input()函數賦值,但實際上,我們是將input()函數的執行結果(收集的信息)賦值給變量name。
通俗來講,我們放進name這個盒子里的東西,不是input()函數中提的問題,而是我們通過input()函數收集到的別人的答案。
這樣,不管你在終端輸入的內容是什么,不管你的回答改變多少次。只要是對input()函數所提問題的回答,都會被存儲在變量中。等待你打印變量時,將回答提取出來,展示在顯示屏上。
而這些展示在終端的信息/回答/數據,在代碼世界,我們可以稱其為輸入值——我們輸入給函數的內容。
為了能隨時且方便地提取輸入值,我們需要把input()函數的結果賦給變量name。比如:
這里有一個重點,在我們理解代碼時,腦中的思維順序是先搜集信息,再把input()函數的結果賦給變量。
但是為了書寫規范及防止漏掉信息,我們需要按照代碼書寫格式,優先對input()函數的結果進行賦值。
我們再用一張圖,來直觀地總結一下。
舉例:
那么,這組代碼是怎么寫出來的呢?
從思維角度出發,簡單來講就是:我給你兩個選擇,你從中挑一個,然后我給你顯示對應的結果。
所以,代碼的第一步就是賦值,并通過input()函數提問。
choice = input('請輸入您的選擇:') #變量賦值第二步,我們要根據回答進行條件判斷:如果回答是1,就顯示條件1的結果;如果選了其他選項,則顯示其他條件的結果。
choice = input('請輸入您的選擇:') #變量賦值if choice == '1': #條件判斷:條件1print('霍格沃茨歡迎您的到來。') #條件1的結果else: #條件判斷:其他條件print('您可是被梅林選中的孩子,我們不接受這個選項。') #其他條件的結果代碼是寫完了,但問題也來了:為什么if條件下的變量choice是字符串'1'呢?如果不是字符串格式,是整數1會出現什么結果呢?
怎么樣?你輸入的是1,顯示的結果是else條件下的結果:'您可是被梅林選中的孩子,我們不接受這個選項。'?
這是為什么呢?我們輸入的就是條件選項中的數字1?怎么就無法出現對應的結果呢?
在這里,我們就涉及到了input()函數的第三個知識點:input()函數的數據類型
1.3 input()函數的數據類型
現在,讓我們先從計算機語言的邏輯,按行拆解一下這段代碼組:
choice = input('請輸入您的選擇:') #變量賦值if choice == 1: #條件判斷:條件1print('霍格沃茨歡迎您的到來。') #條件1的結果else: #條件判斷:其他條件print('您可是被梅林選中的孩子,我們不接受這個選項。') #其他條件的結果 #那么,我們先來看看第一行代碼中的賦值語句。choice = input('請輸入您的選擇:') #變量賦值首先,我們從整體來看,這段代碼表示的是——利用input()函數接收數據,并將數據賦值給變量choice。
其次,我們再細分著看,這行代碼的每個部分代表著什么
對于input()函數來說,不管我們輸入的回答是什么,不管你輸入的是整數1234,還是字符串『隱形斗篷是我最想擁有的魔法』,input()函數的輸入值(搜集到的回答),永遠會被【強制性】地轉換為【字符串】類型。(Python3固定規則)
不信?用學過的type()函數檢驗一下?
是不是呀,我們輸入的整數【1】或【2】就會被強制地轉換為字符串的【'1'】或【'2'】。
所以,不管我們在終端區域輸入什么,input()函數的輸入值一定是【字符串】。
就這樣,由于我們用賦值運算符【=】把input()函數的字符串結果,賦給了變量choice,所以這個變量也一定是字符串類型。
現在,我們確定了變量choice的數據類型是字符串。下面,我們再來看后面的代碼。
if choice == 1: #條件判斷:條件1print('霍格沃茨歡迎您的到來。') #條件1的結果else: #條件判斷:其他條件print('您可是被梅林選中的孩子,我們不接受這個選項。') #其他條件的結果我們先來看第一塊代碼組的if條件語句【if choice==1】并進行拆解:
根據所學的條件判斷知識,我們可以將第一行的if條件解釋為:如果變量choice等于整數1時,則執行此if條件下的結果。
這回是不是發現了什么問題?還記得我們在拆解input()函數時,提到的變量choice的數據類型嗎?
在第一次變量賦值時,input()函數的輸入值是字符串,'1'也是字符串;但是到了if條件判斷時,if的條件變成了【choice == 1】—— 1沒有了引號是個整數類型。
就這樣,因為我們輸入的信息永遠是字符串,choice是一個字符串類型,而1是一個整數類型,它們當然無法相等,條件【choice == 1】無法成立,只能執行else下面的操作——打印『您可是被梅林選中的孩子,我們不接受這個選項。』
下面,我們來通過一張圖再來加深一下,這是非常重要的知識點:
1.4 input()函數結果的強制轉換
剛上面那個例子中,只有兩個選項。但是假設你有1、2、3、4……365個選項,先不說數據類型轉換正確與否,單引號一個一個地打,太耗費時間了。
那么,我們就需要一個更為省力的簡便方法,將所有輸入值的數據類型,一次性全部變為整數。
請問,如何將字符串類型轉換為整數類型呢?
答對了,int()是第1關的知識點強制類型轉換,可以將字符串強制性地轉換為整數。
有了int()函數,我們就可以從input()函數的源頭,將輸入的內容轉換為整數。
choice = int(input('請輸入您的選擇:')) #將輸入值強制轉換為整數,并賦值給變量choice但是,這串代碼看起來像是把input()函數整個強制轉換了。
可實際上,我們是將input()函數取得的結果,進行強制轉換,并將強制轉換的結果賦值存在名為choice的變量盒里。
這樣,就算if條件是整數,程序也可以準確運行。
那么,我們什么時候會用到,input()函數結果的強制轉換呢?思路很簡單,當你想要的答案是數字時,比如年齡:
還可以這樣
最后,我們再來歸納一下input()函數數據類型強制轉換的知識點:
2. 本章小結
3. 習題練習
3.1 習題一
1.練習介紹:
哈利·波特在對角巷購買寵物時犯難了,他不知道該給自己的貓頭鷹起什么名字。現在請你幫助哈利·波特,為他的貓頭鷹起一個名字。
2.題目要求:
請你寫一段代碼:
為哈利·波特的貓頭鷹起個名字,并打印出結果哈利·波特的貓頭鷹叫做XX(其中,XX是你起的名字)。
3.2 習題二
1.練習介紹:
為了三強爭霸賽的舞會,羅恩想要減肥,所以他決定控制自己的飲食,少吃一點巧克力蛙。
哈利為了幫助好朋友羅恩,和他一起制定了一個飲食游戲。
游戲規則如下:
如果羅恩一天吃超過10個巧克力蛙,羅恩要給哈利100塊;
如果羅恩一天吃小于等于10個的巧克力蛙,哈利就給羅恩100塊。
2.題目要求:
請你寫出一段代碼:
當隨機輸入羅恩一天吃的巧克力蛙數量時,可以判斷出這天,是羅恩給哈利錢,還是哈利給羅恩錢,并打印出來。
3.3 習題三
1.練習介紹:
接受了霍格沃茨來信的你,帶著欣喜與好奇,跟著魔咒學老師吳楓教授,來到了巫師世界的對角巷。在這個相當于人類集市的對角巷,你立刻被魔法世界稀奇古怪的東西吸引,想掏手機刷花唄買買買。
但是院長說,麻瓜(沒有魔法的人)貨幣在魔法世界不流通,但是你可以去巫師世界的銀行——古靈閣兌換貨幣。你立刻跟著吳楓老師跑到了古靈閣。當你進到巫師世界的銀行時,就有銀行的小精靈職員問好:
注意:以下背景與題目要求相關
小精靈:您好,歡迎來到古靈閣,請問您需要幫助嗎?需要or不需要?
你:需要
小精靈:請問您需要什么幫助呢?1 存取款;2 貨幣兌換;3 咨詢
你:2
小精靈:金加隆和人民幣的兌換率為1:51.3,即一金加隆=51.3人民幣
小精靈:請問您需要兌換多少金加隆呢?
(你說了一個數字N)
小精靈:好的,我知道了,您需要兌換(你說的數字N)金加隆。
小精靈:那么,您需要付給我(你說的數字N*51.3)人民幣。
注1:如果選擇不需要幫助,小精靈會禮貌地說'好的,再見。'
注2: 如果選擇幫助【1 存取款】,小精靈會推薦你去存取款窗口;如果選擇幫助【3 咨詢】,小精靈會推薦你去咨詢窗口。
2.題目要求:
請你綜合四天所學知識,將上圖換錢故事的對話,用代碼表現出來。
總結
以上是生活随笔為你收集整理的#章节四:input()函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面向对象--多态,接口
- 下一篇: 第一世界的年轻人追求的是房子还是别的?