《每天五分钟冲击python基础之流程控制 循环结构 应用》(十五)

前言

在上节课当中,我们已经学习到 if 的应用了,细心的同学就会发现,其实在学习 python 的三目运算符中,已经提前学习了 if 的应用了,例:

a = 6
b = 5
max = a if a>b else b
print(max)

输出结果:
6

是的,python的三目运算符与其他编程语言不一样的,所以在此,提醒所有的同学,使用三目运算符的时候,要分清楚喔!好的,就让我们开始今天的课程吧!

循环结构是什么

循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体。当反复执行这个循环体时,需要在合适的时候把循环条件改为假,从而结束循环;否则循环将一直执行下去,形成死循环。
在这里插入图片描述
初始化语句(init_statements):一条或多条语句,用于完成一些初始化工作。初始化语句在循环开始之前执行

循环条件(test_expression):这是一个布尔表达式,这个表达式能决定是否执行循环体

循环体(body_statements):这个部分是循环的主体,如果循环条件允许,这个代码块将被重复执行

迭代语句(iteration_statements):这个部分在一次执行循环体结束后,对循环条件求值之前执行,通常用于控制循环条件中的变量,使得循环在合适的时候结束。

while循环

while循环的语法格式如下:

   [ init_statements ]
      while test_expression :
        body_statements
      [ iteration_statements ]

while循环在每次执行循环体之前,都要先对 test_expression 循环条件求值,如果循环条件为真,则运行循环体部分。从上面的语法格式来看,迭代语句 iteration_statements 总是位于循环体的最后,因此只有当循环体能成功执行完成时,while 循环才会执行迭代语句 iteration_statements。

从这个意义上看,while 循环也可被当成分支语句使用----如果 test_expression 条件一开始就为假,则循环体部分将永远不会获得执行的机会。

例:

count_i = 0
while count_i <5 :
    print("count:", count_i)
    count_i += 1
print("循环结束!")

输出结果:
count: 0
count: 1
count: 2
count: 3
count: 4
循环结束!

注意:在使用 while 循环时,一定要保证循环条件有变成假的时候;否则这个循环将成为一个死循环,永远无法结束这个循环,例:

count_i2 = 0
while count_i2 < 10:
	print("不停执行的死循环:", count_i2)
	count_i2 -= 1
print("永远无法跳出的循环体")

输出结果:
循环会一直下去,没有停止的,建议同学们在 任务管理器 中 手动关闭编辑器

使用while循环遍历元组,例:

a_tuple = ('fkit', 'crazyit', 'Charlie')
i = 0
while i <len(a_tuple):
	print(a_tuple[i])
	i +=1

输出结果:
fkit
crazyit
Charlie

使用while循环遍历列表,例:

a_list = ['fkit', 'crazyit', 'Charlie']
i = 0
while i <len(a_list):
	print(a_list[i])
	i +=1

输出结果:
fkit
crazyit
Charlie

for-in循环

for-in 循环专门用于遍历范围、列表、元素和字典等可迭代对象包含的元素。for-in循环的语法格式如下:

for 变量 in 字符串|范围|集合等 :
    statements

对于上面的语法格式有两点说明:

for-in 循环中的变量的值受 for-in循环控制,该变量将会在每次循环开始时自动被赋值,因此程序不应该在循环中对该变量赋值。

for-in 循环可用于遍历任何可迭代对象。所谓可迭代对象,就是指该对象中包含一个__iter__方法,且该方法的返回值对象具有next()方法

使用for-in循环遍历元组,例:

a_tuple = ('fkit', 'crazyit', 'Charlie')
for ele in a_tuple:
	print('当前元素是:', ele)

输出结果:
当前元素是: fkit
当前元素是: crazyit
当前元素是: Charlie

使用for-in循环遍历列表,例:

a_list = ['fkit', 'crazyit', 'Charlie']
for ele in a_list:
	print('当前元素是:', ele)

输出结果:
当前元素是: fkit
当前元素是: crazyit
当前元素是: Charlie

使用for-in循环遍历字典,例:

my_dict = {'语文': 89, '数学': 92, '英语': 80}
for key, value in my_dict.items():
	print('key:', key)
	print('value', value)
print('---------------------')

输出结果:
key: 语文
value 89
key: 数学
value 92
key: 英语
value 80
---------------------

控制循环结构(break/continue/return)

break:结束循环,在某些时候,需要在某种条件出现时强行中止循环,而不是等到循环条件为False时才退出循环,此时,可以使用break来完成这个功能,break用于完全结束一个循环,跳出循环体。不管是哪种循环,一旦在循环体中遇到break,系统就将完全结束该循环,开始执行循环之后的代码

continue:continue的功能与break有点类似,区别是continue只是忽略当次循环的剩下语句,接着开始下一次循环,并不会中止循环;而break则是完全中止循环本身

return:python程序中的大部分循环都被放在函数或方法中执行,一旦在循环体内执行到一条return语句时,return语句就会结束该函数或方法,循环自然也随之结束

break的例子:

for i in range(0, 10):
	print('i的值是:', i)
	if i == 5 :
		break

输出结果:
i的值是: 0
i的值是: 1
i的值是: 2
i的值是: 3
i的值是: 4
i的值是: 5

continue的例子:

for i in range(0, 3):
	print('i的值是:', i)
	if i == 1 :
		continue
	print("continue后的输出语句")

输出结果:
i的值是: 0
continue后的输出语句
i的值是: 1
i的值是: 2
continue后的输出语句

return的例子:

def test():
	for i in range(10):
		for j in range(10):
			print("i的值是:%d, j的值是:%d" % (i, j))
			if j == 1 :
				return 
			print("return后的输出语句")

test()

输出结果:
i的值是:0, j的值是:0
return后的输出语句
i的值是:0, j的值是:1

for表达式(重点,称为列表推导式)

for 表达式用于利用其他区间、元组、列表等可迭代对象创建新的列表。for表达式的语法格式如下:

[表达式 for 循环计数器 in 可迭代对象]

从上面的语法格式可以看出,for 表达式与普通 for 循环的区别有两点:
for关键字之前定义一个表达式,该表达式通常会包含循环计数器
for表达式没有循环体,因此不需要冒号

for 表达式当然也是有循环的,它同样会对可迭代对象进行循环-----可迭代对象包含几个对象,该循环就对for之前的 “表达式” 执行几次(相当于 for 之前的表达式就是循环体),并将每次执行的值收集起来作为新的列表元素。

例:

a_range = range(10)
a_list = [x * x for x in a_range]
print(a_list)

输出结果:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

换成普通的for-in是这样写的
a_range = range(10)
a_list = []
for x  in a_range :
	a_list.append(x * x)
print(a_list)

输出结果:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

还可以在 for 表达式后面添加 if 条件,这样 for 表达式将只迭代那些符合条件的元素,例:

a_range = range(10)
a_list = [x * x for x in a_range if x % 2 == 0]
print(a_list)

输出结果:
[0, 4, 16, 36, 64]

换成普通的for-in是这样写的
a_range = range(10)
a_list = []
for x  in a_range :
	if x % 2 == 0 :
	  a_list.append(x * x)
print(a_list)

输出结果:
[0, 4, 16, 36, 64]

课外监督

最近一部分同学在后台私聊我说,自己每天都准备要学习了,但是一去到电脑桌上就是提不起劲来,怎么办呢?针对这种情况的同学,我决定每天花一点时间对你们学习进行监督和辅导,如有需要的同学,扫描下面的图片,点击 “联系作者” 进行报名。

结语

这节课是有点逻辑思维在的,但跟着我学习后,你就会理解它其中的意思,好啦,今节课就先讲到这里,下节课做有关流程控制的练习题,敬请期待。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值