首页 » 父与子的编程之旅:与小卡特一起学Python » 父与子的编程之旅:与小卡特一起学Python全文在线阅读

《父与子的编程之旅:与小卡特一起学Python》8.4 风格问题循环变量名

关灯直达底部

循环变量与其他变量一样。它没有任何特殊之处,只是对应一个值的名字而已。将这个变量用作循环计数器也是可以的。

之前我们说过,要使用能够描述变量用途的变量名。正是这个原因,我们在前一个例子中选择了 looper 这个名字。不过,有时可以有些例外,循环变量就属于这种例外。这是因为,编程中有一个惯例(应该记得,惯例就是表示通用的做法),通常使用字母 ijk 等作为循环变量。

从前的美好时光

为什么用 ijk 循环?

这是因为早先的程序员一直用程序来计算数学问题,而数中 abcxyz 已经有其他用途。另外,在当时一种流的编程语言中,变量 ijk 总是整数,不能把它们创建为何其他类型。由于循环计数器总是整数,所以程序员总是选 ijk 来作为循环计数器,这也成为了一种通用的做法。

由于很多人都使用 ijk 作为循环变量,程序员在程序中也习惯了这种做法。当然也可以用其他名字作为循环变量(就像前面的例子中一样),不过,除了作为循环变量,ijk 不应当有其他用途。

如果采用这个惯例,程序就会像这样:

for i in range (1, 5):    print i, "times 8 =", i * 8  

它的用法完全相同。(你可以试试看!)

为循环变量选择什么名字属于风格问题。风格(style)就是你的程序看上去怎么样,而与程序能不能正常工作无关。不过,如果与其他程序员采用相同的风格,你的程序就会更易读、更易于理解,也更易于调试。同时,你也会更加习惯这种风格,能够更轻松地读懂其他人的程序。

range 简写

不一定非得为 range 提供两个数(像在代码清单 8-5 中那样),可以只提供一个数:

for i in range (5):  

这与写作:

for i in range (0, 5):  

完全相同,同样会提供以下数字列表:[0, 1, 2, 3, 4]

实际上,大多数程序员都从 0 开始循环而不是从 1 开始。如果使用 range(5),会得到循环的 5 次迭代,这很容易记住。只是需要知道,第一次循环时 i 将等于 0 而不是 1,而最后一次循环时,它将等于 4 而不是 5。

从前的美好时光

为什么大多数程序员从 0 而不是 1 开始循环呢?

是这样的,从前,有些人坚持从 1 开始,有些人则坚持从 0 开始。他们对于哪一种做法更好有过激烈的争论。最终,坚持从 0 开始的人胜利了。

所以就出现了现在的情况,如今大多数人都从 0 开始循环,不过你可以根据自己的喜好选择任何一种做法。只是要记住,需要调整上界来得到正确的迭代次数。

嗯,卡特,你已经发现字符串的一些规律了。字符串就像一个字符列表,我们已经学过:计数循环使用列表来完成迭代。这说明,也可以利用一个字符串来循环。字符串中的每个字符对应循环中的一次迭代。所以,如果打印循环变量(在这个例子中卡特把他的循环变量取名为 letter),就会打印出这个字符串中的所有字母,一次打印一个字母。因为每个 print 语句都会换行,所以每个字母分别打印在单独的一行上。

你可以像卡特一样,多做一些尝试,这是一种很好的学习方法!