當前位置:
首頁 > 最新 > 如何使用Python獲取用戶的輸入

如何使用Python獲取用戶的輸入

The best way to learn a programming language is to write a lot of code and read a lot of code.

到現在為止,希望程序「處理一些數」時,都必須把這些數值直接放在代碼中。例如,如果編寫了第3章中的溫度轉換程序,你可能會把要轉換的溫度直接放在代碼中。如果想要轉換一個不同的溫度,就必須修改代碼。

如果你希望用戶在程序運行時輸入他想轉換的溫度呢?

之前我們說過,一個程序有3大部分:輸入、處理和輸出。我們的第一個程序只有輸出。溫度轉換程序有處理(轉換溫度)和輸出,但是沒有輸入。現在該向程序增加第三個部分了:輸入。輸入就是指在程序運行時向其提供某樣東西,也就是某種信息。

這樣一來,我們就能寫出與用戶交互的程序,這就有趣多了。

Python有一個內置函數,名為raw_input(),可以用這個函數從用戶那裡得到輸入。在這一篇中,我們將學習如何在程序中使用raw_input()。

raw_input()函數

raw_input()函數會把用戶的輸入做為一個字元串處理。正常情況下會從鍵盤得到這個輸入,也就是說,用戶要鍵入輸入。

raw_input()也是一個Python內置函數,就像str()、int()、float()和type()一樣。後面還會學習更多有關函數的內容。不過,對現在來說,只需要記住使用raw_input()時要加上小括弧(())。可以這樣來使用:

someName = raw_input()

這會讓用戶鍵入一個字元串,並把它賦給名字someName。

現在我們來看看它的例子。在IDLE中創建一個新文件,鍵入代碼清單5-1中的代碼。如下:

保存這個程序,並在IDLE中運行,看看它如何工作。應該可以看到類似下面的結果:

我鍵入了我的名字,程序把它賦給了somebody。

print命令和逗號

剛剛5-1的代碼是怎麼運行的呢?

通常情況下,希望從用戶得到輸入時,必須告訴Ta你想要什麼,應當提供類似這樣的消息:

print "Enter your name: "

然後raw_input()函數得到用戶的響應:

somebody = raw_input()

如果運行這些代碼行,並鍵入你的名字,會得到:

如果希望用戶在消息的同一行上鍵入他的答案,也就是這樣的效果:

你只需要在print語句的末尾放上一個逗號(,),就像這樣:

注意逗號的位置,是放在結束引號的外面。

逗號可以用來把多個print語句合併在同一行上。逗號只是表示「列印完這個內容後不要跳到下一行」。代碼清單5-1的最後一行就是這麼做的。

下面我們再IDLE編輯器中鍵入代碼清單5-2中的代碼,並運行這個程序。

運行這個程序時應該會得到這樣的結果:

注意到了嗎?引號中的每個詞末尾都沒有空格,但是運行這個程序時每個單詞之間卻出現了空格。使用逗號將多個print語句合併到同一行時,Python會增加一個空格。

列印raw_input()提示語的另一種方法

其實,raw_input()函數可以直接列印提示消息("Enter your name: "),也就是說,你根本不必使用print語句,也就是下面這句:

你可以把列印消息("Enter your name: ")放置在raw_input()函數的小括弧(())內,就像下面這樣:

我們看看更改後的代碼,只需要兩行:

運行後如下:

這就像raw_input()函數內置了print一樣。從現在起我們都將使用這個簡便方法。

用raw_input()輸入數字怎麼辦

我們來看看以下代碼:

由上面可以看出,無論用戶輸入的是他認為的整數12,又或是認為的浮點數12.23,raw_input()函數都會把用戶的輸入做為一個字元串處理,表示類型是字元串。

但是如果希望得到用戶輸入的是一個數該怎麼辦呢?

如果你讀過第4章,應該已經知道答案了。

我們可以從raw_input()給我們的字元串使用int()和float()函數創建一個數,也就是轉換類型,可以像這樣:

先使用raw_input()得到用戶的輸入(一個字元串)。

然後使用float()進行字元串轉換浮點數,將字元串創建一個浮點數。

最後得到的fahrenheit(溫度)作為浮點數。

不過以上的兩行代碼,我們還可以簡寫成一行,如下:

fahrenheit = float(raw_input())

所做的工作是一樣的。它由用戶得到字元串,然後從這個字元串創建一個數,賦給fahrenheit。

另外,你可以用這種方法在我們的溫度轉換程序測試一下,看看會得到什麼。

同理,如果你希望用戶輸入的數總是整數(而不是小數),可以用int()來轉換,例如:

來自互聯網的輸入

通常,程序的輸入都來自用戶。不過還有其他一些方法得到輸入。可以從計算機硬碟上的文件中得到輸入(這個內容會在後面的章節介紹),或者也可以從互聯網獲取輸入。

如果你能連接互聯網,可以試試以下代碼程序:

就這麼簡單,只需要區區4行代碼,你的計算機就可以通過互聯網得到一個.txt文件,並顯示這個文件。如果還知道其他.txt文件的網路地址,替換上面代碼中綠色標識的網址,你都可以顯示這個文件。當然前提是你的互聯網連接是正常的。

END

回顧

測試題

動手試一試

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python 的精彩文章:

深入Python流程式控制制,哪些你經常犯錯的知識
梳理Python基本認識基本類型,Python學習經驗分享

TAG:Python |