讀古今文學網 > 父與子的編程之旅:與小卡特一起學Python > 5.4 來自互聯網的輸入 >

5.4 來自互聯網的輸入

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

如果你能連接互聯網,可以試試代碼清單 5-4 中的程序。它會從這本書的網站打開一個文件,為你顯示這個文件中的消息。

代碼清單 5-4 從互聯網上的一個文件得到輸入

import urllib2file = urllib2.urlopen('http://helloworldbook2.com/data/message.txt')message = file.readprint message  

就這麼簡單。只需要區區 4 行代碼,你的計算機就可以通過互聯網得到這本書網站上的一個文件,並顯示這個文件。如果試著運行這個程序(假設你的互聯網連接工作正常),你會看到這個消息。

如果你在辦公室或學校的計算機上嘗試這個程序,很可能無法正常工作。這是因為,有些辦公室和學校使用一種名叫代理的東西連接到互聯網。代理就是另一台計算機,它相當於互聯網與學校或辦公室之間的一座橋樑或一條通路。取決於代理的設置,這個程序可能不知道如何通過代理連接到互聯網。如果從家裡的計算機(或者其他可以直接連接互聯網而不需要通過代理的地方)運行這個程序,應該能正常工作。

 

向程序員一樣思考

根據你使用的操作系統(Windows、Linux 或 Mac OS X),運行代碼清單 5-4 中的程序時,你可能會在每行末尾看到小方塊或類似 \r 的字符。這是因為,不同的操作系統使用不同的方法來指示文本行的結束。Windows(和之前的 MS-DOS)使用兩個字符:CR(回車)和 LF(換行)來表示。Linux 只使用 LF,Mac OS X 只使用 CR。

有些程序可以處理所有這些情況,不過有些程序(比如 IDLE)看到行結束符與它期望的不一致時,就會不知所措。發生這種情況時,它們會顯示一個小方塊,表示「我不理解這個字符」。你可能會看到這樣的小方塊,也可能看不到,這取決於你在使用什麼操作系統,還取決於你如何運行程序(使用 IDLE 還是採用另外某種方法)。

你學到了什麼

在這一章,你學到了以下內容。

  • raw_input 輸入文本。

  • raw_input 增加一個提示消息。

  • 結合 intfloat 使用 raw_input 輸入數字。

  • 使用逗號將多行打印到一行上。

測試題

1. 對於下面這行代碼:

answer = raw_input  

如果用戶鍵入 12answer 的數據類型是什麼?是字符串還是一個數?

2. 怎麼讓 raw_input 打印一個提示消息?

3. 怎麼使用 raw_input 得到一個整數?

4. 怎麼使用 raw_input 得到一個浮點數(小數)?

動手試一試

1. 在交互模式中建立兩個變量,分別表示你的姓和名。然後使用一條 print 語句,把姓和名打印在一起。

2. 編寫一個程序,先問你的姓,再問名,然後打印一條消息,在消息中包含你的姓和名。

3. 編寫一個程序詢問一間長方形房間的尺寸(單位是米),然後計算覆蓋整個房間總共需要多少地毯,並顯示出來。

4. 編寫一個程序先完成第 3 題的要求,不過還要詢問每平方尺地毯的價格。然後主程序顯示下面 3 個內容:

  • 總共需要多少地毯,單位是平方米。

  • 總共需要多少地毯,單位是平方尺(1 平方米 = 9 平方尺)。

  • 地毯總價格。

5. 編寫一個程序幫助用戶統計她的零錢。程序要問下面的問題。

  • 「有多少個五分幣?」

  • 「有多少個二分幣?」

  • 「有多少個一分幣?」

讓程序給出這些零錢的總面值。