#!/usr/bin/env python
# -*- coding:utf-8 -*-
# FileName: 02_PythonInterpreterPrompt.py
# Development starting date: 2013.02.12
# Modification date log    : 2013.02.12
# Last modification date   : 2013.02.12
# Developer: Peter. w (peterwolf.wang@gmail.com)
# This Software/Scipt is protected by copyright and other intellectual property laws and treaties.
# Droidtown Linguistic Technology Co., Ltd. owns the copyright, and other intellectual property rights in the Software/Script.
# 卓騰語言科技有限公司 版權所有 Copyright 2012 Droidtown Ling. Tech. Co., Ltd All Rights Reserved.

#「兔大，裡面那個看起來像是個活人耶！」左邊那個戴著粗框眼鏡的小個子先發聲了。

#「林貓，你的感應器好像不太管用哦！」中間那個人接著說。

#「嗯…」站在右邊的林貓不喜歡爭辯，他正在用機械技師的大腦考慮著有哪些因素會讓他的生命探測器失靈…說不定臨時拼湊的零件也是原因之一，畢竟這也是為什麼今天要特別到這棟大樓來找零件的理由…而如果他的生命探測器是失靈的，那麼之前他們試著去搜救的那些建築是不是要重新再搜一次？

#「我叫皮塔，幾天前從城北區看到這棟大樓倒了，今天是過來看看有什麼備用零件可以收集的。既然你們先到，我只要拿你們挑剩的就行了。」皮塔舉著雙手，努力擺出最誠懇的表情。他心裡閃過一堆末日危機時，平時和善的鄰人變成盜匪的故事畫面。雖然他想不起來究竟是在哪裡看過這樣的情節，但失去希望時的人性，有時比禽獸還齷齪…

#另一邊，同樣心思的烈兔也用力裝出一臉狠樣，草蜢機的後面傳來一聲很輕的「哼」，是雲杉在表示她的不以為然…

#烈兔一邊在心裡碎碎念著：「這個不知世情險惡的女人…」一邊故意放慢腳步走向皮塔的城市草蜢機。他完全沒有要打劫的意思，但此時此刻他告訴自己一定要沉住氣。否則要是遇上了狠角色，說不定在這個機器咬人，人也吃人的世界裡，這裡就是他們幾個的葬生之地了。

#飛快地瞄了一眼皮塔的城市草蜢座艙，裡除了幾個按鈕和一個鍵盤以外，的確沒有任何可以當做武器的東西。「連操控桿都沒有！？」這件事太奇怪了。他們四個人的三部草蜢機都是有操控桿的，烈兔實在無法想像一部沒有操控桿的草蜢機要怎麼操作，難不成是用聲控的嗎？那駕駛起來也太費脣舌了吧？

#不過…至少這表示他手邊沒有任何可以當做武器的東西，這應該是好事吧？

#「你再說一次你叫什麼名字？」烈兔退開了兩步，語氣和緩了些。裝狠很累的…他好像在哪一部老電影裡看過這句話。

#「我叫皮塔…」

#「你怎麼會有草蜢機？」雲杉從繞到前面來，打斷兩人的對話。

#「我…我怎麼會有草蜢機？」皮塔一下子不知道該如何回答這個問題，就只好就著腦海中的印象說：「我的工作就是測試城市草蜢機，所以在城市車輛大爆走發生時，我就直接操作我的草蜢機逃出來了。」

#「咦？所以你是採購研發部的囉？那我們算是同事嘛！」斑犀一想到是同事，整個人都鬆懈了下來。

#雖然不確定自己是不是他們口中的那個「採購研發部」，但看到對方之中有一人似乎對這個組織裡的人頗有好感，皮塔便應著：「是啊，是啊…」

#「你是從城市運輸公司的大樓逃出來的？」烈兔想起幾個月前那道在大樓間閃過的黑影，一時間也不定這個問題是在問皮塔，還是在問自己。

#經這麼一問，皮塔的眼前閃過他在城市草蜢裡的畫面，透過座艙玻璃看出去，的確是在某棟大樓的頂樓，耳邊還傳來天花板上合成語音不帶感情地念著「JCN 備援計畫啟動！」的聲音…

#「既然是自己人，那麼就不要分什麼先來後到了。你要不要加入我們的隊伍？」林貓開口問道，即使他的心裡還是有著疑問，但把這個來歷不明的人留在身邊，總比時時要提防他在暗處來得輕鬆一點。再加上，他還需要釐清為什麼他的生命探測器會失誤，以後如果找到零件修好了，若想要在相同條件下測試，這個叫皮塔的傢伙就一定要列為測試條件之一才行。

#烈兔聽林貓這麼說，雖然一愣，但也不好說什麼。雖說在公司裡他是個小主管，但現場能稱得上是他「直屬下屬」的，其實只有斑犀一個。林貓的職等雖然比他低，但畢竟是另一部門的，而且實際上比他年長許多。至於雲杉，就更不用期待她會聽命行事…想到這裡，他突然覺得很好笑，他所任職的公司現在已經變成專職撲殺人類的機器組織了，他卻還在用這個組織裡的層級編制在思考人事。

#看到三個男性的表情都和緩了下來，只剩下一個從頭到尾都冷冷的女性，皮塔快速地評估了一下自己的處境以後說：「好啊，如果不會帶給你們什麼麻煩的話。那麼，以後我們就一起行動吧。」

#「太好了！那我們就多一個人來腦力激盪了！」表裡一致的斑犀喜出望外地拍起手來。

#「什麼腦力激盪？」皮塔問道。

#「還不就那個打不開的大門，三個笨蛋搞一個早上都打不開。」雲杉沒好氣地說。

#她自認不是一個難相處的人，但從大爆走事件以後，她就深深為衛生紙的問題所苦。這些男生卻好像從來不覺得這是個問題似的。當初好不容易爬到頂樓以後，費了好大一番功夫才把送公文的機器人擋在下一層。接著，就發現「採購研發部」的種種配置和設計都和城市運輸公司其它樓層的標準化風格不一樣。城市運輸公司向來走的是「硬體標準化，軟體個人化」的設計路線。如此才能讓任意兩套硬體之間都能隨時互換通用零件以達到最高的使用效能，同時再配合個人化的數據分析資料來讓每個使用者都感受到這部機器是專為自己設計的貼心經驗。

#但採購研發部完全不是這麼一回事。裡面的桌椅不但尺寸不一，高低也不一致，更誇張的是竟然還有一個和辦公空間一樣大的廚房兼餐廳。除了充做餐桌的中島以外，櫃子裡也滿滿地堆著各種糖、鹽、麵粉、義大利麵條和罐頭蕃茄…等食材，像是隨時要餵飽二十個大漢似的。但最讓人感到奇怪的是，這層辦公室一點人味兒都沒有！就算說這裡只是特地擺出來給觀光客參訪的空間好了，但門禁記錄裡最近的一次進出記錄也是半年多以前的事了。他們四個人不只一次在餐桌上討論過究竟這麼多食物是要給誰吃的，但都沒有結論。

#等到他們終於搞清楚如何啟動和操作剩下的三部城市草蜢機並逃出城市運輸公司的辦公大樓時，已經是大爆走後三個星期的事情。接著的幾個月，每次進到新的大樓建築裡搜尋生還者的時候，她總會優先尋找各洗手間的衛生紙或是生理用品。無奈由於大部份的建築裡之前都還有一小段日子有倖存者努力過，所以剩下的各種衛生用品的存量也不多。有時候她會想起年輕時愛看各種穿梭時空的科幻小說或是古裝劇，當時還會幻想如果她是裡面的主角，便能如何如何地冒險什麼的，現在再想起一樣的故事，只會覺得讓一個現代女性回到沒有衛生紙的時代，根本不是什麼科幻設定，而是隱藏版的殘酷文學啊！想到這裡，雲杉扁了扁嘴，生著悶氣走了開去，走過那個新來的傢伙旁邊時加了一句…

#「三個笨蛋加一個笨蛋，也不會變天才。」

#皮塔看著她的背影，一時間無法確定她說的「加一個笨蛋」究竟是指她自己還是他這個新來的。抓抓頭心想：「算了…還是先看看是什麼大門吧。」

#「這棟大樓不是倒蹋，而是『打開』！」站在一個有車庫那麼寬的金屬門前，林貓指著旁邊的液壓機械臂說著。

#「大樓？打開？」皮塔怕自己聽錯了。剛才不是才在說有什麼門打不開嗎？也許那個笨蛋真的是指自己吧。

#「嗯，它的十二樓外牆，設有這組液壓設備和斜面的結構，不知道是什麼觸動了它，總之它的左右兩側的液壓固定臂收合起來以後，後面還有一個超大型的舉升臂向上推，然後十二樓以上的建物就這麼…」林貓往下一指「轟地掉下去了。」

#「然後林貓發現了這道鐵門和旁邊像是門鎖一樣的操作面板，」烈兔接口說道：「可是這個面版上只有一部攝影機和一個不知道接什麼用的連接孔。」

#「我們本來想這個門會不會是用視網膜做密碼的。但兔大說可能性不高，因為它的角度太奇怪了…」斑犀熱心地拉著皮塔往下一蹲：「它是從上往下拍的」

#蹲著的皮塔抬眼一看…咦？好熟悉的形狀…「這…這個連接孔是 USB 7.0 的！」

#「USB？那不是我們阿公在用的東西嗎？」斑犀說道。

#「哦？我只有讀書的時候在計算機史的課本裡看過照片耶！」烈兔也蹲下來，對剛才沒有留意的連接孔多看了兩眼。

#「那我們現在去哪裡找阿公時代的東西？」林貓提出比較實際的問題。

#「不用找，我有」皮塔轉過頭來說：「我的草蜢機上的觸控式終端機螢幕是用 USB 7.0 的介面和我的草蜢機接在一起的！」

#「啊？」三個人驚訝地異口同聲…

#「笨蛋！」稍遠一點，冷眼看著四個男生的騷動，雲杉接著下了註解。

#皮塔拔下自己草蜢機上的終端機螢幕，遞給站在旁邊的林貓。

#林貓看著這個粗短的六角形接頭，心裡暗暗比對著…外圈六角形的設計是為了在面板上容納最多的連接孔空間…不分上下左右，隨插即用的佈線設計…內圈的圓形除了強化結構外，還可以保護中間那根內縮的 12V 供電線路。

#「這真的是 USB 7.0」林貓忍不住讚嘆了起來：「USB 規格被無線技術全面打敗以前的顛峰之作！」

#「那就快來試試看吧！」斑犀興奮地招呼雲杉過來。

#把終端機螢幕拿到林貓發現的攝影鏡頭下時，才發現這個面板的旁邊甚至有凹槽可以讓終端機螢幕牢牢地接上 USB 接頭，並嵌在鏡頭下。一插入終端機螢幕，畫面上立刻顯示出 Python 的啟動提示，最後出現兩行字串…

## Make variable x the answer to the question below:
## How many spaces are there in this sentence, "Space, the final frontier?"
##(譯：「指定一個變數 x，並讓 x 的值為下列問題的答案：」
##「在 "Space, the final frontier" 這個字串中有幾個空格」)

#「這太簡單了吧！」斑犀叫了起來：「三個空格！快快，輸入數字 3…」

x = 3

#螢幕閃了一下，還是出現一樣的字串…

## Make variable x the answer to the question below:
## How many spaces are there in this sentence, "Space, the final frontier?"
##(譯：「指定一個變數 x，並讓 x 的值為下列問題的答案：」
##「在 "Space, the final frontier" 這個字串中有幾個空格」)

#「怎麼？發生了什麼事？」烈兔問道。

#「什麼事也沒發生。」皮塔回答：「會不會是大小寫的問題？這個螢幕太小了，我看不太清楚原來題目裡的 x 是大寫還是小寫。」

#「剛才是小寫的 x，不然我用大寫的再試試看好了。」斑犀一邊答，一邊在鍵盤上輸入…

X = 3

#這次螢幕閃了兩下。第一下是顯示：

## X is not x, Python is case sensitive, please try again.
##(譯：「大寫 X 並不等於小寫 x，Python 對大小寫是很敏感的，請再試一次。」)

#然後又出現一開始的字串…

## Make variable x the answer to the question below:
## How many spaces are there in this sentence, "Space, the final frontier?"
##(譯：「指定一個變數 x，並讓 x 的值為下列問題的答案：」
##       「在 "Space, the final frontier" 這個字串中有幾個空格」)

#「拜託，我英文不好都看得懂了，它問的是有幾個 space 在這個字串裡，那不是只有一個嗎？」林貓雖然不懂程式設計，但是這幾個月來和三個程式設計師日夜混在一起，對透過鍵盤輸入這些天書般的符號也不再那麼遲疑了。

x = 1

#可惜，螢幕上還是只出現一開始的字串…

## Make variable x the answer to the question below:
## How many spaces are there in this sentence, "Space, the final frontier?"
##(譯：「指定一個變數 x，並讓 x 的值為下列問題的答案：」
##       「在 "Space, the final frontier" 這個字串中有幾個空格」)

#「不對啦，如果真的是 space 這個字串出現的次數的話，你要注意到題目裡的是複數的 spaces，而後面的句子裡是單數的 space。這兩個字串對我們人類來說看起來很像，但是對電腦來說，是完全不一樣的兩個東西。」烈兔提出他的看法。

#「等等…」皮塔突然想到自己設密碼的時候，刻意避開能讓電腦猜出來的事情。雖然不知道這道門鎖是誰設計的，但從他刻意選擇一個已經不再被現代電腦採用的技術規格這點來看，說不定這道門鎖的設計師也想避免他的密碼被電腦猜中這件事。因此，也許這個問題應該要從人的角度來看，而不是從電腦的角度來看。也就是說…不管是單數的 space 還是複數的 spaces，甚至是符號上的「空格」，其實人類都是以 "space" 這個字眼去稱呼它。所以…在 "Space, the final frontier" 這個句子裡有一個單數的 space 和三個空格，加起來就是…「答案是 4！」他一邊喃喃念著，一邊鍵入…

x = 4

#終端機螢幕的畫面一閃，伴隨著一聲沉重的金屬敲擊聲，深鎖的金屬門開了…