今天将是基础篇的最后一篇,咱们来补上最后一个内容,流程控制for循环

For 循环

一、为什么有for循环?

for循环能做的事情,while循环全都可以实现,但是在某些情境下,for循环相对于while循环效率更高,例如遍历列表,for循环可以极大简化代码的数量

二、基本结构

# for循环

for i in 循环体:
代码1
代码2
...

示例1:

>>> list = [1,2,3,4,5,6]
>>> for i in list:
... print(i)
...
1
2
3
4
5
6
>>>

三、for循环的用法

1、for循环 + break。这和while循环一致,只要遇到break,就会立刻退出for循环

示例2:

>>> for i in list:
... if i == 4:
... break
... print(i)
...
1
2
3
>>>

2、for循环 + continue。这个用法也如while循环一致,只要代码运行到continue,就会调过本次循环,进入下一次循环

示例3:

>>> list = [1,2,3,4,5,6]
>>> for i in list :
... if i == 3:
... continue
... print(i)
...
1
2
4
5
6

3、for循环 + else。只有在for循环正常结束后,才执行else下代码

示例4:

>>> list = [1,2,3,4]
>>> for i in list:
... print(i)
... else:
... print("sucessful!")
...
1
2
3
4
sucessful!

4、for循环 + range。range()功能可以生产一个列表,他有三个参数:(起始位置,结束位置,步长),其中起始位置可以省略,默认为0,步长可以省略,默认为1。需要注意的是,生成的是列表,并且生成:结束位置 - 1个元素(顾头不顾尾)。

因为在python3中对range()功能进行了优化,不会直接产生一个真的列表,所以接下来在python2中进行演示

示例5:

>>> range(1,6,1)
[1, 2, 3, 4, 5]
>>> range(1,5,2)
[1, 3]
>>> range(6)
[0, 1, 2, 3, 4, 5]
>>> range(-1,-6,-1)
[-1, -2, -3, -4, -5] >>> for i in range(1,5):
... print(i)
...
1
2
3
4
>>>

5、for循环 + enumerate。enumerate功能是列表的一个功能,它可以将列表的元素和相应的索引绑定在一起,生产一个个元组。这个时候就可以将for循环、enumerate、解压赋值结合起来,取出列表的值可他的索引

示例6:

>>> list = [1,2,3,4,5]

>>> for x in enumerate(list):
... print(x)
...
(0, 1)
(1, 2)
(2, 3)
(3, 4)
(4, 5)
>>># 解压赋值
>>> for x,y in enumerate(list):
... print(x,y)
...
0 1
1 2
2 3
3 4
4 5
>>>

6、for循环 +循环嵌套。以下通过两个示例进行演示

九九乘法表示例:

# 打印九九乘法表
for i in range(1,10):
for m in range(1,i+1):
a = i *m
print("{}*{}={}".format(m,i,a),end= " ")
print()

效果如下:

金字塔示例:

"""
金字塔示例
分析:
层数:6
* 第一层:" "打印6个,"*"打印1个
*** 第二层:" "打印5个,"*"打印3个
***** 第三层:" "打印4个,"*"打印5个
******* 第四层:" "打印3个,"*"打印7个
********* 第五层:" "打印2个,"*"打印9个
*********** 第六层:" "打印1个,"*"打印11个 " " : 7 - 层数
"*" : 2 * 层数 - 1 """
for i in range(1,7):
for x in range(1,i+7):
if x <= 7-i:
print(" ",end="")
else:
print("*",end="")
print()

效果如下:

四、小结

在最后两个示例编写时,本喵遇到了些许麻烦,以下是总结:

  • print()函数如果里面没有参数,它就会默认换行,所以需要在九九乘法表和金字塔的代码中,第二层for循环最后添加:print(),目的就是在第二次主循环时,不会跟在末尾打印,而是到第二行;
  • for循环嵌套的执行顺序是这样的:

# for循环嵌套
for i in range(3): # i=2
print('=================>外层循环', i)
for j in range(5):
print("内层循环", j)
"""
=================>外层循环 0
内层循环 0
内层循环 1
内层循环 2
内层循环 3
内层循环 4
=================>外层循环 1
内层循环 0
内层循环 1
内层循环 2
内层循环 3
内层循环 4
=================>外层循环 2
内层循环 0
内层循环 1
内层循环 2
内层循环 3
内层循环 4
"""

最新文章

  1. 最简单的轮播广告(原生JS)
  2. Simple Maven Project
  3. Blackfin DSP(六):BF533的SPORT接口
  4. 谈谈如何在面试中发掘程序猿的核心竞争力zz
  5. NOJ 1072 The longest same color grid(尺取)
  6. node.js express的安装过程
  7. c++时间处理
  8. PHP soap Web Service 使用SoapDiscovery.class.php 生成wsdl文件
  9. ionic 中使用ion-slide-box
  10. 【转】java静态代码块和构造方法执行顺序
  11. linux系统学习(常用命令)
  12. 关于文件的复制(用InputStream和OutputStream)
  13. 免费UI框架推荐--Charisma UI
  14. 关于oracle数据库(5)增删改查
  15. iOS 之 Quartz2D
  16. PythonTip--一马当先--bfs
  17. ajax上传图片chrome报错net::ERR_CONNECTION_RESET/net::ERR_CONNECTION_ABORTED
  18. 精通initramfs构建step by step
  19. IIS预编译提升加载速度
  20. 树形DP入门详解+题目推荐

热门文章

  1. Pure CSS Progress Chart
  2. ES6 Arrow Function All In One
  3. css effect all in one
  4. browser parse CSS style order
  5. yarn create &amp; npx &amp; npm init
  6. js {}与class属性描述符的区别
  7. BGV再度爆发,流通市值破500万美金!
  8. HQYJ嵌入式学习笔记——C语言复习day1
  9. K8s炼气期(一)| minikube安装本地Kubenetes环境
  10. js实现复制粘贴