python3从零学习

python3从零学习-4.4、程序控制语句

2020-04-20  本文已影响0人  山海皆可平z

程序控制语句就是控制程序执行流程的作用。这个好比走路,就像走到岔路口,我们需要决定往哪个路口继续走,还是回去。这个程序控制语句就是起到决定程序运行路径的。

条件语句

if语句

if 判断条件:

    statement

这里的判断条件为真,才执行statement。这个判断条件可以是一个表达式,可以是and/or/not实现的多重判断条件。

a = 1

if a>0:

    print(‘if语句条件为真,执行这里’)    # a = 1就会执行这句.如果a = 0,那么这句就不会执行。

# 判断条件还可以是多重判断

flag = False

if not flag and (a > 0):

    print(‘if语句,多重判断条件为真,执行这里’)

else语句

与if语句搭配使用的else语句,如果if语句的表达式的结果为假,那么执行else语句后的代码。

If 判断条件:

    statement1

else:

    statement2

如果if判断条件为真,那么执行statement1.

如果if判断条件为假,那么执行statement2.

a = 0 

if a > 0:

    print(‘a>0,执行这里')

else:

    print(‘a<=0,执行这里')

避免“悬挂else”

python使用缩进而不是用大括号来标记代码的边界,不仅帮助强化了代码的正确性,而且还暗中帮助程序员避免了语法上正确的代码中存在潜在的问题。其中一个问题就是臭名昭著的“悬挂else”问题,一种语义错觉。

下面是一段C语言的代码例子,来说明“悬挂else”问题。

if (x == 0)

    if (y == 0)

        error();

else{

    z = x + y;

    f(&z);

}

# 此段代码,本意是让第一个if与else配对,但是实际else是跟第二个if配对了,因为C语言的规则就是跟最近的if配对,所以这里引起了问题。

# 正确的做法是把第二个if语句全部用大括号括起来。

# 因为python是用缩进来标记代码边界,所以缩进就控制了代码组的范围,所以python能天然的避免这个“悬挂else”问题。

elif语句

elif是python的else if语句,它检查多个表达式是否为真,并在为真时执行特定的代码块中的代码。和else一样,elif声明也是可选的,然后不同的是,if语句后最多只能有一个else语句,但可以有任意数量的elif语句。

if 判断条件1:

    statement1

elif 判断条件2:

    statement2

          .

          .

elif 判断条件N:

    statementN

else:

    statement(N+1)

因为python没有swtich/case语句,所以这个elif语句用来模拟它。

条件表达式(即“三元操作符”)

c/c++语法中有这样的表达式:C?X:Y,这个被称为三元操作符。C是条件表达式;X是C为True时的结果,Y是C为False时的结果。

python在2.5版本中也加入了类似的语法:X if C else Y。  这个更pythonic化,更简单明了。

X = 0

Y = 1

Z = X if X > Y else Y

print(Z)

# 输出结果:1 

# 分析: 表达式X > Y 为False,所以Z = Y ,Z的值为1.

循环语句

while语句

事实上它是一个条件循环语句,与if声明相比,如果if后的条件为真,就会执行一次相应的代码块。而while中的代码块会一直循环执行,直到循环条件不再为真。

while 判断条件:

    statement

count = 10

while count > 0:

    print(’the index is:’,count)

    count -= 1

# 代码里有自减语句,count减到0,while判断条件就为假,不再执行while后的代码块。

# 输出结果:

‘’’

the index is: 9

the index is: 8

the index is: 7

the index is: 6

the index is: 5

the index is: 4

the index is: 3

the index is: 2

the index is: 1

‘''

如果判断条件是True,那么就是无限循环。

for语句

Python中提供了另一个循环语句就是for语句。它提供了python中最强大的循环结构。它可以遍历序列成员,可以用在列表解析和生成器表达式中,它会自动地调用迭代器的next()方法。for语句就是c#语言中的foreach循环语句。

用于序列类型

for letter in 'Luly':

    print('current letter:', letter)

# 输出结果:

# current letter: L

# current letter: u

# current letter: l

# current letter: y

遍历列表

shools = ['三墩小学','前横小学','锦绣小学','西湖小学']

for shool in shools:

    print('学校名称:', shool)

# 输出结果:

# 学校名称: 三墩小学

# 学校名称: 前横小学

# 学校名称: 锦绣小学

# 学校名称: 西湖小学

# 用列表索引来迭代

shools = ['三墩小学','前横小学','锦绣小学','西湖小学']

for shoolIndex in range(len(shools)):

    print('学校名称:', shools[shoolIndex])

# 使用项和索引迭代,用enumerate()函数来实现

shools = ['三墩小学','前横小学','锦绣小学','西湖小学']

for i,shool in enumerate(shools):

    print('学校序号:%d,学校名称:%s' % (i, shool))

# 输出结果:

# 学校序号:0,学校名称:三墩小学

# 学校序号:1,学校名称:前横小学

# 学校序号:2,学校名称:锦绣小学

# 学校序号:3,学校名称:西湖小学

break语句

python中的break语句可以结束当前循环然后跳转到下条语句。常用在当某个外部条件被触发(一般通过if语句检查),需要立即从循环中退出时break语句可以用在while和for循环中。

continue语句

不管是对python,C,Java,还是其他任务支持continue语句的结构化语言,一些初学者有这样的一个误解:continue语句“立即启动循环的下一次迭代”。实际上,当遇到continue语句时,程序会终止当前循环,并忽略剩余的语句,然后回到循环的顶端。在开始下一次迭代前,如果是条件循环,那么会验证条件表达式;如果是迭代循环,那么会验证是否有元素可以迭代。只有验证成功的情况下,才会开始下一次迭代。

pass语句

Pass语句只占位,不做任何事情。

上一篇下一篇

猜你喜欢

热点阅读