1. 程式人生 > 其它 >Python基礎之流程控制2

Python基礎之流程控制2

目錄

一、while+continue

二、while+else

三、死迴圈

四、for迴圈

五、range關鍵字

六、for+break

七、for+continue

八、for+else

九、for迴圈的巢狀使用

一、while+continue

  continue:跳過本次迴圈,開始下一次迴圈

  # 列印從1-10
  count = 1
  while count < 11:
    print(count)
    count += 1


  # continue 跳過本次迴圈,執行下一次迴圈;continue 會讓迴圈體程式碼直接回到條件判斷處重新判斷

  # 列印從1-10,跳過5
  # 定義起始變數
  count = 1
  # 迴圈
  while count < 11:
  # 當變數等於5
    if count == 5:
      count += 1
  # 直接跳過本次迴圈,開始下一次迴圈
      continue
  # 列印變數值
    print(count)
  # 變數值自增1
    count += 1

二、while+else

  else:while迴圈沒有被人為中斷(break)的情況下,會執行else

  # while+else:
    count = 1
    while count <6:
      print(count)
      count += 1
    else:
      print('嘿嘿嘿')
      count += 1

  # 被人為中斷的情況下不執行else
  count = 1
  while count < 6:
    if count == 4:
      break
    print(count)
    count += 1

  else:
    print('嘿嘿嘿')

三、死迴圈

  會讓CPU極度繁忙甚至崩潰,一直迴圈不會停下

    while True:
     print(1)

四、for迴圈

  for迴圈能實現的功能,while迴圈都能做到,但是for迴圈更簡潔,並且在迴圈取值的問題上更方便。

  for迴圈的語法結構:for 變數名 in 可迭代物件:#字串、列表、字典、元組、集合

  for 迴圈體程式碼

  ps:如果沒有合適的變數名,可以使用i/j/k/v/item等等。

  1.for迴圈列表
  name_list = ['jason', 'tony', 'kevin', 'lili', 'body']
  # 用while迴圈實現
  count = 0
  while count < 5:
    print(name_list[count])
    count += 1

  # 用for迴圈實現
  for name in name_list:
    print(name)

  2.for迴圈字串
  for i in 'hello':
    print(i)


  3.for迴圈字典:預設只能拿到K值
  d = {'username': 'jason', 'age': '18', 'height': '189'}
  for k in d:
    print(k, d[k])

  

五、range關鍵字

  # 第一種:一個引數,從0開始,顧頭不顧尾
  for m in range(5):
    print(m)

  # 第二種:兩個引數,自定義起始位置,顧頭不顧尾
  for m in range(5, 8):
    print(m)

  # 第三種:三個引數,自定義起始位置,顧頭不顧尾,第三個引數是控制等差值
  for m in range(2, 10, 2):
    print(m)

  # 在不同版本的直譯器中,range本質不同
  在python2.X版本中,range會直接生成列表,xrange是一個迭代器(老母豬)
  在python3.X版本中,range是個迭代器(老母豬)
  '''可以理解為python2.X版本的xrange就是python3.X版本的range'''


  # 拓展知識 : %s:佔位符
  base_url = "https://movie.douban.com/top250?start=%s&filter="
  for i in range(0, 250, 25):
    print(base_url % i) 

六、for+break

break功能也一樣用於結束本層迴圈

  for m in range(20):
    if m == 3:
      break
    print(m)

七、for+continue

  continue功能也一樣用於結束本層迴圈執行下一層迴圈

  for m in range(6):
    if m == 4:
      continue
    print(m)

八、for+else

  else也一樣是for迴圈結束的情況下才會執行,如果被人為打斷一樣也不會執行

  for m in range(4):
    print(m)
  else:
    print('嘿嘿')

  # 當迴圈被人為中斷,則不執行else
  for m in range(4):
    if m == 2:
      break
    print(m)
  else:
    print('嘿嘿')

九、for迴圈的巢狀使用

  for i in range(3):
    for j in range(5):
      print("*", end='')
    print()


  # 列印九九乘法表
  for i in range(1, 10):
    for j in range(1, i+1):
      print('%s*%s=%s' % (j, i, j*i), end=' ')
    print()