Python-控制流语句,python-流语句,控制流语句在 Pyt
Python-控制流语句,python-流语句,控制流语句在 Pyt
控制流语句
在 Python 中有三种控制流语句——if、for和 while。
if 语句
if语句用以检查条件:如果 条件为真(True),我们将运行一块语句(称作 if-block 或 if块),否则 我们将运行另一块语句(称作 else-block 或 else 块),其中 else 从句是可选的。
例子:
#Python if.pynumber = 23guess = int(input(‘Enter an integer:‘))if guess == number: # 新块从这里开始 print(‘Congratulations, you guessed it.‘) print(‘(but you do not win any prizes!)‘) # 新块在这里结束elif guess < number: # 另一代码块 print(‘No, it is a little higher than that‘) # 你可以在此做任何你希望在该代码块内进行的事情else: print(‘No, it is a little lower than that‘) # 你必须通过猜测一个大于(>)设置数的数字来到达这里。print(‘Done‘)# 这最后一句语句将在# if 语句执行完毕后执行。
输出:
# python if.pyEnter an integer : 50No, it is a little lower than thatDone# python if.pyEnter an integer : 22No, it is a little higher than thatDone# python if.pyEnter an integer : 23Congratulations, you guessed it.(but you do not win any prizes!)Done
它是如何工作的
在这个程序中,我们根据用户猜测的数字来检查这一数字是否是我们之前所设置的。我们将变量number 设为任何我们所希望的整数,例如23 ,然后,我们通过input()函数来获取用户的猜测数。所谓函数是一种可重复使用的程序。
input() 函数将以字符串的形式返回我们所输入的内容。然后我们通过int 将这个字符串转换成一个整数并将其储存在变量 guess 中。实际上,int是一个类(Class),我们可以使用它将一串字符串转换成一个整数。
接下来,我们将用户提供的猜测数与我们所选择的数字进行对比,如果它们相等,我们就打印一条成功信息。
然后,我们检查猜测数是否小于我们设置的数字,如果是,我们将告诉用户他们必须猜一个更高一些的数字。在这里我们使用的是elif语句,它们实际上将两个相连的if else-if else语句合并成一句 if-elif-else语句。
当 Python 完整执行了if语句及与其相关的elif和 else子句后,它将会移动至包含if语句的代码块的下一句语句中。在本例中,也就是主代码块(程序开始执行的地方),其下一句语句就是 print(‘Done‘) 语句。
在完成这些工作后,Python 会发现已行至程序末尾并宣告工作的完成。
注意:
在这里我们使用缩进来告诉 Python 哪些语句分别属于哪个块,这便是为什么在 Python 中缩进如此重要。if、elif和 else 语句在结尾处包含一个冒号——我们借此向 Python 指定接下来会有一块语句在后头。你可以在 if块的 一个 if 语句中设置另一个if 语句,并可以如此进行下去——这被称作嵌套的if语句。elif和else 部分都是可选的,一个最小规模且有效的 if 语句是这样的:if True: print(‘Yes, it is true‘)
while 语句
while 语句能够让你在条件为真的前提下重复执行某块语句,while 语句是 循环(Looping) 语句的一种, while 语句同样可以拥有 else子句作为可选选项。
例子:
#Python while.pynumber = 23running = Truewhile running: guess = int(input(‘Enter an integer:‘)) if guess == number: print(‘Congratulations, you guessed it.‘) # 这将导致 while 循环中止 running = False elif guess < number: print(‘No, it is a little higher than that.‘) else: print(‘No, it is a little lower than that.‘)else: print(‘The while loop is over.‘) # 在这里你可以做你想做的任何事print(‘Done‘)
输出:
#Python while.pyEnter an integer:50No, it is a little lower than that.Enter an integer:22No, it is a little higher than that.Enter an integer:23Congratulations, you guessed it.The while loop is over.Done
它是如何工作的?
在这一程序中,我们依旧通过猜数游戏来演示,不过新程序的优点在于能够允许用户持续猜测直至他猜中为止——而无需像if所做的那样,每次猜测都要重新运行程序。
首先我们将 input 与if语句移到 while 循环之中,并在 while 循环开始前将变量running设置为True。程序开始时,我们首先检查变量running是否为True ,之后再执行相应的 while 块。在这一代码块被执行之后,将会重新对条件进行检查,在本例中也就是running 变量。如果它依旧为True,我们将再次执行 while 块,否则我们将继续执行可选的else 块,然后进入到下一个语句中。
else代码块在 while 循环的条件变为 False 时开始执行;如果 while 循环中存在一个 else 代码块,它将总是被执行,除非你通过 break 语句来中断这一循环。
True 和False 被称作布尔(Boolean)型,你可以将它们分别等价地视为1与0。
for 循环
for...in 语句是另一种循环语句,其特点是会在一系列对象上进行迭代(Iterates),意即它会遍历序列中的每一个项目。
例子:
# Python for.pyfor i in range(1, 5): print(i)else: print(‘The for loop is over‘)
输出:
1234The for loop is over
它是如何工作的?
我们通过内置的range函数生成这一数字序列,使用 range时,需要提供两个数字,range 将会返回一个数字序列,从第一个数字开始,至第二个数字结束。例子:range(1,5)将输出序列[1, 2, 3, 4],在默认情况下,range 将会以1 逐步递增,如果我们向 range提供第三个数字,则这个数字将成为逐步递增的加数。举个例子来说明,range(1,5,2) 将会输出[1, 3]。
然后 for循环就会在这一范围内展开递归——for i in range(1,5)等价于 for i in [1,2, 3, 4] ,这个操作将依次将队列里的每个数字(或是对象)分配给i,一次一个,然后以每个i 的值执行语句块,在本例中,我们这一语句块所做的就是打印出这些值。
注意:
range(n,m)这一序列扩展直到第m-1个数字,也就是说,它不会包括第m个数字在内。
range() 每次只会生成一个数字,如果你希望获得完整的数字列表,要在使用range() 时调用list()。例如下面这样:list(range(5)) ,它将会返回[0, 1, 2,3, 4]。
else 部分是可选的,当循环中包含他时,它总会在for循环结束后开始执行,除非程序遇到了break 语句。
break 语句
break 语句用以中断(Break)循环语句,也就是中止循环语句的执行,即使循环条件没有变更为False,或队列中的项目尚未完全迭代时依旧中断语句。
注意:
如果你 中断 了一个for 或while循环,任何相应循环中的else块都将不会被执行。
例子:
#Python break.pywhile True: s = input("Enter something:") if s == "quit": break print("Length of the string is",len(s))print("Done")
输出:
Enter something:Programming is funLength of the string is 18Enter something:When the work is doneLength of the string is 21Enter something:if you wanna make your work also fun:Length of the string is 37Enter something:use Python!Length of the string is 11Enter something:quitDone
它是如何工作的?
通过检查用户输入的是否是 quit 这一特殊条件来判断是否应该终止程序。我们通过中断循环并转进至程序末尾来结束这一程序。
输入字符串的长度可以通过内置的 len函数来计算。
注意:
break语句同样可以适用于for循环。
continue 语句
continue 语句用以告诉 Python 跳过当前循环块中的剩余语句,并继续该循环的下一次迭代。
输入:
#Python continue.pywhile True: s = input(‘Enter something:‘) if s == "quit": break if len(s)<3: print("Too small") continue print("Input is of sufficient length")
输出:
Enter something:1Too smallEnter something:12Too smallEnter something:123Input is of sufficient lengthEnter something:quit
它是如何工作的?
在本程序中,我们读取用户的输入,只有在输入的字符串长度小于3 字符我们才会对其进行处理。为此,我们使用内置的len函数和来获取字符串的长度,如果其长度小于3,我们便通过使用 continue 语句跳过代码块中的其余语句。否则,循环中的剩余语句将被执行。
注意:
continue 语句同样能用于 for循环。
总结
我们已经了解了三种控制流语句—— if , while 和 for——及其相关的break 与continue 语句是如何工作的。这些语句是 Python 中一些最常用的部分,因此,熟练使用它们是必要的。
Python-控制流语句
相关内容
- Python cookbook(数据结构与算法)找出序列中出现次数最多
- Python cookbook(数据结构与算法)实现优先级队列的方法
- Python cookbook(数据结构与算法)将序列分解为单独变量
- Python3 queue队列模块详细介绍,python3queue
- Python iter()函数用法实例分析,pythoniter
- Python cookbook(数据结构与算法)筛选及提取序列中元素的
- python 中if else 语句的作用及示例代码,python示例代码
- Python OpenCV 直方图的计算与显示的方法示例,pythonopen
- Python数据结构之栈、队列的实现代码分享,python数据结
- Python实现基本数据结构中队列的操作方法示例,python操
评论关闭