Python 循环 while,for

发布时间:2019-09-22 07:44:41编辑:auto阅读(1612)

    循环语句(有两种):

    while 语句

    for   语句

    while 语句:

    问题:输入一个整数n,让程序输出n行的:

    hello 1

    hello 2

    .......

    hell n

    while 语句:

    作用:根据一定条件,重复的执行一条语句或多条语句

    语法:

    while 真值表达式:

    语句块1......

    else:

    语句块2......

    说明:

    1,先执行真值表达式,测试布尔值为True或False

    2,如果真值表达式的测试值为True,侧执行语句1,然后再返回到第一步重复进行测试

    3,如果真值表达式的测试值为False。则执行else子句中的语句块2,然后结束此while语句的执行,如果没有else子句,则直接结束while语句的执行。

    4,else子句部分可以省略(同if语句类似)。

    如:打印10行的hello
    i = 1      #创建并初始化一个控制while循环的变量i
    while i <= 10:
            print("hello")   #此处执行10次
            i += 1 
    #运行结果:[root@localhost data]# ./test.py 
    hello
    hello
    hello
    hello
    hello
    hello
    hello
    hello
    hello
    hello

    while语句的注意事项:

    1,要控制循环的真值表达式的值来防止死循环。

    2,通常用真值表达式中的循环变量来控制循环条件。

    3,通常在循环语句块內需要改变循环来控制循环的次数和变量的走向


    while循环的嵌套:

    while语句本身是语句,和其它的语句一样可以嵌套在其它复合语句中(如:if语句 ,while语句, for语句 ....内部)


    while语句嵌套示意:

    while 真值表达式:

    .......

    while 真值表达式2:

    ......

    else:

    ........

    else:

    ........

    如:

    输入一个数,打印指定宽度的正方形:

    如:输入:5

    n = int(input("输入一个数:"))
    j = 1
    while j <= n:
        i = 1
        while i <= n:
            print(i,end=' ')
            i += 1
        print()
        j += 1 
    ######运行结果:
    1 2 3 4 5 
    1 2 3 4 5 
    1 2 3 4 5 
    1 2 3 4 5 
    1 2 3 4 5


    break 语句:

    作用:用于循环语句(while,for语句)中,用来终止当前循环语句的执行。

    说明:

    1,当break语句执行后,此循环语句break之后的语句将不再执行

    2,break语句通常和if语句组合使用。

    3,break语句终止循环时,循环语句的else子句将不会被执行

    4,break语句只能终止当前循环的执行,如果有循环嵌套时,不会跳出嵌套的外重循环

    5,break语句只能在循环语句(while或for语句)内部使用

    如:

    i = 1
    while i < 10:
            print("循环开始i=",i)
            if i == 5:      #当i = 5时结束循环
                    break
            i += 1
    #运行结果:[root@localhost data]# ./test.py 
    循环开始i= 1
    循环开始i= 2
    循环开始i= 3
    循环开始i= 4
    循环开始i= 5

    死循环 death loop:

    1,死循环是指循环条件一直成立的循环

    1,死循环通常用break语句来终止循环

    3,死循环的else子句永远不会执行

    如:用input输入一些文字,当输入三个*号时,代表输入结束,否则一直循环。

    s = ""
    while True:
            a = input("请输入文字(***结束)")
            if a == '***':
                    break
            s += a + '\n'
    ##运行结果:[root@localhost data]# ./test.py 
    请输入文字(***结束)a
    请输入文字(***结束)b
    请输入文字(***结束)v
    请输入文字(***结束)c
    请输入文字(***结束)d
    请输入文字(***结束)***   #输入三个*** 结束,退出循环
    [root@localhost data]#


    二:

    for 语句(循环语句)

    作用:用来遍历可迭代对象的数据元素

    语法:

    for 变量列表 in 可迭代对象:

    语句块1......

    else:

    语句块2......


    语法说明:

    1,可迭代对象每次提供一个元素依次赋值给变量列表中的变量,赋值完毕后执行语句块1,重复执行此步骤,

    2,当可迭代对象不能够提供数据时,执行else子句部分的语句块2,然后退出循环。

    如:
    s = 'ABCDE' 
    for x in s: 
            print(x)
    else:   
            print("继续执行此条")    #迭代对象不能够提供数据时,继续执行else中的这条
    ##运行结果:[root@localhost data]# ./test.py 
    A
    B
    C
    D
    E
    继续执行此条

                    3,else子句部分可以省略(同while语句类似)

    4,当在语句内部用break终止循环时,else子句部分语句块2不会执行,

                可迭代对象时指能依次获取数据元素的对象

    四:

    for循环嵌套: 和while循环嵌套一样

    如:

    for x in "ABC":
            for y in "123":
                    print(x + y)
    ##运行结果:
    [root@localhost data]# ./test.py 
    A1
    A2
    A3
    B1
    B2
    B3
    C1
    C2
    C3

    经典否循环嵌套示例:

                    用for循环嵌套打印如下图形:

    (输入一个数n(10以内)代表矩形的宽度和高度) 

    如: 输入:5

    1 2 3 4 5

      2 3 4 5 6

      3 4 5 6 7 

      4 5 6 7 8 

      5 6 7 8 9 

    n = int(input("输入一个数:"))
    for i in range(1, n +1):
        for j in range(i, i + n):
            print(j,end=' ')
        else:
            print()
            
    #运行结果:
    [root@localhost data]# ./test.py 
    输入一个数:5
    1 2 3 4 5 
    2 3 4 5 6 
    3 4 5 6 7 
    4 5 6 7 8 
    5 6 7 8 9

    五:

    continue 语句:

    作用:用于循环语句(while,for语句)中,不再执行本次循环內continue之后的语句,重新开始一次新循环。

    说明:

    1,在while语句中执行continue语句,将直接跳转到while语句的真值表达式重新判断循环条件。

    2,在for语句中执行continue语句,将会从可迭代对象中取下一个元素,绑定变量后再次进行循环。

    如:

    for i in range(5):
            if i == 3:    #当i 等于3时,跳过打印,进行下一次循环。
                    continue
            print(i)
    #运行结果       
    [root@localhost data]# ./test.py 
    0
    1
    2
    4

    示例:

    写一个程序,求1-100之间所不能被5,7,11整除的数的和。

    s = 0 
    for i in range(1,101):
        if (i % 5) == 0 or (i % 7) == 0 or (i % 11) == 0:
            continue
        s += i
    print(s)
    #运行结果:
    [root@localhost data]# ./test.py 
    3007

    六:

    range 函数:

    作用:用来创建一个生成一系类整数的可迭代对象(也叫整数序列生成器。)

    调用格式:

    range(stop)

    从零开始,每次生成一个整数后加1,操作,直到stop为止(不包含stop)

    range(start,stop[,step])从start开始,每次生成一个整数后移动step,直到stop为止(不包含stop,且step可以为负数。)

              注:如果直接打印range(5)或(print(range(5)))的时候会得到range(5),而不是一个列表,这是因为节省空间,防止过大的列表产生。

        如:

    >>> range(5)     
    range(0, 5)
    >>>

           如果想要到交互模式下得到列表,可以加入list到前面来进行,如下:

    示例:

    >>> list(range(5))      
    [0, 1, 2, 3, 4]
    >>> list(range(1,6))    
    [1, 2, 3, 4, 5]
    >>> list(range(10,0,-1))
    [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
    >>> list(range(1,10,2)) 
    [1, 3, 5, 7, 9]
    >>> list(range(5,0,-2))
    [5, 3, 1]
    >>>



关键字

上一篇: Python进制转换

下一篇: python操作Xml文件