每個程式都是在處理資料,就拿上一章的猜數字遊戲來說,程式處理的資料就是從使用者輸入的數值與亂數產生器所產生的數值做比較,而這章節主要著重於字串這個資料型態的說明。
這本書出版年份較早(事實上現在已經絕版),因此如果試著輸入書中所寫的網站位置("http://beans-r-us.appspot.com/prices.html")會發現網頁已不存在。因此接下來的內容我會將原本要從 URL 取得咖啡豆價格的 html 字串修改為從本地端創造一個 html 檔案(內容我儘量與書中一致),並使用 Python 匯入程式來模擬書中範例。
開啟文字編輯器然後輸入以下 html 內容後另存為.html 檔案。
<html><head><title>Welcome to the Beans'R'Us Pricing Page</title>
<link rel="stylesheet" type = "text/css" href = "beansrus.css"/>
</head><body>
<h2>Welcome to the Beans 'R'Us Pricing Page</h2>
<p>Current price of coffee beans = <strong>$5.49</strong></p>
<p>Price valid for 15 minutes from 19:42 on Wednesday 27/05/2009.</p>
</body>
</html>
使用瀏覽器開啟這個 html 檔案就會看到以下網站內容:
現在一切就緒可以開始撰寫程式碼。
程式碼:
fileName = "/Coffee.html"
file = open(fileName,'r')
text = file.read()
print(text)
其中 Coffee.html 檔案請放在指定的資料夾位置。
這時候如果執行程式碼就會截取內容如下:
程式碼:
fileName = "/Coffee.html"
file = open(fileName,'r')
text = file.read()
price = text[238:242]
print(price)
程式碼:
fileName = "/Coffee.html"
file = open(fileName,'r')
text = file.read()
where = text.find('>$')
start_of_price = where + 2
end_of_price = start_of_price + 4
price = text[start_of_price:end_of_price]
print(price)
程式碼:
price = 9999.0
while(price > 6.9):
fileName = "/Coffee.html"
file = open(fileName,'r')
text = file.read()
where = text.find('>$')
start_of_price = where + 2
end_of_price = start_of_price + 4
price = float(text[start_of_price:end_of_price])
print('Buy!')
程式碼:
import time
price = 9999.0
while(price > 6.9):
time.sleep(900)
fileName = "/Coffee.html"
file = open(fileName,'r')
text = file.read()
where = text.find('>$')
start_of_price = where + 2
end_of_price = start_of_price + 4
price = float(text[start_of_price:end_of_price])
print(price)
print('Buy!')