python 流程控制

Python条件语句 

  python中的条件语句和其他语言中的条件语句一样都是通过if...else或者if...elif...else这样的方式实现的,他们的实现方式是通过一条或者多条的执行结果(真(True)或者假(False))来决定执行的代码块的。

  下面这张图简单的描述了一下执行的流程:

  

  python中指定任何非0或者非空(null)的值为True,指定任何0或者空(null)的值为False

python在代码中if判断语句的执行方式或者说是if的语法形式为:

if 需要判断的条件:   #这里需要注意的是一定不要忘记':'号
    执行的代码块1
else:
    执行的代码块2

ps:当if后面的条件判断为真(True)时(非0或者非空)执行代码块1的代码(这里的代码可以是多行,用缩进区分范围),当if后面的条件判断为假(False)时(0或者空)执行代码块2       中的代码(这里的代码也可以是多行,用缩进区分范围)

下面演示一下if条件语句的实例:

name = ('brian')
#定义一个name的变量,值为brian
username = input('Please input your name:')
#使用input的方法让用户输入自己的名字
if username == name:      #使用if条件语句,这里的条件就是用户输入的东西是否和我们定义的name变量相等
    print('input Correct') #如果是相等的会打印输出 输入正确的提示
else:                       #else是可选的语句,如果用户输入的和我们定义的name变量不相等
    print('input error')    #如果不相等就会打印输出 输入错误的提示
#执行的结果是:当我们输入的是brian的时候。打印的是 input Correct
#            当我们输入其他的东西的时候。打印的是 input error

if的条件语句还可以用在比较运算符中(<  > ==  !=  <=   >==)表示其关系

  具体的实现方式是:

if 条件判断1:
    执行代码1
    ......
elif 条件判断2:
    执行代码2
    ......
elif 条件判断3:
    执行代码3
    ......
else:
    执行代码4
    ......

演示实例:

num = 66     
if num == 33:            # 判断num的值
    print ('boss')        
elif num == 22:
    print ('user')
elif num == 11:
    print ('worker')
elif num < 0:           # 值小于零时输出
    print ('error')
else:
    print ('roadman')     # 条件均不成立时输出

if条件判断也可以和逻辑运算符结合使用,和and配合使用当判断两个条件同时成立的时候表示判断成功,和or配合使用当一个条件判断成功的时候表示判断成功

演示实例:

number = 66                 #定义number的值
if number >= 0 and number <= 100:       #判断是否大于等于0与是否小于等于100
    print('yes')                        #上面的判断都为真打印yes
else:                                   #否则
    print('no')                         #打印no

number_one = 88               #定义number_one的值
if number_one < 1 or number_one > 100:    #判断是否小于1或者大于100
    print('yes')                           #上面的条件有一个为真打印yes
else:                                       #否则
    print('no')                             #打印no

number_two = 168                #定义number_two的值
if (number_two >= 0 and number_two <= 100) or (number_two >= 100 and number_two <= 200):    #判断是否大于等于0与小于等于100,或者大于等于100与小于等于200
    #判断是否在0~100或者100~200之间
    print('yes')                #条件一个成立打印yes
else:                           #否则
    print('no')                 #打印no

在python中if...elif...else语句用的很广泛,也可以和其他的运算符一起结合使用  

Python 循环语句: 

  程序在运行的时候都会按照一定的顺序执行,编程语言都会提供很多中控制语句,来允许更为复杂的程序的运行,循环语句允许我们执行一个或者多个语句组多次

  下面我们具体的看一下循环语句的执行的流程图:

 

在python中没有do....while循环,它提供给了一下几种循环的类型在循环中的控制语句:

循环类型:

循环中的控制语句:(使用循环控制语句可以修改代码的执行顺序)

下面我们就开始逐一的介绍一下每个循环语句和循环控制语句: 

while循环语句: 

  while语句的表现形式是:

while 条件判断:
    执行语句......

  while循环的流程图:

 

 

 执行语句可以是单个语句或者语句块,判断条件可以是任何的表达式(任何非零非空(null)的值均为True)

演示实例:

count = 0       #定义变量count的值为0
while (count < 6):  #如果count的值小于6,就执行下面的循环语句
    print('number:',count)  #将得到的数字逐一打印出来
    count += 1              #每执行一次循环count都加1
print('exit')               #循环结束打印exit

以上代码输出的结果是:

number: 0
number: 1
number: 2
number: 3
exit

while 语句时还有另外两个重要的命令 break,continue来跳过循环,break则是用于退出循环,continue 用于跳过该次循环

此外"判断条件"还可以是个常值,表示循环必定成立

演示实例:

break控制语句的用法

i = 1
while 1:            # 循环条件为1必定成立
    print(i)         # 输出1~10
    i += 1
    if i > 10:     # 当i大于10时跳出循环
        break
#最后输出的结果是:1,2,3,4,5,6,7,8,9,10

continue控制语句的用法

i = 1
while i < 10:
    i += 1
    if i%2 > 0:     # 非双数时跳过输出
        continue
    print(i)         # 输出双数2、4、6、8、10
#最后输出的结果是:2,4,6,8,10

无限循环:当while的条件为True时,程序一直被执行

演示实例:

num_one = 1
while num_one == 1: #该条件永远为True,程序会无限执行下去
    print('yes')

这段代码输出的结果肯定是无限的循环yes

演示实例2:

num = 1
while num == 1: #该条件永远为True,程序会无限执行下去
    num1 = input('Please input:') #请用户输入
    num2 = num1     #将用户重新输入的数字重新赋值
    print('yes',num2) #打印yes和输入的数字

这段代码的输出结果是,你输入一个数字,回车后就会被打印出来,程序是会一直循环下去的

Please input:1
yes 1
Please input:2
yes 2
Please input:3
yes 3
Please input:4
yes 4
Please input:5
yes 5
Please input:6
yes 6
。。。。。。

退出无限循环的方法是:Ctrl + C

while循环也能和else同时使用,在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。

count = 0
while (count < 6):
    print(count,'is less then 6')
    count += 1
else:
    print(count,'is not less then 6')

代码输出的结果是:

0 is less then 6
1 is less then 6
2 is less then 6
3 is less then 6
4 is less then 6
5 is less then 6
6 is not less then 6

for 循环语句:  

  for循环可以遍历任何列表的项目

for循环语句的表现形式:

for iterating_var in sequence:
   statements(s)

for循环语句流程图:

演示实例:

for i in 'brian_zhu':
    print('当前字母:',i)

list_one = ['jack','candy','ll']
for name in list_one:
    print('当前名字:',name)

代码运行输出的结果是:

当前字母: b
当前字母: r
当前字母: i
当前字母: a
当前字母: n
当前字母: _
当前字母: z
当前字母: h
当前字母: u
当前名字: jack
当前名字: candy
当前名字: ll

for循环还可以通过索引进行迭代:

演示实例:

list_one = ['jack','candy','ll']
for name in range(len(list_one)):
    print('当前名字:',list_one[name])

list_two = ['jack','candy','ll']
for name1 in range(len(list_two)):
    print('索引:',name1)

代码运行输出的结果是:

当前名字: jack
当前名字: candy
当前名字: ll
索引: 0
索引: 1
索引: 2

以上实例我们使用了内置函数 len() 和 range(),函数 len() 返回列表的长度,即元素的个数。 range返回一个序列的数

for循环配合else语句

演示实例:

for num in range(1,10):  # 迭代 1 到 10 之间的数字
   for i in range(2,num): # 根据因子迭代
      if num%i == 0:      # 确定第一个因子
         j=num/i          # 计算第二个因子
         print ('%d 等于 %d * %d' % (num,i,j))
         break            # 跳出当前循环
   else:                  # 循环的 else 部分
      print (num, '是一个质数')

代码的执行结果是:

1 是一个质数
2 是一个质数
3 是一个质数
4 等于 2 * 2
5 是一个质数
6 等于 2 * 3
7 是一个质数
8 等于 2 * 4
9 等于 3 * 3

Python嵌套循环:  

  python允许在一个循环了嵌套多个循环

你可以在循环体内嵌入其他的循环体,如在while循环中可以嵌入for循环, 反之,你可以在for循环中嵌入while循环。

python中的for嵌套循环语法:

for iterating_var in sequence:
   for iterating_var in sequence:
      statements(s)
   statements(s)

python中while循环语法:

while expression:
   while expression:
      statement(s)
   statement(s)

演示实例:

以下实例使用了嵌套循环输出2~100之间的素数

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

输出的结果是:

2  是素数
3  是素数
5  是素数
7  是素数
11  是素数
13  是素数
17  是素数
19  是素数
23  是素数
29  是素数
31  是素数
37  是素数
41  是素数
43  是素数
47  是素数
53  是素数
59  是素数
61  是素数
67  是素数
71  是素数
73  是素数
79  是素数
83  是素数
89  是素数
97  是素数

在循环语句中有以下几种循环控制语句来控制程序的运行顺序:

现在我们就开始用实例来介绍说明这三种控制语句:

break控制语句: 

Python break语句,就像在C语言中,打破了最小封闭for或while循环。

break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。

break语句用在while和for循环中。

如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码

break流程图:

演示实例:

for name in 'Brian':    #for循环遍历Brian字符串
    if name == 'a':     #如果遍历name的时候遍历到==a的时候
        break           #跳出循环
    print('当前字母:',name)     #打印遍历的字母

以上代码的打印结果是:

当前字母: B
当前字母: r
当前字母: i
number = 10
while number > 0:
    print('当前数字:',number)
    number -= 1
    if number == 1:
        break
print('exit')

以上代码的打印结果是:

当前数字: 10
当前数字: 9
当前数字: 8
当前数字: 7
当前数字: 6
当前数字: 5
当前数字: 4
当前数字: 3
当前数字: 2
exit

python中的continue控制语句: 

Python continue 语句跳出本次循环,而break跳出整个循环。

continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。

continue语句用在while和for循环中

流程图:

演示实例:

for name in 'Brian':
    if name == 'a':
        continue
    print('当前字母:',name)

代码运行结果是:

当前字母: B
当前字母: r
当前字母: i
当前字母: n
number = 6
while number > 0:
    number -= 1
    if number == 6:
        continue
    print('当前数字:',number)
print('exit')

代码运行结果:

当前数字: 5
当前数字: 4
当前数字: 3
当前数字: 2
当前数字: 1
当前数字: 0
exit

Python pass控制语句: 

Python pass是空语句,是为了保持程序结构的完整性。

pass 不做任何事情,一般用做占位语句。

演示实例:

for name in 'Brian':
    if name == 'a':
        pass
        print('pass控制语句块')
    print('当前字母:',name)

代码运行结果是:

当前字母: B
当前字母: r
当前字母: i
pass控制语句块
当前字母: a
当前字母: n
posted @ 2017-01-13 14:26  Brian_Zhu  阅读(232)  评论(0)    收藏  举报