三、python的流程控制

三、python的流程控制

1.顺序结构

python和shell,java等语言都有一定的执行顺序即顺序结构。

python语言在解释器中的执行顺序是:从上到下依次执行,从左到右执行,所以函数或者变量必须先声明后调用。

2.分支选择结构

在python中只有if选择结构,没有java里的switch...case..结构和shell里的case ...;;;....esac结构,并且与java中的用法规则相似,但是语法格式不一样。

当表达式的结果是数据类型里面的布尔型中的true时,执行if后面:的语句,如果是false执行else:或者elif后面的语句,elif之后的表达时的判断原理与上面相似。

2.1 if 选择结构

if express(result is True or False) :
    代码块

2.2 if - else选择结构

if express(result is True or False) :
    代码块
else:
    代码块

2.3 if -elif-else多层嵌套选择结构

if express(result is True or False) :
    代码块
elif express(result is True or False) :
    代码块
elif express(result is True or False) :
    代码块
    .....
else:
    代码块

3.循环结构

在python中,循环结构只有for ...in...结构和while结构,没有像java(普通for循环,增强for循环,while循环,do-while循环)里那么丰富。

3.1 for ... in ...循环

和shell里的用法基本相同

语法:

for variable_name in (List,Tuple,Dictionary or range()):

    代码块

dic = {'123':123,234:126,2:4}
for n in dic:
    print(n)

结果:

123
234
2

li = [1,2,3,4,6]
for n in li:
    print(n,end='')

结果:

12346

tup = (2,5,9,0)
for n in tup:
    print(n,end=',')

结果:2,5,9,0,

接下来说range()对象中的参数,这是创建range类的对象。

下面是官方文档的说明:

class range()  

@overload def __init__(self, stop: int)  Documentation is missing. The following is copied from class range.  
range(stop) -> range object range(start, stop[, step]) -> range object
Return an object that produces a sequence of integers from start (inclusive) to stop (exclusive) by step. range(i, j) produces i, i+1, i+2, ..., j-1. start defaults to 0, and stop is omitted! range(4) produces 0, 1, 2, 3. These are exactly the valid indices for a list of 4 elements. When step is given, it specifies the increment (or decrement).

它里面的参数不能用关键字参数给予赋值,并且值只能是integer。

#反向输出从1-9中以2为步长的数,前两个数表示开始和终止的数,包含左边的数,不包含右边的数,
#最右边的是步长,符号按照前面两个数的关系而定,前小后大为正数,前大后小为负,可以是任意值,表示取值间隔。
for n in range(10,1,-2):
    print(n)

结果是:

8
6
4
2

#输出从0到9的正数
for n in range(10):
    print(n,end='-')

结果:0-1-2-3-4-5-6-7-8-9-

3.2 while 循环

while express(result is True or False) :

     循环体

当后面的表达式的结果是True时执行循环,如果结果为False时结束循环

n = 0
while n < 4:#这里的表达式是关系表达式
    print(n)
#在python中没有“++”和“--”的操作,这是因为底层变量储存的不是值而是内存地址,数据的存储方式是用堆的形式储存
    n+=1

结果是:

1
2
3


3.3 循环控制

python和java中的循环控制关键字或者说语句是的用法规则完全一样,只不过是多了一个pass

3.3.1 break

直接结束该循环。

n = 1
while n < 9:
    print(n,end='p')
    if n == 5:
        #当n为5时直接退出循环
        break
    n+=2

结果是:1p3p5p

3.3.2 continue

只结束本层循环,continue后面的语句不执行

n = 1
while n < 9:
    n+=1
    if n == 5:
        #只不输出5
        continue
    print(n,end='*')

结果:2*3*4*6*7*8*9*

3.3.3 pass 

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

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

Python 语言 pass 语句语法格式如下:

pass

实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*- 

# 输出 Python 的每个字母
for letter in 'Python':
   if letter == 'h':
      pass
      print '这是 pass 块'
   print '当前字母 :', letter

print "Good bye!"

以上实例执行结果:

当前字母 : P
当前字母 : y
当前字母 : t
这是 pass 块
当前字母 : h
当前字母 : o
当前字母 : n
Good bye!

 

posted @ 2017-06-13 23:47  知识的搬运码农  阅读(291)  评论(0编辑  收藏  举报