python基础之流程控制(2)
今天将是基础篇的最后一篇,咱们来补上最后一个内容,流程控制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)的更多相关文章
- python基础之流程控制、数字和字符串处理
流程控制 条件判断 if单分支:当一个“条件”成立时执行相应的操作. 语法结构: if 条件: command 流程图: 示例:如果3大于2,那么输出字符串"very good" ...
- python基础之流程控制
流程控制之----if 流程控制,是指程序在运行时,个别的指令(或者是陈述.子程序)运行或者求值的顺序.人生道路上的岔口有很多,在每个路口都是一个选择,在每个路口加上一个标签,选择哪个就是满足哪个条件 ...
- python基础:流程控制案例:
1,简述编译型与解释型的语言,且分别列出你知道的哪些语言属于编译型,哪些属于解释型. 答:简单理解编译型语言类似谷歌翻译,整篇读入整篇翻译,代表语言有C语言,解释型语言类似同 声传译,读入一行翻译 ...
- python基础之流程控制(1)
一.分支结构:if 判断 1.什么要有if 判断语句? 让计算机可以像人一样根据条件进行判断,并根据判断结果执行相应的流程. 2.基本结构 单分支结构 # 单分支 if 条件1: 代码1 代码2 代码 ...
- python基础之流程控制(if判断和while、for循环)
程序执行有三种方式:顺序执行.选择执行.循环执行 一.if条件判断 1.语句 (1)简单的 if 语句 (2)if-else 语句 (3)if-elif-else 结构 (4)使用多个 elif 代码 ...
- Python基础之流程控制for循环
目录 1. 语法 2. for+break 3. for+continue 4. for循环嵌套 1. 语法 while循环可以对任何内容循环,但循环次数不可控 for循环基于容器类型的长度,循环次数 ...
- Python 基础知识----流程控制
判断语句 循环语句 嵌套
- 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 ...
- Python基础之流程控制while循环
目录 1. 语法 2. while+break 3. while+continue 4. while+else 1. 语法 最简单的while循环如下: ''' while <条件>: & ...
随机推荐
- Free Video Player All In One
Free Video Player All In One VLC media player https://github.com/videolan/vlc VideoLAN https://www.v ...
- CSS & Architecture
CSS & Architecture https://sass-guidelin.es/#architecture https://sass-guidelin.es/#the-7-1-patt ...
- GoEasy使用阿里云OSS出现的问题
前言:本人使用goeasy来实现微信小程序里面和其他人的im临时对话窗口,想要实现可以同时发送语音和视频.图片.表情包的话,就要通过goeasy关联到阿里云的存储对象. 报错:The OSS Acce ...
- USDN代币多少钱?USDN有什么用?
加密货币走向主流人群的采用有很多障碍,比如监管.交易所黑客事件等,但最明显的障碍还是它们极端的价格波动.这从加密货币的整个历史长度来看都是如此.一个货币要正常运转,比如成为有效的交换媒介.记账单位以及 ...
- (转载)VoLTE简介
转载地址:http://www.360doc.cn/article/2909773_637471256.html,本文介绍了移动通信领域相关概念,如CS.PS.VoIP.VoLTE.IMS.CSFB. ...
- Mybatis-05 注解开发
Mybatis-05 注解开发 注解开发 注解的核心是反射机制 面向接口编程的根本原因:解耦,可拓展,提高复用,分层开发中.上层不用管具体的实现,大家都遵守共同的标准,使得开发变得容易,规范性好. 1 ...
- 官网GitLab CI/CD英文文档翻译
在查阅GitLab官网的CI/CD功能说明时,全是英文看起来不方便,通过翻译软件自动翻译后"内容失真",看起来很变扭.查阅了百度上的资料发现很多翻译很老旧,有些甚至是挂羊头卖狗肉. ...
- OAuth2理解
OAuth2: 1.他是针对特定问题的一种解决方案 OAuth2主要可以解决两个问题: (1)开放系统间的授权问题 例如:当你想要一个打印机器去打印自己百度网盘中的照片时,该机器并没有访问自己百度网盘 ...
- oracle 中的左外连接、右外连接、全连接
左外连接 左外连接 全连接1.左外连接:表1 left [outer] join 表1 on 条件 在等值连接的基础上会把表1中的其他内容也展示出来 而表2只会显示符合条件的内容 . outer 可省 ...
- 一次 MySQL 线上死锁分析实战
关键词:MySQL Index Merge 前言 MySQL 的锁机制相信大家在学习 MySQL 的时候都有简单的了解过,那既然有锁就必定绕不开死锁这个问题.其实 MySQL 在大部分场景下是不会存在 ...