- Python語言及其應用(第2版)
- (美)比爾·盧巴諾維奇
- 1059字
- 2022-04-15 17:15:39
1.2 小程序
所有這些概念你都會在計算機程序中看到,這些程序就像一門小語言,專門用來讓人類告訴計算機要做什么。我使用針織圖案和食譜來表明編程并非那么高深莫測,基本上就是學習正確的單詞和規則罷了。
如果沒有太多的單詞和規則,而且不需要一次學那么多,那就容易多了。畢竟我們一次能記住的東西是有限的。
來看一個真正的計算機程序,如例1-1所示,你知道它在做什么嗎?
例1-1 countdown.py
for countdown in 5, 4, 3, 2, 1, "hey!": print(countdown)
如果猜到這是一個打印出下列內容的Python程序:
5 4 3 2 1 hey!
那你就會明白Python學起來要比食譜和針織圖案容易多了。而且,你可以在桌子上既舒服又安全地編寫Python程序,遠離被熱水燙到和被編織棒扎到的風險。
Python程序有一些特殊的單詞和符號:for、in、print、逗號、冒號、圓括號等。它們都是該語言語法(規則)的重要組成部分。好消息是,Python的語法非常漂亮,相較于大多數編程語言,記憶難度更小,而且看起來也更自然,幾乎就像一份食譜。
例1-2是另一個微型Python程序,它會從Python列表中挑選哈利?波特的一條咒語并打印出來。
例1-2 spells.py
spells = [ "Riddikulus!", "Wingardium Leviosa!", "Avada Kedavra!", "Expecto Patronum!", "Nox!", "Lumos!", ] print(spells[3])
每條咒語都是Python字符串(出現在引號內的文本字符序列),它們彼此之間以逗號分隔,包含在由一對閉合方括號([和])定義的Python列表中。單詞spells是一個變量,它為列表賦予了名稱,以便對其進行操作。在這個例子中,程序會打印出第4條咒語:
Expecto Patronum!
明明是第4條,為什么要寫成3 ?Python列表(如spells)是值的序列,按照從列表起始位置的偏移量來訪問其中的值。第一個值的偏移量為0,第4個值的偏移量為3。
因為人們通常是從1開始計數的,所以從0開始計數看起來有些怪異。從偏移量而非位置的角度來思考會有所幫助。沒錯,這就是計算機程序有時候不同于常見語言用法的一個例子。
列表是Python中相當常見的數據結構,第7章會展示其用法。
例1-3中的程序會打印出《三個臭皮匠》(The Three Stooges)中一位主角的臺詞,不過是按照人名而非列表中的位置引用的。
例1-3 quotes.py
quotes = { "Moe": "A wise guy, huh?", "Larry": "Ow!", "Curly": "Nyuk nyuk!", } stooge = "Curly" print(stooge, "says:", quotes[stooge])
運行這個小程序會輸出以下內容:
Curly says: Nyuk nyuk!
quotes是一個Python 字典變量。字典是一系列不重復的鍵(在本例中是主角的名字)及其關聯值(在本例中是主角的臺詞)的集合。利用字典,你可以按照名稱存儲和查找數據,這通常是列表的有益替代。
spells的例子使用方括號([和])創建Python列表,quotes的例子使用花括號({和},這跟Curly可沒什么關系2)創建Python字典。另外,冒號(:)用于關聯字典中的鍵與值。
2花括號的英文(curly bracket)正好和《三個臭皮匠》中主角之一Curly的名字一樣。——譯者注
第8章會詳細介紹字典。
乍一看也沒有太多的語法,希望如此吧。在接下來的幾章中,你會逐漸碰到更多的小規則。
- ServiceNow Application Development
- DBA攻堅指南:左手Oracle,右手MySQL
- 深入理解Bootstrap
- Photoshop智能手機APP UI設計之道
- Learning AWS Lumberyard Game Development
- Rust Cookbook
- Mastering Swift 2
- HTML5 and CSS3 Transition,Transformation,and Animation
- Python編程實戰
- Swift細致入門與最佳實踐
- 從Power BI到Analysis Services:企業級數據分析實戰
- Getting Started with Python
- Learning Python Data Visualization
- 進入IT企業必讀的324個Java面試題
- TypeScript圖形渲染實戰:2D架構設計與實現