做任何事情都要遵循一定的原则。例如,到图书馆去借书,就需要有借书证,并且借书证不能过期,这两个条件缺一不可。程序设计亦是如此,需要使用流程控制实现与用户的交流,并根据用户需求决定程序“做什么”“怎么做"。知识框架
1.程序结构
计算机在解决某个具体问题时,主要有3种情形,分别是顺序执行完所有的语句、选择执行部分的语句和循环执行部分语句。我们称这3种基本结构为顺序结构、选择结构和循环结构。
2.选择语句
在生活中,我们总是要做出许多选择,程序也是一样。下面给出几个常见的例子:如果小明是学生,就要去上课
如果小明是男生,就伸出左手,如果小明是女生,就伸出右手
如果今天是周一、周二、周三、周四、周五,小明就要去上课;如果今天是周六、周日,小明就不用去上课
以上的例子判断,就是程序的选择语句,也成为条件语句,即按照条件选择执行不同的代码块。Python中的选择语句就三种形式,分别为if语句、if…else语句、if…elif…else多分支语句。
2.1.最简单的if语句
if 语句的基本用法如下:
其中,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式(例
如:a > band a != c),如果表达式为真,则执行“语句块”;如果表达式的值为假,就跳
过“语句块”,继续执行后面的语句。最简单的if执行流程
案例:
# -*- coding:utf-8 -*-
print("今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?\n")
number = int(input("请输入您认为符合条件的数:")) # 输入一个数
if number%3 ==2 and number%5 ==3 and number%7 ==2:
print(number,"符合条件:三三数之剩二,五五数之剩三,七七数之剩二")
2.2.if…else 语句
if…else 语句的基本用法如下:
使用 if…else 语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或
逻辑表达式,如果满足条件,则执行 if 后面的语句块,否则,执行 else 后面的语句块。在
使用 else 语句时,else 一定不可以单独使用,它必须和保留字 if 一起使用。if…else语句执行流程
案例:
# -*- coding:utf-8 -*-
print("今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?\n")
number = int(input("请输入瑛姑给出的数:")) # 输入一个数
if number%3 ==2 and number%5 ==3 and number%7 ==2: # 判断是否符合条件
print(number,"符合条件")
else: # 不符合条件
print(number,"不符合条件")注意:在使用else语句时,else一定不可以单独使用,他必须和保留字if一起使用,且行末跟着:
2.3.if…elif…else语句
if…elif…else 语句的基本用法如下:
使用 if…elif…else 语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达
式或逻辑表达式,如果表达式为真,执行语句;而如果表达式为假,则跳过该语句,进行下
一个 elif 的判断,只有在所有表达式都为假的情况下,才会执行 else 中的语句。if…elif…else语句流程图
案例:
# -*- coding:utf-8 -*-
print("在古希腊神话中,玫瑰集爱与美于一身。人们常用玫瑰来表达爱情。")
print("送不同朵数的玫瑰花代表的含义也不同。\n")
number = int(input("输入您想送几朵玫瑰花,静阳会告诉您含义:"))# 获取用户输入的朵数,并转换为整型
if number == 1: # 判断输入的数是否为1,代表1朵
# 如果等于1则输出提示信息
print("1朵:你是我的唯一!")
elif number == 3: # 判断是否为3朵
print("3朵:I Love You!")
elif number == 10: # 判断是否为10朵
print("10朵:十全十美!")
elif number == 99: # 判断是否为99朵
print("99朵:天长地久!")
elif number == 108: # 判断是否为108朵
print("108朵:求婚!")
else:
print("静阳也不知道了!可以考虑送1朵、3朵、10朵、99朵或108朵呦!")注意:在其它语言(如C、C++、Java等)选择语句还包括switch语句,也可以实现多重选择。但是Python中没有switch语句、所以实现多重选择功能时,只能使用 if…elif…else语句或者if语句的嵌套。
2.4.if语言的嵌套
前面介绍的3种形式的if选择语句之间都可以相互嵌套,即在语句块中再写一段if选择语句,此处便不多描述。注意:在Python语言的嵌套时,一定要注意缩进,没缩进或者错误缩进都有可能导致程序无法运行或者语义错误。
3.条件表达式
在程序开发时,经常会遇见根据表达式的结果进行赋值。例如返回两个数字中比较大的术。
普通if语句:
a = 10
b = 6
if a>b:
r = a
else:
r = b
针对上面的代码,可以使用条件表达式进行简化:
a = 10
b = 6
r = a if a > b else b
使用条件表达式时,先计算中间的条件(a>b),如果结果为True,返回if左边的值,否则返回else右边的值。本题答案为10.
4.循环语句
日常中的很多问题都是无法一次解决的,例如愚公移山”子又生孙,孙又生子“。也有一部分事件必须周而复始的运转才能保证其存在的意义,例如公交车必须每日往返于始发站和终点之间。类似这样的事件,我们称之为”循环“。循环的类型主要有两种:重复一定的次数,称之为计次循环,如for循环。
一直重复,直到条件不满足时才结束循环,称之为条件循环,如while循环注意:在其它语言(如C、C++、Java等)条件循环还包括do…while循环,但是在Python中没有do…while循环。
4.1.while循环
while 语句的基本用法如下:
当条件表达式的返回值为真时,则执行循环体中的语句,执行完毕后,重新判断条件表
达式的返回值,直到表达式返回的结果为假时,退出循环。while循环语句的执行流程图
案例:
# -*- coding:utf-8 -*-
print("今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?\n")
none = True # 作为循环条件的变量
number = 0 # 计数的变量
while none:
number += 1 # 计数加1
if number%3 ==2 and number%5 ==3 and number%7 ==2: # 判断是否符合条件
print("答曰:这个数是",number) # 输出符合条件的数
none = False # 将循环条件的变量赋值为否注意:在使用while语句时,一定不要忘记添加将循环条件改为False(如案例最后一行),否则容易产生死循环。
4.2.for循环
for 语句的基本用法如下:
其中,迭代变量用于保存读取出的值;对象为要遍历或迭代的对象,该对象可以是任何
有序的序列对象,如字符串、列表和元组等;循环体为一组被重复执行的语句。for循环语句执行流程图
案例:
# -*- coding:utf-8 -*-
print("今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?\n")
for number in range(100):
if number%3 ==2 and number%5 ==3 and number%7 ==2: # 判断是否符合条件
print("答曰:这个数是",number) # 输出符合条件的数
从结果来看,while和for差别不大,主要是运行过程中的差别
4.3.嵌套循环
在Python中,允许在一个循环中嵌入另外一个循环,这称为循环嵌套。例如电影院找座位,先循环找第几排,再循环找第几列。实现方式就是在原有的语句块中再写一层循环,此处便不多作解释。注意:在Python语言的嵌套时,一定要注意缩进,没缩进或者错误缩进都有可能导致程序无法运行或者语义错误。
5.跳转语句
当循环条件一直满足时,程序会一直执行下去,就像一辆迷路的车,在某个地方不停地转圈。如果希望在中间离开循环,也就是在for循环的次数结束前,在while条件变False前结束循环,我们可以使用跳转语句:使用continue语句直接跳到下一次循环
使用break语句完全中止循环
5.1.break 语句
在 while 语句中使用 break 语句的形式如下:
其中,条件表达式 2 用于判断何时调用 break 语句跳出循环。
在 for 语句中使用 break 语句的形式如下:
其中,条件表达式用于判断何时调用 break 语句跳出循环。while语句中使用break语句的流程图在while语句中使用continue语句的流程图
5.2.continue 语句
在 while 语句中使用 continue 语句的形式如下:
其中,条件表达式 2 用于判断何时调用 continue 语句跳出循环。
在 for 语句中使用 continue 语句的形式如下:
其中,条件表达式用于判断何时调用 continue 语句跳出循环。
在for循环中使用continue语句的流程图用一个简单的例子区别break和continue
break:一个人跑步时,原计划跑十圈。但是跑到第三圈的时候,看到了男神或者女神,于是离开操场,中止了跑步,去和男神女神搭讪去了。——只跑了两圈,第三圈没跑完。
continue:一个人跑步时,原计划跑十圈。但是跑到第三圈的时候,看到了男神或者女神,于是直接返回起点,和男神女神假装邂逅,一起开始跑步。——跑了九圈,只有第三圈没跑。
6.pass空语句
在Python中还有一个pass语句,表示空语句。他不做任何事情,一般起到占位的作用。
上一章传送门:静阳:Python教程(二)——基础语法zhuanlan.zhihu.com