今天将是基础篇的最后一篇,咱们来补上最后一个内容,流程控制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
"""

python基础之流程控制(2)的更多相关文章

  1. python基础之流程控制、数字和字符串处理

    流程控制 条件判断 if单分支:当一个“条件”成立时执行相应的操作. 语法结构: if 条件: command 流程图: 示例:如果3大于2,那么输出字符串"very good" ...

  2. python基础之流程控制

    流程控制之----if 流程控制,是指程序在运行时,个别的指令(或者是陈述.子程序)运行或者求值的顺序.人生道路上的岔口有很多,在每个路口都是一个选择,在每个路口加上一个标签,选择哪个就是满足哪个条件 ...

  3. python基础:流程控制案例:

    1,简述编译型与解释型的语言,且分别列出你知道的哪些语言属于编译型,哪些属于解释型. 答:简单理解编译型语言类似谷歌翻译,整篇读入整篇翻译,代表语言有C语言,解释型语言类似同   声传译,读入一行翻译 ...

  4. python基础之流程控制(1)

    一.分支结构:if 判断 1.什么要有if 判断语句? 让计算机可以像人一样根据条件进行判断,并根据判断结果执行相应的流程. 2.基本结构 单分支结构 # 单分支 if 条件1: 代码1 代码2 代码 ...

  5. python基础之流程控制(if判断和while、for循环)

    程序执行有三种方式:顺序执行.选择执行.循环执行 一.if条件判断 1.语句 (1)简单的 if 语句 (2)if-else 语句 (3)if-elif-else 结构 (4)使用多个 elif 代码 ...

  6. Python基础之流程控制for循环

    目录 1. 语法 2. for+break 3. for+continue 4. for循环嵌套 1. 语法 while循环可以对任何内容循环,但循环次数不可控 for循环基于容器类型的长度,循环次数 ...

  7. Python 基础知识----流程控制

    判断语句 循环语句 嵌套

  8. Python基础之流程控制if判断

    目录 1. 语法 1.1 if语句 1.2 if...else 1.3 if...elif...else 2. if的嵌套 3. if...else语句的练习 1. 语法 1.1 if语句 最简单的i ...

  9. Python基础之流程控制while循环

    目录 1. 语法 2. while+break 3. while+continue 4. while+else 1. 语法 最简单的while循环如下: ''' while <条件>: & ...

随机推荐

  1. export html to canvas image

    export html to canvas image canvas.toDataURL https://developer.mozilla.org/en-US/docs/Web/API/HTMLCa ...

  2. infinite scroll blogs

    infinite scroll blogs 无限滚动 blogs beacon api https://www.sitepoint.com/introduction-beacon-api/ Histo ...

  3. auto switch HTTP protocol Chrome Extension

    auto switch HTTP protocol Chrome Extension HTTPS auto switch to HTTP VPN https://chrome.google.com/w ...

  4. JavaScript & Automatic Semicolon Insertion

    JavaScript & Automatic Semicolon Insertion ECMA 262 真香警告️ https://www.ecma-international.org/ecm ...

  5. Node.js & module.exports & exports

    Node.js & module.exports & exports https://www.cnblogs.com/xgqfrms/p/9493550.html exports &a ...

  6. TypeScript & Object Error

    TypeScript & Object Error Element implicitly has an 'any' type because expression of type 'any' ...

  7. git 强制提交 & 覆盖 origin/master

    git 强制提交 & 覆盖 origin/master git 强制提交本地分支覆盖远程分支 # git push origin 分支名 --force # local $ git push ...

  8. python进阶(1)Lambda表达式

    Lambda表达式 lambda表示的是匿名函数,不需要用def来声明,一句话就可以声明出一个函数 语法 函数名 = lambda 参数:返回值 注意点 1.函数的参数可以有多个,多个参数之间用逗号隔 ...

  9. Mybatis-Plus插件配置

    yml配置 1 # Mybatis-Plus 2 mybatis-plus: 3 # 配置mapper的扫描,找到所有的mapper.xml映射文件 4 mapper-locations: com.x ...

  10. nacos配置中心之服务器端

    配置信息的发布 配置信息发布请求URL: POST: /v1/cs/configs nacos在STANDALONE模式或集群模式没有指定用mysql情况下使用derby数据库,在集群模式且指定mys ...