Python 流程控制语句

做者:billy
版权声明:著做权归做者全部,商业转载请联系做者得到受权,非商业转载请注明出处web

程序结构

程序设计中有 3 种基础的结构,分别是顺序结构、选择结构和循环结构,以下图所示:
在这里插入图片描述
本章节以前编写的多数例子都是顺序结构的,这一张主要介绍一下选择结构和循环结构。svg

选择语句

  1. 最简单的 if 语句
    Python 中使用 if 保留字来组成选择语句,其最简单的语法形式以下:
if 表达式:
    语句块

其中,表达式能够是一个单纯的布尔值或者变量,也能够是比较表达式或逻辑表达式,若是表达式为真,则执行 “语句块”,若是表达式为假,就跳过 “语句块”,继续执行后面的代码。函数

示例1:学习

number = 5
if number == 5:
    print( "number 的值是5" )

注意:if 语句后面的冒号 ‘:’ 很容易被遗忘设计

示例2:code

if bmi < 18.5:
    print( "您的 BMI 指数为:" + str(bmi) )
print( "您的体重太轻了。。。" )

注意:第二个 print() 没有使用缩进,不管 bmi 的值是否小于 18.5 都会执行,若是第二个 print() 也使用了缩进,那么只有条件成立时才会执行xml

  1. if…else 语句
if 表达式:
    语句块1
else:
    语句块2

程序中使用 if…else 语句时,若是出现 if 语句多余 else 语句的状况,那么该 else 语句将会根据缩进肯定该 else 语句是属于哪一个 if 语句的。对象

示例:blog

a = 0
if a >= 0:
    if a > 0:
        print( "a 大于零" )
else:
    print( "a 小于零" )
  1. if…elif…else 语句
    在 Python 中是没有 switch 语句的,因此实现多重选择的功能,只能使用 if…elif…else 多分支语句或者 if 语句的嵌套
if 表达式1:
    语句块1
elif 表达式2:
    语句块2
elif 表达式3:
    语句块3
...
else:
    语句块n

示例:图片

age = int( input( "请输入您的年龄:" ) )
if age <= 18:
    print( "您的年龄还小,要努力学习哦!" )
elif 18 < age <= 30:
    print( "您如今的阶段正是努力奋斗的黄金阶段!" )
elif 30 < age <= 50:
    print( "您如今的阶段正是人生的黄金阶段!" )
else:
    print( "最美不过夕阳红!" )
  1. if 语句的嵌套
    if 选择语句能够有多种嵌套方式,开发程序时,能够根据自身须要选择合适的嵌套方式,但必定要严格控制好不一样级别代码块的缩进量

示例:

# 判断输入年份是否是闰年
# 判断方法:四年一润,百年不闰,四百年再润
year = int( input( "请输入年份:" ) )
if year % 4 == 0:
    if year % 100 == 0:
        if year % 400 == 0:
            print( year, "年是闰年" )
        else:
            print( year, "年不是闰年" )
    else:
        print( year, "年是闰年" )
else:
    print( year, "年不是闰年" )

循环语句

在 Python 中,循环主要有两种,一种是重复必定次数的循环,称为计数循环,如 for 循环另外一种是一直重复,直到条件不知足时才结束的循环,称为条件循环,如 while 循环

注意:在其它语言中,条件循环还包括 do…while 循环,可是在 Python 中是没有 do…while 循环的

  1. while 循环
while 条件表达式:
    循环体	# 一组被重复执行的语句

示例:

print( "今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问何几 ?\n" )
none = True	# 做为循环条件的变量
number = 0	# 计数的变量
while none:
    number += 1
    if number % 3 == 2 and number % 5 == 3 and number % 7 == 2:
        print( "答曰:这个数是", number )
        none = False

上述例子运行结果为 23
在使用 while 循环语句时,必定不要忘记添加将循环条件变为 False 的代码,不然将出现死循环。

  1. for 循环
for 迭代变量 in 对象:
    循环体

其中,迭代变量用于保存读取出的值,而对象为要遍历或迭代的对象,该对象能够是任何有序的序列对象,如字符串、列表和元组等。

示例1:

print( "计算 1+2+3+...+100 的结果为:" )
result = 0			# 保存累加结果的变量
for i in range(101):
    result += i			# 实现累加功能
print(result)			# 在循环结束时输出结果

补充内容:上面代码中使用了 range() 函数,该函数为 Python 内置的函数,用于生成一系列连续的整数,多用于 for 循环语句中,其语法格式以下:
range(start, end, step)
start:用于指定计数的起始值,能够省略。若是省略,则从 0 开始。
end:用于指定计数的结束值(但不包括该值),不能省略。当 range() 函数只有一个参数时,即表示指定计数的结束值。
step:用于指定步长,即两数之间的间隔,能够省略。若是省略,则表示步长为 1。
注意:在使用 range() 函数时,若是只有一个参数,那么表示指定的是 end;若是只有两个参数,则表示指定的是 start 和 end;只有三个参数都存在时,最后一个才表示步长

示例2:

for i in range(1, 10, 2):
    print( i, end = ' ' )

上述例子运行结果为 1 3 5 7 9
若是想让 print() 语句输出的内容在一行上显示,使用 print() 函数时,不能直接加逗号,须要加上 ", end = ‘分隔符’ "

  1. 循环嵌套
    在 Python 中,容许在一个循环体中嵌入另外一个循环体,这称为循环嵌套。在 Python 中,for 循环和 while 循环均可以进行循环嵌套。

示例:

for i in range(1, 10, 1):			# 输出 9 行
    for j in range(1, i + 1):			# 输出与行数相等的列
        print( str(j) + " X " + str(i) + " = " + str(i * j) + "\t", end = "" )
    print(")					# 换行

上述例子输出 1-9 乘法口诀表

break、continue 和 pass 语句

  1. break
    break 语句能够终止当前的循环,包括 while 和 for 在内的全部控制语句。

break 语句通常会结合 if 语句进行搭配使用,表示在某种条件下跳出循环。若是使用嵌套循环,break 循环将跳出最内层的循环

示例:

print( "今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问何几 ?\n" )
for number in range(100):
    if number % 3 == 2 and number % 5 == 3 and number % 7 == 2:	# 判断是否符合条件
        print( "答曰:这个数是", number )			# 输出符合条件的数
        break							# 跳出循环
  1. continue
    continue 语句的做用没有 break 强大,它只能终止本次循环提早进入下一次循环。

continue 语句通常会结合 if 语句进行搭配使用,表示在某种条件下,跳出当前循环的剩余语句,而后继续进行下一轮循环。若是使用嵌套循环,continue 语句将只跳过最内层的循环中的剩余语句

示例:

total = 0							# 用于保存累加和的变量变量
for number in range(1, 100):
    if number % 2 == 1:						# 判断是否符合条件
        continue						# 继续下一次循环
    total += number						# 累加偶数的和
print( "1 到 100 之间(不包括 100)的偶数和为:", total )		# 输出累加的和
  1. pass
    Python 中还有一个 pass 语句,表示空语句。它不作任何事,通常起到占位的做用

示例:

for i in range(1, 10):
	if i % 2 == 0:			# 判断是否为偶数
	    print( i, end = ' ' )
	else:				# 不是偶数
	    pass			# 占位符,不做任何操做