循环

5.1 while循环

  1. 说明:关键字 while ,判断条件为真就一直执行
  2. 例子:
    1:  name = ''
    
    2:  while not name.strip():
    
    3:      name = input("Please input your name:")
    
    4:  print("Hello,", name)

5.2 for循环

  1. 说明:能够用于迭代集合中的每一个元素;
  2. 例子:
    1:  #遍历列表中的各个元素
    
     2:  >>> x = [1,2,3,4,5]
    
     3:  >>> for number in x:
    
     4:          print (number)
    
     5:  1
    
     6:  2
    
     7:  3
    
     8:  4
    
     9:  5
    
    10:  >>> 
    
    11:  
    
    12:  #使用内建函数range
    
    13:  >>> x = range(10)
    
    14:  >>> x
    
    15:  range(0, 10)
    
    16:  >>> for number in x:
    
    17:          print(number)
    
    18:  0
    
    19:  1
    
    20:  2
    
    21:  3
    
    22:  4
    
    23:  5
    
    24:  6
    
    25:  7
    
    26:  8
    
    27:  9
    
    28:  >>> 
    
    29:

5.3 循环遍历字典元素

  1. 说明:经过keys遍历字典,或者经过values;
  2. 例子:
    1:  x = {'a':'1', 'b':'2', 'c':'3'}
    
    2:  for key in x.keys():
    
    3:      print (key, x[key])
    
    4:  
    
    5:  for val in x.values():
    
    6:      print(val)
    
    7:

5.4 一些迭代工具

 

5.4.1 并行迭代

  1. 说明:zip内置函数能够将多个序列“压缩”成一个元组的序列;
  2. 例子:
    1:  >>> x = list(range(0,5))
    
     2:  >>> y = list(range(5,10))
    
     3:  >>> z = list(range(10, 15))
    
     4:  >>> z
    
     5:  [10, 11, 12, 13, 14]
    
     6:  >>> y
    
     7:  [5, 6, 7, 8, 9]
    
     8:  >>> x
    
     9:  [0, 1, 2, 3, 4]
    
    10:  
    
    11:  >>> zipped = zip(x, y, z)
    
    12:  >>> list(zipped)
    
    13:  [(0, 5, 10), (1, 6, 11), (2, 7, 12), (3, 8, 13), (4, 9, 14)]
    
    14:  >>> 
    
    15:

5.4.2 编号迭代

  1. 说明:使用内建函数enumerate来进行迭代操做;
  2. 例子:
    1:  >>> mylist = ['12312', '12ab', '123sa', '1231s']
    
     2:  >>> for index, string in enumerate(mylist):
    
     3:          print(index, string)
    
     4:  
    
     5:  
    
     6:  0 12312
    
     7:  1 12ab
    
     8:  2 123sa
    
     9:  3 1231s
    
    10:  >>> 
    
    11:

5.4.3 翻转和排序迭代

  1. 说明:内建函数reversed用于翻转序列,内建函数sorted用于对序列排 序,他们都是返回操做后的序列,不对原序列进行修改;
  2. 例子:
    1:  >>> data = [1,67,1,13,14,61,2]
    
    2:  >>> sorted(data)
    
    3:  [1, 1, 2, 13, 14, 61, 67]
    
    4:  >>> list(reversed(data))
    
    5:  [2, 61, 14, 13, 1, 67, 1]
    
    6:  >>> 
    
    7:

5.5 跳出循环

 

5.5.1 break

  1. 说明:符合条件时直接中断循环;
  2. 例子:
    1:  >>> import math
    
    2:  >>>for x in range(99, 0, -1):
    
    3:  >>>    root = math.sqrt(x)
    
    4:  >>>    if root == int(root):
    
    5:  >>>        print ('Max number is:', x)
    
    6:  >>>        break
    
    7:  
    
    8:  Max number is 81
    
    9:

5.5.2 continue

  1. 说明:结束当前循环,并跳到下一轮循环开始;
  2. 例子:
    1:  #一个打印偶数的例子,不加else 语句,程序也能正确执行
    
     2:  >>> for x in range(10):
    
     3:          if x%2 == 0:
    
     4:                  print(x)
    
     5:          else:
    
     6:                  continue
    
     7:  
    
     8:  
    
     9:  0
    
    10:  2
    
    11:  4
    
    12:  6
    
    13:  8
    
    14:  >>> 
    
    15:

5.5.3 while True/break

  1. 说明:while True部分实现了一个永不中止的循环,由内部的if判断语 句控制跳出循环;
  2. 例子:
    1:  while True:
    
     2:          word = input("Please enter a word:")
    
     3:          if not word:
    
     4:                  break
    
     5:          print("You input:" , word)
    
     6:  
    
     7:  Please enter a word:TEst
    
     8:  You input: TEst
    
     9:  Please enter a word:ls
    
    10:  You input: ls
    
    11:  Please enter a word:
    
    12:  >>> 
    
    13:

5.5.4 循环中的else子句

  1. 说明:else子句能够用于判断循环操做是否始终没有执行break操做。
  2. 例子:
    1:   #设置一个奇数序列,判断里面是否是有偶数(一个蛋疼的程序,哈哈)
    
     2:  x = list(range(1,100,2))
    
     3:  for val in x:
    
     4:      if val%2 == 0:
    
     5:          print (x)
    
     6:          break;
    
     7:  else:
    
     8:      print("Did not break!")
    
     9:  #执行结果
    
    10:  Did not break!
    
    11:  
相关文章
相关标签/搜索