python流程控制
1.条件判断
Python条件语句是通过一条或者多条语句的执行结果(True或者False)来决定执行的代码块。可以通过如下图的实例简单了解调节语句的执行过程。
Python程序语言制定任何非0和非空(null)值为true,0或者null为false。
python编程中if语句用于控制程序的执行,基本形式为:
if 判断条件: 执行语句…… else: 执行语句……
其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。
else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句。
#!/bin/evn python #-*- coding:utf-8 -*- #Author:Anliu a = 1 while a<5: if(a%2 == 0): print(a,"is even") else: print(a,"is odd") a+=1
if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。
当判断条件为多个值时,可以使用以下形式:
if 判断条件1: 执行语句1…… elif 判断条件2: 执行语句2…… elif 判断条件3: 执行语句3…… else: 执行语句4……
#!/bin/evn python #-*- coding:utf-8 -*- #Author:Anliu num = 5 if num == 3: # 判断num的值 print('boss') elif num == 2: print('user') elif num == 1: print('worker') elif num < 0: # 值小于零时输出 print('error') else: print('roadman') # 条件均不成立时输出
由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。
#!/bin/evn python #-*- coding:utf-8 -*- #Author:Anliu num = 9 if num >= 0 and num <= 10: # 判断值是否在0~10之间 print('hello')# 输出结果: hellonum = 10
if num < 0 or num > 10: # 判断值是否在小于0或大于10
print('hello')
else:
print('undefine')# 输出结果: undefinenum = 8# 判断值是否在05或者1015之间
if (num >= 0 and num <= 5) or (num >= 10 and num <= 15):
print('hello')
else:
print('undefine')
当if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。
2.循环语句
编程语言提供了各种控制结构,允许更复杂的执行路径。
循环语句允许我们执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形式:
Python提供了for循环和while循环(在Python中没有do..while循环):
循环控制语句
循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:
2.1While 循环语句
Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:
while 判断条件:
执行语句……
执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
当判断条件假false时,循环结束。
执行流程图如下:
#!/bin/evn python-- coding:utf-8 --
Author:Anliu
a = 1
while a < 10:
print(a)
a+=2
#!/bin/evn python-- coding:utf-8 --
Author:Anliu
numbers = [12,37,5,42,8,3]
even = []
odd = []
while len(numbers) > 0:
number = numbers.pop()
if(number % 2 == 0):
even.append(number)
else:
odd.append(number)
print(even,"\n",odd)
#!/bin/evn python-- coding:utf-8 --
Author:Anliu
count = 0
while(count < 9):
print("this is a test:",count)
count = count +1
print("good bye")
while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环,此外"判断条件"还可以是个常值,表示循环必定成立,具体用法如下:
#!/bin/evn python-- coding:utf-8 --
Author:Anliu
i = 1
while i < 10:
i+=1
if i%2 >0:
continue
print(i)
#!/bin/evn python-- coding:utf-8 --
Author:Anliu
i = 1while 1:
print(i)
i+=1
if i > 10:
break
无限循环
如果条件判断语句永远为 true,循环将会无限的执行下去,如下实例:
#!/bin/evn python-- coding:utf-8 --
Author:Anliu
var = 1
while var == 1: # 该条件永远为true,循环将无限执行下去
num = input("Enter a number :")
print("You entered: ", num)
print("Good bye!")
循环使用 else 语句
在 python 中,while … else 在循环条件为 false 时执行 else 语句块:
#!/bin/evn python-- coding:utf-8 --
Author:Anliu
count = 0
while count < 5:
print(count,"is less than 5")
count = count + 1
else:
print(count,"is not less than 5 ")
2.2 for循环语句
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
语法:
for循环的语法格式如下:
for iterating_var in sequence:
statements(s)
#!/bin/evn python-- coding:utf-8 --
Author:Anliu
for letter in 'python':
print("当前字母:",letter)fruits = ['banana','apple','mange']
for fruite in fruits:
print("当前水果",fruite)
print("Good bye..")
通过序列索引迭代
另外一种执行循环的遍历方式是通过索引,如下实例:
#!/bin/evn python-- coding:utf-8 --
Author:Anliu
fruits = ['banana','apple','mango']
for index in range(len(fruits)):
print("当前水果",fruits[index])print("Good bye")
以上实例我们使用了内置函数 len() 和 range(),函数 len() 返回列表的长度,即元素的个数。 range返回一个序列的数。
循环使用 else 语句
在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
#!/bin/evn python-- coding:utf-8 --
Author:Anliu
for num in range(10,20):
for i in range(2,num):
if num%i == 0:
j = num/i
print("%d 等于 %d * %d"%(num,i,j))
break
else:
print(num,"是一个质数")
2.3 循环嵌套
Python 语言允许在一个循环体里面嵌入另一个循环。
Python for 循环嵌套语法:
for iterating_var in sequence:
for iterating_var in sequence:
statements(s)
statements(s)
你可以在循环体内嵌入其他的循环体,如在while循环中可以嵌入for循环, 反之,你可以在for循环中嵌入while循环。
#!/bin/evn python-- coding:utf-8 --
Author:Anliu
i = 2
while (i < 100):
j = 2
while (j<=(i/j)):
if not (i % j): break
j = j + 1
if (j>i/j):print(i,"是素数")
i = i + 1
print("Good bye!")
3 循环控制语句
3.1 break 语句
Python break语句,就像在C语言中,打破了最小封闭for或while循环。
break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。
break语句用在while和for循环中。
如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。
Python语言 break 语句语法:
#!/bin/evn python-- coding:utf-8 --
Author:Anliu
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
breakprint("Good bye!")
3.2 continue 语句
continue 语句跳出本次循环,而break跳出整个循环。
continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
continue语句用在while和for循环中。
#!/bin/evn python-- coding:utf-8 --
Author:Anliu
for letter in 'Python': # 第一个实例
if letter == 'h':
continue
print('当前字母 :', letter)var = 10 # 第二个实例
while var > 0:
var = var - 1
if var == 5:
continue
print('当前变量值 :', var)
print("Good bye!")
3.3 pass 语句
Python pass 是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句。
#!/bin/evn python-- coding:utf-8 --
Author:Anliu
输出 Python 的每个字母
for letter in 'Python':
if letter == 'h':
pass
print('这是 pass 块')
print('当前字母 :', letter)
print("Good bye!")