『无为则无心』Python基础 — 15、Python流程控制语句(for循环语句)
提示:上一篇文章中详细的说明了
while循环语句,本篇文章来说说Python中的for循环语句。
1、for循环语法
# 注:临时变量是程序员自定义的临时变量。
for 临时变量 in 序列:
重复执行的代码1
重复执行的代码2
......
for循环的代码块会执行多次,序列中有几个元素就会执行几次,
每执行一次就会将序列中的一个元素赋值给临时变量,
所以我们可以通过临时变量,来获取列表中的每个元素。
快速体验:
"""
1. 准备一个数据序列
2. 进行for循环
"""
str1 = 'Hello Pyhton'
for i in str1:
print(i)
执行结果:

2、for循环中的break和continue
for循环中的break和continue和while循环中的用法一样。
下面我们直接练习来说明。
(1)break说明
str1 = 'Hello Pyhton'
for i in str1:
if i == ' ': # 空格
print('遇到空格不打印')
break
print(i)
执行结果:

(2)continue说明
str1 = 'Hello Pyhton'
for i in str1:
if i == ' ': # 空格
print('遇到空格不打印')
continue
print(i)
执行结果:

3、循环+else结构
循环(while循环和for循环)可以和else配合使用,else下方缩进的代码指的是,当循环正常结束之后要执行的代码。
(1)while...else
1)描述:
需求:女朋友生气了,要惩罚:连续说5遍“媳妇儿,我错了”,如果道歉正常完毕女朋友就原谅我了,这个程序怎么写?
i = 1
while i <= 5:
print('媳妇儿,我错了')
i += 1
print('媳妇儿原谅我了...')
思考: 这个
是的,能够执行。
但是这里想说的是,只有惩罚的循环正常结束了,才能说出原谅你了。如果你的惩罚没有正常结束,是不能够被原谅的。
所以像这种惩罚后被原谅,这两部分是有一种依赖关系的,这个时候就不能像上边这样写了,就需要使用
while...else格式的循环语句来完成编码。
2)语法:
while 条件表达式:
条件成立重复执行的代码
else:
循环正常结束之后要执行的代码
3)示例:
"""
1. 书写道歉的循环。
2. 循环正常结束要执行的代码写在else中。
"""
i = 1
while i <= 5:
print('媳妇儿,我错了')
i += 1
else:
print('媳妇原谅我了,真开心,哈哈哈哈')
"""
输出结果:
媳妇儿,我错了
媳妇儿,我错了
媳妇儿,我错了
媳妇儿,我错了
媳妇儿,我错了
媳妇原谅我了,真开心,哈哈哈哈
"""
(2)while...else退出循环的方式
需求:女朋友生气,要求道歉5遍:媳妇儿,我错了。道歉到第三遍的时候,媳妇埋怨这一遍说的不真诚,是不是就是要退出循环了?这个退出有两种可能性:
- 更生气,不打算原谅,也不需要道歉了,程序如何书写?
- 只一遍不真诚,可以忍受,继续下一遍道歉,程序如何书写?
1)break方式
i = 1
while i <= 5:
if i == 3:
print('这遍说的不真诚,别说了!')
break
print('媳妇儿,我错了')
i += 1
else:
print('媳妇原谅我了,真开心,哈哈哈哈')
执行结果:

总结:所谓
else指的是循环正常结束之后要执行的代码,即如果是break终止循环的情况(代表非正常情况),else下方缩进的代码将不执行。
2)continue方式
i = 1
while i <= 5:
if i == 3:
print('这遍说的不真诚,给我注意点!')
i += 1
continue
print('媳妇儿,我错了,')
i += 1
else:
print('媳妇原谅我了,真开心,哈哈哈哈')
执行结果:

总结:因为
continue是退出当前一次循环,继续下一次循环,所以该循环在continue控制下是可以正常结束的,当循环结束后,则执行了else缩进的代码。
(3)for...else
和while...else的用法一样的。
1) 语法:
for 临时变量 in 序列:
重复执行的代码
...
else:
循环正常结束之后要执行的代码
所谓
else指的是循环正常结束之后要执行的代码,即如果是break终止循环的情况,else下方缩进的代码将不执行。
2)示例:
str1 = 'Python'
for i in str1:
print(i)
else:
print('循环正常结束之后执行的代码')
(4)for...else退出循环的方式
1)break终止循环
str1 = 'Python'
for i in str1:
if i == 'h':
print('遇到h不打印')
break
print(i)
else:
print('循环正常结束之后执行的代码')
执行结果:

没有执行
else缩进的代码。
2)continue终止循环
str1 = 'Python'
for i in str1:
if i == 'h':
print('遇到h不打印')
continue
print(i)
else:
print('循环正常结束之后执行的代码')
执行结果:

因为
continue是退出当前一次循环,继续下一次循环,所以该循环在continue控制下是可以正常结束的,当循环结束后,则执行了else缩进的代码。
『无为则无心』Python基础 — 15、Python流程控制语句(for循环语句)的更多相关文章
- 『无为则无心』Python基础 — 12、Python运算符详细介绍
目录 1.表达式介绍 2.运算符 (1)运算符的分类 (2)算数运算符 (3)赋值运算符 (4)复合赋值运算符 (5)比较运算符 3.逻辑运算符 拓展1:数字之间的逻辑运算 拓展2:Python中逻辑 ...
- 『无为则无心』Python基础 — 14、Python流程控制语句(while循环语句)
目录 1.什么是循环结构 2.while循环 (1)while循环的语法 (2)while循环的应用 3.while语句的死循环 4.break和continue 5.while循环嵌套 (1)应用场 ...
- 『无为则无心』Python基础 — 4、Python代码常用调试工具
目录 1.Python的交互模式 2.IDLE工具使用说明 3.Sublime3工具的安装与配置 (1)Sublime3的安装 (2)Sublime3的配置 4.使用Sublime编写并调试Pytho ...
- 『无为则无心』Python基础 — 6、Python的注释
目录 1.注释的作用 2.注释的分类 单行注释 多行注释 3.注释的注意事项 4.什么时候需要使用注释 5.总结 提示:完成了前面的准备工作,之后的文章开始介绍Python的基本语法了. Python ...
- 『无为则无心』Python基础 — 7、Python的变量
目录 1.变量的定义 2.Python变量说明 3.Python中定义变量 (1)定义语法 (2)标识符定义规则 (3)内置关键字 (4)标识符命名习惯 4.使用变量 1.变量的定义 程序中,数据都是 ...
- 『无为则无心』Python基础 — 10、Python字符串的格式化输出
目录 1.什么是格式化输出 2.Python格式化输出的五种方式 方式一:字符串之间用+号拼接 方式二:print()函数可同时输出多个字符串 方式三:占位符方式 方式四:f格式化方式(推荐) 方式五 ...
- 『无为则无心』Python基础 — 13、Python流程控制语句(条件语句)
目录 1.流程控制基本概念 2.选择结构(条件语句) (1)条件语句概念 (2)if语句语法 (3)if...else...语句 (4)多重判断 (5)if语句嵌套 3.应用:猜拳游戏 4.三元运算符 ...
- 『无为则无心』Python序列 — 24、Python序列的推导式
目录 1.列表推导式 (1)快速体验 (2)带if的列表推导式 (3)多个for循环实现列表推导式 2.字典推导式 (1)创建一个字典 (2)将两个列表合并为一个字典 (3)提取字典中目标数据 3.集 ...
- 『无为则无心』Python函数 — 29、Python变量和参数传递
目录 1.Python的变量 (1)Python变量不能独立存在 (2)变量是内存中数据的引用 (3)注意点 2.了解变量的引用 3.Python的参数传递(重点) (1)示例 (2)结论 (3)总结 ...
随机推荐
- ES6中的Set和Map对象数据结构
set对象数据结构 构建某一类型的对象 -对象的实例化 let arr = [1, 2, 3, 3, 4, 5] let rec = new Set(arr)//可以传参数,数组或者对象 consol ...
- .NET程序崩溃了怎么抓 Dump ? 我总结了三种方案
一:背景 1. 讲故事 最近几天接到了几个crash的求助,可能这几个朋友没玩过怎么去生成dump,只能手把手教,感觉也不是一个办法,所以有必要总结一下,后续再有朋友咨询的话,我就可以把这篇文章丢过去 ...
- [刷题] PTA 02-线性结构1 两个有序链表序列的合并
程序: 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 typedef int ElementType; 5 typedef st ...
- 折腾gcc/g++链接时.o文件及库的顺序问题
gcc/g++链接时.o文件以及库的顺序问题 1 写在前面 最近换了xubuntu12.4,把原来的项目co出来编译的时候报"undefined reference to".猜测是 ...
- x小结:certutil -hashfile D:\1.exe MD5
在Win7上,MD5不要使用小写,在Win10上没有这个问题 x小结:certutil -hashfile D:\1.exe MD5certutil -hashfile D:\1.exe SHA1ce ...
- 查看 swappiness 值
Swap的使用频率 发表于 2017-06-02 | 分类于 Linux | 评论数: 通过调整swappiness的值, 可以调整系统使用 swap 的频率 该值越小, 表示越大限度的使用物理 ...
- 配置trunk和access
配置trunk和access 拓扑图 PC地址设置 PC1 :192.168.1.1 vlan10 PC2 :192.168.1.2 vlan10 交换机配置 LSW3配置 <Huawei> ...
- BogoMips 和cpu主频无关 不等于cpu频率
http://tinylab.org/explore-linux-bogomips/ 内核探索:Linux BogoMips 探秘 Tao HongLiang 创作于 2015/05/12 打赏 By ...
- Rust模块化
Rust模块化 模块化有助于代码的管理和层次逻辑的清晰 Rust模块化有多种方式: 1.嵌套模块 嵌套模块就是直接在要使用模块的文件中声明模块 mod food{//声明模块 pub struct C ...
- 分布式存储ceph---openstack对接ceph存储后端(4)
ceph对接openstack环境 一.使用RBD方式提供存储,如下数据: 1.image:保存glance中的image 2.volume存储:保存cinder的volume:保存创建虚拟机时选择创 ...