1.7 控制流

控制流

截止到现在,在我们所看过的程序中,总是有一系列语句从上到下精确排列,并交由 Python
忠实地执行。如果你想改变这一工作流程,应该怎么做?就像这样的情况:你需要程序作出
一些决定,并依据不同的情况去完成不同的事情,例如依据每天时间的不同打印出 ‘早上好’
‘Good Morning’ 或 ‘晚上好’ ‘Good Evening’?

正如你可能已经猜测到的那番,这是通过控制流语句来实现的。在 Python 中有三种控制流语
句—— if forwhile

if 语句

if 语句用以检查条件:如果 条件为真(True),我们将运行一块语句(称作 if-block 或 if
块),否则 我们将运行另一块语句(称作 else-block 或 else 块)。其中 else 从句是可选
的。

案例(保存为 if.py ):

number = 23
guess = 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.py
Enter an integer : 50
No, it is a little lower than that
Done

$ python if.py
Enter an integer : 22
No, it is a little higher than that
Done

$ python if.py
Enter an integer : 23
Congratulations, you guessed it.
(but you do not win any prizes!)
Done

while 语句

while 语句能够让你在条件为真的前提下重复执行某块语句。 while 语句是 循环
(Looping) 语句的一种。 while 语句同样可以拥有 else 子句作为可选选项。

案例(保存为 while.py ):

number = 23
running = True
while 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.py
Enter an integer : 50
No, it is a little lower than that.
Enter an integer : 22
No, it is a little higher than that.
Enter an integer : 23
Congratulations, you guessed it.
The while loop is over.
Done

for 循环

for...in 语句是另一种循环语句,其特点是会在一系列对象上进行迭代(Iterates),意即
它会遍历序列中的每一个项目。我们将在后面的序列(Sequences)章节中了解有关它的更
多内容。现在你所需要的就是所谓队列就是一系列项目的有序集合。

案例(保存为 for.py ):

for i in range(1, 5):
	print(i)
else:
	print('The for loop is over')

输出:

$ python for.py
1
2
3
4
The for loop is over

break 语句

break 语句用以中断(Break)循环语句,也就是中止循环语句的执行,即使循环条件没有
变更为 False ,或队列中的项目尚未完全迭代依旧如此。

有一点需要尤其注意,如果你 中断 了一个 forwhile 循环,任何相应循环中的 else
块都将不会被执行。

案例(保存为 break.py ):

while True:
	s = input('Enter something : ')
	if s == 'quit':
		break
	print('Length of the string is', len(s))
print('Done')

输出:

$ python break.py
Enter something : Programming is fun
Length of the string is 18
Enter something : When the work is done
Length of the string is 21
Enter something : if you wanna make your work also fun:
Length of the string is 37
Enter something : use Python!
Length of the string is 11
Enter something : quit
Done

continue 语句

continue 语句用以告诉 Python 跳过当前循环块中的剩余语句,并继续该循环的下一次迭
代。
案例(保存为 continue.py ):

while True:
	s = input('Enter something : ')
	if s == 'quit':
		break
	if len(s) < 3:
		print('Too small')
		continue
	print('Input is of sufficient length')
# 自此处起继续进行其它任何处理

输出:

$ python continue.py
Enter something : a
Too small
Enter something : 12
Too small
Enter something : abc
Input is of sufficient length
Enter something : quit

总结

我们已经了解了三种控制流语句—— ifwhilefor ——及其相关的 break
continue 语句是如何工作的。这些语句是 Python 中一些最常用的部分,因此,习惯去使用
它们是必要的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值