首页>文档>Python>【Python 入门(二)】 条件与循环

【Python 入门(二)】 条件与循环

条件与循环:if、while、for

计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。本篇将简述 Python 条件与循环。

一、条件 if

格式

  1. if 判断条件:
  2. 执行语句……
  3. else
  4. 执行语句……

当 if 有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。


由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。

  1. if 判断条件1
  2. 执行语句1……
  3. elif 判断条件2
  4. 执行语句2……
  5. elif 判断条件3
  6. 执行语句3……
  7. else
  8. 执行语句4……
  1. In [1]: num = 5
  2. if num == 3: # 判断num的值
  3. print('3')
  4. elif num == 2:
  5. print('2')
  6. elif num == 1:
  7. print('1')
  8. elif num < 0: # 值小于0时输出
  9. print('error')
  10. else:
  11. print('roadman') # 条件均不成立时输出
  12. Out[1]: roadman

1.1 and、or

对 or 而言,Python 会由左到右求算操作对象,然后返回第一个为真的操作对象。

Python 会在其找到的第一个真值操作数的地方停止,通常叫短路计算。

  1. In [2]: 2 < 3, 3 < 2
  2. Out[2]: (True, False)
  1. In [3]: 2 or 3, 3 or 2
  2. Out[3]: (2, 3)

如果左边的操作数为假(空对象),Python 只会计算右边的操作数并将其返回

  1. In [4]: [] or 3
  2. Out[4]: 3
  1. In [5]: [] or {}
  2. Out[5]: {}

and 会停在第一个为假的对象上

  1. In [6]: 2 and 3, 3 and 2
  2. Out[6]: (3, 2)
  1. In [7]: [] and {} # 空list本身等同于False
  2. Out[7]: []
  1. In [8]: # 由于一个空 list 本身等同于False,所以可以直接:
  2. mylist = []
  3. if mylist:
  4. # Do something with my list
  5. pass
  6. else:
  7. # The list is empty
  8. pass

1.2 神奇的布尔值

从一个固定大小的集合中选择非空的对象,只要将其串在一个 or 表达式即可

  1. In [9]: X = 'A' or 'B' or 'C' or None # 会把X设为A、B以及C中第一个非空(为真)的对象,或者所有对象都为空就设为None
  1. In [10]:X = 'A' or default # 如果A为真(或非空)的话将X设置为A,否则,将X设置为default
  1. In [ ]: if f1() or f2():... # 如果f1返回真值(非空),Python将不再执行f2,若要保证两个函数都执行,需要在or之前调用用他们,如
  2. tmp1, tmp2 = f1(), f2()
  3. if tmp1 or tmp2:...

二、循环

稍后会介绍更加奇特的迭代工具,如生成器、filter 和 reduce。现在先从最基础的学起。

Python 提供了 for 循环和 while 循环(在 Python 中没有 do…while 循环),for 循环一般比 while 计数器循环运行得更快

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

continue 语句,在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。

pass 语句,是空语句,是为了保持程序结构的完整性。不做任何事情,一般用做占位语句。

循环 else 块,只有当循环正常离开时才会执行(也就是没有碰到 break 语句)

2.1 while

  1. In [11]:count = 0
  2. while (count < 9):
  3. print ('The count is:', count)
  4. count = count + 1
  5. Out[11]:The count is: 0
  6. The count is: 1
  7. The count is: 2
  8. The count is: 3
  9. The count is: 4
  10. The count is: 5
  11. The count is: 6
  12. The count is: 7
  13. The count is: 8

2.2 for

是一个通用的序列迭代器,可以遍历任何有序的序列对象内的元素。可用于字符串、列表、元组、其他内置可迭代对象等

  1. In [ ]: for interating_var in sequence:
  2. statements(s)
  1. In [12]:for letter in 'Python': # 第一个实例
  2. print('当前字母:', leter)
  3. fruits = ['banana', 'apple', 'mamgo']
  4. for fruit in fruits: # 第二个实例
  5. print('当前字母:', fruit)
  6. Out[12]:当前字母 : P
  7. 当前字母 : y
  8. 当前字母 : t
  9. 当前字母 : h
  10. 当前字母 : o
  11. 当前字母 : n
  12. 当前字母 : banana
  13. 当前字母 : apple
  14. 当前字母 : mango
  1. In [13]:T = [(1,2), (3,4), (5,6)]
  2. for (a,b) in T:
  3. print(a,b)
  4. Out[13]:1 2
  5. 3 4
  6. 5 6
  1. In [14]:D = {'a':1, 'b':2, 'c':3}
  2. for key in D:
  3. print(key, '=>', D[key])
  4. Out[14]:a => 1
  5. c => 3
  6. b => 2
  1. In [15]:D.items()
  2. Out[15]:dict_items([('a', 1), ('c', 3), ('b', 2)])
  1. In [16]:for (key, value) in D.items():
  2. print(key, '=>', value)
  3. Out[16]:a => 1
  4. c => 3
  5. b => 2

嵌套的结构可以自动解包

  1. In [17]:for ((a,b), c) in [((1,2), 3), ((4,5), 6)]: print(a,b,c)
  2. Out[17]:1 2 3
  3. 4 5 6

2.3 break

  1. In [18]:for letter in 'Python': # First Example
  2. if letter == 'h':
  3. break
  4. print('Current Letter:', letter)
  5. Out[18]:Current Letter : P
  6. Current Letter : y
  7. Current Letter : t

2.4 continue

  1. In [19]:for letter in 'Python': # 第一个实例
  2. if letter == 'h':
  3. continue
  4. print('当前字母:', letter)
  5. Out[19]:当前字母 : P
  6. 当前字母 : y
  7. 当前字母 : t
  8. 当前字母 : o
  9. 当前字母 : n

#2.4 pass

  1. In [20]:for letter in 'Python':
  2. if letter == 'h':
  3. pass
  4. print('这是 pass 块')
  5. print('当前字母:', letter)
  6. Out[20]:当前字母 : P
  7. 当前字母 : y
  8. 当前字母 : t
  9. 这是 pass
  10. 当前字母 : h
  11. 当前字母 : o
  12. 当前字母 : n
0 条回复 A文章作者 M管理员
欢迎您,新朋友,感谢参与互动!
    暂无讨论,说说你的看法吧