zoukankan      html  css  js  c++  java
  • Python的循环

    简介

    while

    在给定的判断条件为 true 时执行循环体,否则退出循环体。

    语法

    while 判断条件(condition):
        执行语句(statements)……

    实例

    # 实例1
    a,b = 0,1 while a<10: print(a,end=',') a,b = b,a+b # 解析 ''' 第一次循环: a=0,a<10,print(0) a=b,b=a+b 所以a=1,b=1 第二次循环: a=1,a<10,print(1) a=b,b=a+b 所以a=1,b=2 第三次循环: a=1,a<10,print(1) a=b,b=a+b 所以a=2,b=3 第四次循环: a=2,a<10,print(2) a=b,b=a+b 所以a=3,b=5 第五次循环: a=3,a<10,print(3) a=b,b=a+b 所以a=5,b=8 第六次循环: a=5,a<10,print(5) a=b,b=a+b 所以a=8,b=13 第七次循环: a=8,a<10,print(8) a=b,b=a+b 所以a=13,b=21 第八次循环: a=13,a>10,不执行下方语句,结束循环 '''
    # >>> 0,1,1,2,3,5,8,
    # 实例2
    numbers = [12,37,5,42,8,3] even = [] # 空列表 odd = [] # 空列表 while len(numbers) > 0:# 判断numbers中的长度是否大于0 num = numbers.pop()# 将numbers中的值随机删除一个,并将这个删除的值赋值给num if(num % 2 == 0):#如果被删除的这个值取余2等于0 even.append(num)#说明这个值是偶数,将其写到列表even中 print('even:%s' %(even))#输出even列表 else: odd.append(num)#如果被删除的这个值取余2不等于0,说明这个值是偶数,将其写到列表odd中 print('odd:%s' %(odd))##输出even列表

    for

    语法

    Python 的 for 语句与 C 或 java 中的不同。Python 的 for 语句不迭代算术递增数值(如 java),或是给予用户定义迭代步骤和暂停条件的能力(如 C),而是迭代列表或字符串等任意序列,元素的迭代顺序与在序列中出现的顺序一致

    for iterating_var in sequence:#可以直接指定一个循环数值,或者一个列表等
       statements(s)

    实例

    range()内置函数

    print(range(10)) # 单独打印range的值,会展示这个的循环区间,输出结果:range(0, 10)
    print(sum(range(10))) #输出相加的值0+1+2+3+4+5+6+7+8+9
    print(list(range(10))) # range生成列表
     
    for i in range(5,10):# 输出5-10的值(前包后不包)
        print(i)
    
    for i in range(1,10,3):# 输出1-10的值(前包后不包),步长为3.结果:1,4,7
        print(i)
    
    for i in range(-10,-200,-30):# 输出-10~-200的值,步长为-30。结果:-10,-40,-70,-100,-130,-160,-190,
        print(i,end=',')

    range() 和 len() 组合在一起,可以按索引迭代序列:

    #实例1
    words = ['cat', 'window', 'defenestrate']
    for w in words:# words中有几个数值,就循环几次
        print(w, len(w))# 输出每次循环取到的值,和每个值的长度
    
    #实例2
    for w in['cat', 'window', 'defenestrate']:# 还可以写成这种写法
        print(w, len(w))
    
    #实例3
    for w in range(len(words)):# 或者写成这种方式
       print(w, words[w])

    三元表达式

    语法

    实例

    result = [str(i).zfill(2) for i in range(1,20) if i<8]
    print(result)result = [str(i).zfill(2) for i in range(1,20) if i<8]
    print(result)
    
    # 等同于
    result2 = []
    for i in range(1,20):
        if i < 8:
            j = str(i).zfill(2)
            result2.append(j)
    print(result2)

    嵌套循环

    语法

    实例

    循环控制语句

    break

    在语句块执行过程中终止循环,并且跳出整个循环。

    for letter in 'Python':  # 第一个实例
        if letter == 'h':
            break
        print('当前字母 :', letter)
    
    
    var = 10  # 第二个实例
    while var > 0:
        print('当前变量值 :', var)
        var = var - 1
        if var == 5:  # 当变量 var 等于 5 时退出循环
            break
    
    n = 1 # 第三个实例
    while 1:  # 循环条件为1必定成立
        print('n:%s'%(n)) # 输出1~10
        n += 1
        if n > 10:  # 当i大于10时跳出循环
            break # 输出1,2,4,5,6,7,8,9,10

    continue

    跳过当前循环的剩余语句,然后继续进行下一轮循环。

    i = 1
    while i < 10:
        i += 1# 意思是i=i+1
        if i % 2 > 0:
            continue # 符合上边的条件时,跳出本次循环,否则执行print
        print('i:%s'%(i))  # 输出双数2、4、6、8、10

    pass

    pass是空语句,是为了保持程序结构的完整性。

    pass不做任何事情,一般用做占位语句。

    pass语句不执行任何操作。语法上需要一个语句,但程序不实际执行任何动作时,可以使用该语句。

    while True:# 让程序一直执行
       pass 
    学而时习之不亦说乎!
  • 相关阅读:
    bzoj1415 NOI2005聪聪和可可
    Tyvj1952 Easy
    poj2096 Collecting Bugs
    COGS 1489玩纸牌
    COGS1487 麻球繁衍
    cf 261B.Maxim and Restaurant
    cf 223B.Two Strings
    cf 609E.Minimum spanning tree for each edge
    cf 187B.AlgoRace
    cf 760B.Frodo and pillows
  • 原文地址:https://www.cnblogs.com/wxinyu/p/14752638.html
Copyright © 2011-2022 走看看