美文网首页
python循环执行

python循环执行

作者: 学习编程王同学 | 来源:发表于2018-02-20 21:16 被阅读119次

    python有两种循环,while循环和for循环。

    python循环的流程图如下:

    python循环流程图

    while循环

    python中while循环的一般形式是:

    while 布尔表达式:
        执行语句块
    

    下面是一个while循环的例子:

    i = 1
    sum = 0
    
    while i <= 10:
        print ('进入while循环.')
        print ('sum = %d, i = %d' % (sum, i))
        sum = sum + i
        i = i + 1
    print ('出while循环.')
    print ('sum = %d, i = %d' % (sum, i))
    

    这个例子中,首先判断布尔表达式i <= 10的值,第一次循环中i的值为1,布尔表达式为真,因此进入while语句块。如果布尔表达式为假,则不会进入while语句块。

    在执行完while中的语句块之后(i此时的值为2),再次判断布尔表达式,布尔表达式为真,因此进入while语句块。

    在第十次执行while语句块后,i此时的值为11,再次判断布尔表达式,布尔表达式为假,因此不会进入while语句块。

    例子中print()函数在%前的参数是格式化输出,%d表示是一个整数;%之后的是需要在%d处输出的变量。

    这个例子的输出如下:

    进入while循环.
    sum = 0, i = 1
    进入while循环.
    sum = 1, i = 2
    进入while循环.
    sum = 3, i = 3
    进入while循环.
    sum = 6, i = 4
    进入while循环.
    sum = 10, i = 5
    进入while循环.
    sum = 15, i = 6
    进入while循环.
    sum = 21, i = 7
    进入while循环.
    sum = 28, i = 8
    进入while循环.
    sum = 36, i = 9
    进入while循环.
    sum = 45, i = 10
    出while循环.
    sum = 55, i = 11
    

    显然,这个例子算出了1-10的和。

    无限循环

    如果while语句中布尔表达式的值永远为真,则程序会进入死循环,除非强制停止程序或者断电。

    下面是一个无限循环的例子(最好不要在你的电脑上执行这个例子):

    i = 1
    while True:
        print ('%d: In while loop.' % (i))
        i = i + 1
    

    由于while语句中布尔表达式永远为真,因此i会永远增长下去,直到系统崩溃、强制停止或者断电。

    这个程序的输出样本如下:

    1: In while loop.
    2: In while loop.
    3: In while loop.
    4: In while loop.
    ...
    24006: In while loop.
    24007: In while loop.
    24008: In while loop.
    24009: In while loop.
    ...
    

    虽然这个例子没什么意思,但是在一些场合死循环得到重要应用,比如嵌入式设备中,一些程序要在上电后开始执行,一直到断电。

    break与continue

    break语句跳出循环。

    continue语句结束本次循环,进入下一次循环。

    下面是break语句的一个例子:

    while True:
        command = input ('请输入命令(q-跳出):')
        if command == 'q':
            print ('跳出循环.')
            break
        print ('执行命令: %s' % (command))
    print ('退出程序.')
    exit ()
    

    虽然while循环是死循环,但是在用户输入'q'后,输出'跳出循环.',然后执行break:程序会跳出这个循环。跳出循环后,输出'退出程序.',然后结束程序。

    如果用户输入其他内容,程序会输出'执行命令:',后面重复用户输入的内容。

    这个程序的输出如下:

    $ python inf_loop_break.py 
    请输入命令(q-跳出):asdf
    执行命令: asdf
    请输入命令(q-跳出):1234
    执行命令: 1234
    请输入命令(q-跳出):q
    跳出循环.
    退出程序.
    

    continue语句并不会跳出循环,而是会结束本次循环,进入下一次循环。如果continue语句得到了执行,则循环语句块中continue语句之后的内容不会得到执行。

    下面是一个continue语句的例子:

    while True:
        command = input ('请输入指令(q-跳出):')
        if command[0] == '#':
            continue
        if command == 'q':
            print ('跳出循环.')
            break
        print ('执行命令: %s' % (command))
    print ('退出程序.')
    exit ()
    

    这个例子与上个例子的区别是,如果用户的输入以'#'开始,则会跳出本次循环,执行下次循环。

    下面是这个例子的一个输出样本:

    $ python inf_loop_continue.py
    请输入指令(q-跳出):apple
    执行命令: apple
    请输入指令(q-跳出):65432
    执行命令: 65432
    请输入指令(q-跳出):# china
    请输入指令(q-跳出):# -+]\
    请输入指令(q-跳出):CCTV
    执行命令: CCTV
    请输入指令(q-跳出):q
    跳出循环.
    退出程序.
    

    for循环

    for循环的一般形式如下:

    for 变量 in 序列:
        执行语句块
    

    for循环的例子如下:

    Permanent_Members = ['中国', '美国', '俄罗斯', '英国', '法国']
    i = 1
    
    print ('联合国安全理事会常任理事国:')
    for nation in Permanent_Members:
        print ('%d: %s' % (i,nation))
        i = i + 1
    

    变量Permanent_Members是一个列表,在for语句中,变量nation会依次遍历Permanent_Members中的元素,它的执行结果如下:

    $ python for_loop.py 
    联合国安全理事会常任理事国:
    1: 中国
    2: 美国
    3: 俄罗斯
    4: 英国
    5: 法国
    

    range()

    range()函数生成数列:

    >>> for i in range (5):
    ...     print (i)
    ... 
    0
    1
    2
    3
    4
    

    range()函数也可以创建一个列表:

    >>> list (range(5))
    [0, 1, 2, 3, 4]
    

    使用range()生成指定区间的值:

    >>> list (range(3,7))
    [3, 4, 5, 6]
    

    range()还可以指定增量:

    >>> list (range(3,10,2))
    [3, 5, 7, 9]
    

    如果想要使用下标作为循环变量,则可以使用range()函数:

    Permanent_Members = ['中国', '美国', '俄罗斯', '英国', '法国']
    
    print ('联合国安全理事会常任理事国:')
    for i in range(len(Permanent_Members)):
        print ('%d: %s' % (i+1,Permanent_Members[i]))
    

    嵌套循环

    循环也可以嵌套:

    population = [['china','1,389,340,000'],['India','1,328,160,000'],['United States','326,661,000']]
    
    print ('国家及人口:')
    print ('--------------')
    for nation in population:
        print (nation)
        for elem in nation:
            print (elem)
        print ('--------------')
    

    执行结果如下:

    $ python nested_loop.py
    国家及人口:
    --------------
    ['china', '1,389,340,000']
    china
    1,389,340,000
    --------------
    ['India', '1,328,160,000']
    India
    1,328,160,000
    --------------
    ['United States', '326,661,000']
    United States
    326,661,000
    --------------
    

    相关文章

      网友评论

          本文标题:python循环执行

          本文链接:https://www.haomeiwen.com/subject/thzgtftx.html