Python语言及其应用(第2版)
上QQ阅读APP看书,第一时间看更新

所有这些概念你都会在计算机程序中看到,这些程序就像一门小语言,专门用来让人类告诉计算机要做什么。我使用针织图案和食谱来表明编程并非那么高深莫测,基本上就是学习正确的单词和规则罢了。

如果没有太多的单词和规则,而且不需要一次学那么多,那就容易多了。毕竟我们一次能记住的东西是有限的。

来看一个真正的计算机程序,如例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章会详细介绍字典。

乍一看也没有太多的语法,希望如此吧。在接下来的几章中,你会逐渐碰到更多的小规则。