迭代与循环

    这样的形式简单又强大!for循环是许多编程中的基础。
    比如,你已经知道的sum(list)这个函数,它会将列表中所有的元素相加,但你同样可以使用for循环来干这件事情:

    1. >>> sum = 0
    2. >>> for value in mylist:
    3. ... sum = sum + value
    4. ...
    5. >>> print(sum)
    6. 13

    其本质是创建了一个变量”sum”,然后不断的将列表中的元素与其相加。

    有时候,你可能不想使用列表中的值,而只需要它们的索引位置。比如,我们不止想获取出它的值还想获取出它在列表中的位置。
    请看以下例子:

    你可以看到我们并没有迭代列表本身,而是迭代了这个列表长度的“range”。“range”函数返回的是一个特殊列表:

    1. >>> list(range(3))

    所以当使用“range”时迭代的就不是“mylist”而是一些用于访问列表里的值的数字索引。更多关于“range”的内容你可以参阅Python文档中关于“range”的部分。 https://docs.python.org/3/tutorial/controlflow.html#the-range-function

    请记住Python列表中第一个值的索引总是0。

    最后,Python里还提供while声明来让我们重复做一些事情,只要这个特定的条件是True就会一直执行。
    比如,下面这个例子中n开始于10,条件是“n”大于0。每次都会从n中减去1。当n变为0时,“n”>0这个条件就失效了,此循环也就结束了。

    1. >>> n = 10
    2. >>> while n > 0:
    3. ... print(n)
    4. ... n = n-1
    5. ...
    6. 10
    7. 9
    8. 7
    9. 6
    10. 4
    11. 3
    12. 2
    13. 1

    这个循环永远也不会打印0。

    解决这一部分你可能很想参阅Python文档中关于循环的部分:

    1. 创建一个名为add的函数,它接受一个列表作为参数,返回的是列表中所有元素的和。请使用for循环来完成。

    2. 修改之前的那个函数,现在它返回的是是一个列表,列表中第一个元素为最大的一个值,第二个元素为这个值在原列表中的位置。
      提示:除了保存目前为止最大的数,你还要保存下它出现的位置。

    3. 实现一个函数,它返回所接受的列表的翻转列表。
      提示:你可以创建一个空列表,然后从原列表中倒序的添加值。你可能会想参阅Python文档中关于列表的部分:
      https://docs.python.org/3/tutorial/datastructures.html#more-on-lists

    4. 写一个名为is_sorted的函数,它接受一个列表作为参数,如果这个列表里的内容是以升序排列的话则返回True
      比如就是True[1, 2, 3, 2]则不是。
      提示:如果你要将一个数字与接下来的数字做对比,你可能会用到索引,或者你也可以将其保存到一个变量中。

    5. 写一个名为is_sorted_dec的函数,与之前的那个相似但所有的项都是以降序排列的。

    while循环部分练习

    1. 写一个函数,接受一个数字作为参数并且以降序形式打印出来,打印时标出该数字是奇数还是偶数,一直到0。