在Python中使用循环

2020-03-12  本文已影响0人  醉看红尘这场梦

几乎任何一个有用的程序也都会至少包含一个循环语句。相信你对循环这个概念并不陌生,在Python里,和其他编程语言类似,我们可以使用forwhile实现循环。

使用for循环

相比C中的版本,Python中的for循环更接近自然语言,它采用了for 元素 in 集合这样的语法形式,例如,遍历一个rangelist

for num in range(1, 5):
    print(num)

for num in [1, 2, 3, 4]:
    print(num)

可以看到,和if类似,for循环语句的末尾,也要使用:表示结束,并且,所有属于for循环的代码,必须有相同的缩进。至于含义,则很好理解,这两个循环打印出来的结果,都是1234。

当我们使用for遍历dictionary的时候,遍历的实际上是它的key,来看个例子:

user = {'email': '11@boxue.io', 'name': 'Mars'}

for info in user:
    print(info)
    # email
    # name

可以看到,在for循环中的info对应的就是user中key的名字。但要说明的是,for循环遍历user时得到的key的顺序,可能和定义user时是不同的,因为dictionary是一个无序集合,我们不能依赖key的定义顺序编写代码。

以上,就是Python中for循环的基本用法。但除此之外,for还有一个自己独特的语法,它也允许我们定义一个else分支,这个分支只有在for自然结束的时候,才会执行。

什么是自然结束呢?简单来说,就是遍历了所有的情况,来看个例子:

for num in range(1, 5):
    print(num)
else:
    print('All numbers are iterated.')

这样,在遍历完range中的所有数之后,我们就会在控制台看到All numbers are iterated.这样的结果。但是,如果我们在循环中添加个条件中途退出:

for num in range(1, 5):
    if num == 2:
        break
    print(num)
else:
    print('All numbers are iterated.')

这样,for循环就不算自然结束,我们也就看不到else分支的执行了。为什么要给for循环添加一个else呢?Hmm... 貌似的确没有一个必须的理由。一个看似还合理的用法,就是for循环自然结束表示某种应用错误的时候,我们可以在else分支中抛出一个异常,这样可以让代码变得好看一些。稍后,我们讲到错误处理的时候,会提到这种用法。

了解了for的用法之后,接下来,我们来看另外一种循环方式:while

使用while循环

while的用法和C中几乎是完全一样的,它接受一个boolean表达式,只要表达式的值为True就会一直执行下去:

num = 1

while num < 10:
    if num % 2 == 0:
        num += 1
        continue

    print(num)
    num += 1

这里,在循环中使用continue表示跳过当前循环中的剩余指令,直接从下一次循环开始。于是,我们就只能在控制台看到1-9中所有的奇数了。

上一篇下一篇

猜你喜欢

热点阅读