Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
可以通过下图来简单了解条件语句的执行过程
Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。
Python 编程中 if 语句用于控制程序的执行,基本形式为:
- if 判断条件:
执行语句……- else:
执行语句……
其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。
else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句。
例子:
# -*- coding: UTF-8 -*-# 例1:if 基本用法a = Falsename = 'luck'if name == 'python': # 判断变量是否为 pythona = True # 条件成立时设置标志为真print ('welcome boss') # 并输出欢迎信息else:print (name) # 条件不成立时输出变量名称
输出结果为:
luck # 输出结果
if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。
当判断条件为多个值时,可以使用以下形式:
- if 判断条件1:
执行语句1……- elif 判断条件2:
执行语句2……- elif 判断条件3:
执行语句3……- else:
执行语句4……
例:
# -*- coding: UTF-8 -*-# 例2:elif用法num = 5if num == 3: # 判断num的值print ('boss')elif num == 2:print ('user')elif num == 1:print ('worker')elif num < 0: # 值小于零时输出print ('error')else:print ('others') # 条件均不成立时输出
输出结果为:
others # 输出结果
由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。
例:
# -*- coding: UTF-8 -*-# 例3:if语句多个条件num = 9if num >= 0 and num <= 10: # 判断值是否在0~10之间print ('hello')# 输出结果: hellonum = 10if num < 0 or num > 10: # 判断值是否在小于0或大于10print ('hello')else:print ('no')# 输出结果: nonum = 8# 判断值是否在0~5或者10~15之间if (num >= 0 and num <= 5) or (num >= 10 and num <= 15):print ('hello')else:print ('error')# 输出结果: error
当if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。
编程语言提供了各种控制结构,允许更复杂的执行路径。
循环语句允许我们执行一个语句或语句组多次。
Python提供了for循环和while循环
while循环 在给定的判断条件为 true 时执行循环体,否则退出循环体。
for循环 在给定的迭代对象中重复执行语句
嵌套循环 你可以在while循环体中嵌套for循环
Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:
while 判断条件:
执行语句……
执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
当判断条件假false时,循环结束。
count = 0while (count < 9):print ('The count is:', count)count = count + 1print ("Good bye!")
输出结果:
The count is: 0The count is: 1The count is: 2The count is: 3The count is: 4The count is: 5The count is: 6The count is: 7The count is: 8Good bye!
while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环,此外"判断条件"还可以是个常值,表示循环必定成立,具体用法如下:
# continue 和 break 用法i = 1while i < 10:i += 1if i%2 > 0: # 非双数时跳过输出continueprint (i) # 输出双数2、4、6、8、10i = 1while 1: # 循环条件为1必定成立print (i) # 输出1~10i += 1if i > 10: # 当i大于10时跳出循环break
如果条件判断语句永远为 true,循环将会无限的执行下去,如下实例:
#!/usr/bin/python# -*- coding: UTF-8 -*-v = 1while v == 1 : # 该条件永远为true,循环将无限执行下去num = raw_input("Enter a number :")print ("You entered: ", num)print ("Good bye!")
以上实例输出结果:
Enter a number :20You entered: 20Enter a number :29You entered: 29Enter a number :3You entered: 3Enter a number between :Traceback (most recent call last):File "test.py", line 5, in <module>num = raw_input("Enter a number :")KeyboardInterrupt
注意:无限循环可以通过CTRL+C 来中断循环。
在 python 中,while … else 在循环条件为 false 时执行 else 语句块:
实例
#!/usr/bin/pythonc = 0while c < 5:print (c, " 小于 5")c = c + 1else:print (c, " 小于 5")
以上实例输出结果为:
0 小于 51 小于 52 小于 53 小于 54 小于 55 小于 5
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
for循环的语法格式如下:
for ... in ... :~~~
例:
#!/usr/bin/python# -*- coding: UTF-8 -*-for letter in 'Python': # 第一个实例print ('当前字母 :', letter)fruits = ['banana', 'apple', 'mango']for fruit in fruits: # 第二个实例print ('当前水果 :', fruit)print ("Good bye!")
Python 语言允许在一个循环体里面嵌入另一个循环。
语法形式:
for ··· in ····:for ··· in ···:······while ···:while ···:······
你可以在循环体内嵌入其他的循环体,如在while循环中可以嵌入for循环, 反之,你可以在for循环中嵌入while循环。
Python break语句,就像在C语言中,打破了最小封闭for或while循环。
break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。
break语句用在while和for循环中。
如果使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。
跳出本次循环,而break跳出整个循环。
continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
continue语句用在while和for循环中。
例:
#!/usr/bin/python# -*- coding: UTF-8 -*-for letter in 'Python': # 第一个实例if letter == 'h':continueprint ('当前字母 :', letter)v = 10 # 第二个实例while v > 0:v = v -1if v == 5:continueprint ('当前变量值 :', v)print ("Good bye!")
结果
当前字母 : P当前字母 : y当前字母 : t当前字母 : o当前字母 : n当前变量值 : 9当前变量值 : 8当前变量值 : 7当前变量值 : 6当前变量值 : 4当前变量值 : 3当前变量值 : 2当前变量值 : 1当前变量值 : 0Good bye!