【python系统学习11】循环语句里的F4
循环语句里的F4
深入了解下四个新语句,分别是:continue、break、pass、else以及他们搭配for、while循环等语句时,所产生的化学反应。
else
由于continue、break都会和else有一定的规则,所以先来说else。
在python中,else不但可以和if配合使用,它还能跟for循环和while循环配合使用。
伪代码
else用在循环代码的后边,如果循环可以正常结束、即没有遇到break语句。
那么else里的代码块也会在循环结束后被正常执行。
for...in...:
    ...
else:
    ...
while...(条件):
    ...
else:
    ...
示例代码
for循环执行完毕后,else代码就会执行。【前提是for循环中不存在break语句】
for i in range(3):
  print('i的值为:',i)
else:
  print('else中,i的值为:',i)
# 打印结果如下:
# i的值为: 0
# i的值为: 1
# i的值为: 2
# else中,i的值为: 2
while循环执行完毕后,else代码再执行:【前提是while循环中不存在break语句】
elseVal = 1
while elseVal < 3:
  print('elseVal的值:',elseVal)
  elseVal += 1
else:
  print('else中,elseVal的值:',elseVal)
# 打印结果如下:
# elseVal的值: 1
# elseVal的值: 2
# else中,elseVal的值: 3
continue
用来跳过本轮循环、继续执行下次循环。
伪代码
continue语句搭配for循环
for...in...:
    ...
    if ...:
        continue # 如果满足了条件,则跳过本次循环进入下一轮循环
    ...
continue语句搭配while循环
while...(条件):
    ...
    if ...:
        continue # 如果满足了条件,则跳过本次循环进入下一轮循环
    ...
示例代码
continue语句搭配for循环
continue跳过本次循环,for循环跳过后继续执行下一轮循环。
for i in range(5):
  if(i == 3):
    continue
  else:
    print('continue跳过循环', i)
else:
  print('有continue的for循环的else')
# 打印结果如下:
# continue跳过循环 0
# continue跳过循环 1
# continue跳过循环 2
# continue跳过循环 4
# 有continue的for循环的else
可以看打印结果得知,在满足i==3的条件之后,直接跳出了当次的循环没有打印3这个数字。而是进入到下一轮循环,打印出4后,循环才正式完毕。
然后执行了for后边的else语句,说明只是跳出了本轮循环。
continue语句搭配while循环
同for,continue语句在while中的使用作用一样是跳出本轮的循环、继续下一轮的循环。
不再赘述,直接上代码:
continueVal = 1
while continueVal <= 5:
  if continueVal == 3:
    print('if条件中,循环跳过')
    continueVal += 1
    continue
  print('continueVal的值:',continueVal)
  continueVal += 1
else:
  print('循环结束')
# 打印结果:
# continueVal的值: 1
# continueVal的值: 2
# if条件中,循环跳过
# continueVal的值: 4
# continueVal的值: 5
# 循环结束
因为变量"continueVal==3"时if条件成立,执行了continue。跳过了if语句后边代码的执行,也就没打印"continueVal的值: 3"那句话。
但是还打印了后边的“continueVal的值: 4”代码,说明遇到continue后跳回循环开头,继续执行了剩下的循环了。
并且打印了while语句所对应的else语句中“循环结束”这句话。
break
作用
用来打断循环、结束循环
伪代码
break语句搭配for循环
for...in...:
    ...
    if ...:
        break # 如果满足了某一个条件,就提前结束循环
else:
  ... # 如果break执行后,这里的代码不会被执行
break语句搭配while循环
while...(条件):
    ...
    if ...:
        break # 如果满足了某一个条件,就提前结束循环
else:
  ... # 如果break执行后,这里的代码不会被执行
示例
break语句搭配for循环的示例:
break跳出循环,for循环不管是否完成将直接结束。甚至for后边的else都不会再执行。
for i in range(5):
  if(i == 3):
    break 
  else:
    print('break跳过循环', i)
else:
  print('有break的for循环的else')
# 打印结果如下:
# break跳过循环 0
# break跳过循环 1
# break跳过循环 2
可以看打印结果得知,在满足i==3的条件之后,直接跳出了循环。
for循环后边的else都没执行。所以只打印了0、1、2。
break语句搭配while循环的示例:
同for,break语句在while中的使用作用一样是跳出循环。
而break语句常和while True搭配使用,可以打破无限循环:
breakVal = 1
while True:
  if breakVal == 5:
    print('if条件成立,循环被打破。')
    break
  else:
    print('breakVal的值:',breakVal)
    breakVal += 1
else:
  print('循环结束')
# 打印结果:
# breakVal的值: 1
# breakVal的值: 2
# breakVal的值: 3
# breakVal的值: 4
# if条件成立,循环被打破。
条件==5时,直接结束循环,并且不再打印while语句所对应的else语句了。
案例-while True搭配使用
案例2,根据用户的输入来决定是否结束循环:
resultVal = input('你要结束循环吗?yes/no:')
while True:
  if resultVal == 'Y' or resultVal == 'yes' or resultVal == 'y': # 代码中,只要输入'Y'、'yes'、'y'都可以结束死循环
    print('if条件成立,循环被打破。至此结束无限循环。')
    break
  else:
    resultVal = input('你要结束循环吗?yes/no:')
else:
  print('循环结束')
这个案例将会在日后很频繁的被使用。
我的人机交互流程打印如下:
- 你要结束循环吗?yes/no: n 
- 你要结束循环吗?yes/no: 1 
- 你要结束循环吗?yes/no: 哈哈 
- 你要结束循环吗?yes/no: -1 
- 你要结束循环吗?yes/no: y 
- if条件成立,循环被打破。至此结束无限循环。 
只有我输入了'Y'、'yes'或'y'三者中的一个,才可以结束死循环。否则输入其他的,都会继续循环并走到else条件中让你重新输入信息。
案例-密码输入与校验功能
案例3,输入密码并校验准确性功能:
while True:
  passwordVal = input('请输入正确的密码:');
  if passwordVal == '123456':
    break
  else:
    print('密码输入错误,请重新输入。')
print('密码输入正确。通过啦!')
我的人机交互流程打印如下:
- 请输入正确的密码:236 
- 密码输入错误,请重新输入。 
- 请输入正确的密码:235 
- 密码输入错误,请重新输入。 
- 请输入正确的密码:123456 
- 密码输入正确。通过啦! 
pass
顾名思义,即使他的英文意思,跳过。
示例代码
有pass的代码:
for i in range(5):
  if i == 3:
    pass
    print('pass后的内容')
  print('当前是:', i)
else:
  print('for循环的else')
# 打印结果:
# 当前是: 0
# 当前是: 1
# 当前是: 2
# pass后的内容
# 当前是: 3
# 当前是: 4
# for循环的else
没pass的代码:
for i in range(5):
  if i == 3:
    print('pass后的内容')
  print('当前是:', i)
else:
  print('for循环的else')
# 打印结果:
# 当前是: 0
# 当前是: 1
# 当前是: 2
# pass后的内容
# 当前是: 3
# 当前是: 4
# for循环的else
可以发现有pass和没pass没啥区别。打印结果都是一样的。
这样观察不出来pass的作用啊!
pass用途
接下来再看一段代码来了解下pass的用途:
for i in range(5):
  if i == 3:
    
  print('当前是:', i)
else:
  print('for循环的else')
本意是if条件成立的时候、即i为3的时候,啥也不做。
但是不开心的是,打印结果报错了:
#     print('当前是:', i)
#         ^
# IndentationError: expected an indented block
虽然指向了print这一行,说“预期print应该有一个缩进块”。
但实际情况是,希望if语句后边的代码块中应该有代码,不能为空。
那我们真的不想在i等于3的时候,if代码块里写多余的print之类的任何代码时咋办呢?
这时候pass就派上用场了!
for i in range(5):
  if i == 3:
    pass # 直接用pass跳过这里就行了。
  print('当前是:', i)
else:
  print('for循环的else')
综上,这就是pass的用途。
思考题
1、猜数小游戏
- 先定一个变量值,然后让用户输入,猜你的值是多少。 
- 如果猜大了,就告知大了重新填写。 
- 反之如果猜小了,就告知小了重新填写。 
- 如果猜对了就结束游戏。 
# 示例答案见源码同名的python文件中~仅供参考。
2、猜数小游戏 - 升级版
在游戏1的基础上,设定用户可猜词的次数。猜错一次提示他少一次。
在有限的次数中如果都没猜对,最后游戏失败。如果次数内猜对了,就游戏成功。
3、猜数小游戏 - 高级版
在2的基础上,加入游戏的属性,可以记录多个用户的猜测总次数,然后pk、做排行榜。
4、猜数小游戏 - 超级版
再可以3的基础上,记录用户的猜测所用时间,同样次数、同样猜对的情况下,用时间进行pk来做排行榜(需要用到python的time模块)。
本文使用 mdnice 排版
【python系统学习11】循环语句里的F4的更多相关文章
- python基础学习笔记——循环语句(while、for)
		while 循环 流程控制语句 while 1.基本循环 while 条件: # 循环体 # 如果条件为真,那么循环则执行 # 如果条件为假,那么循环不执行 2.break break 用于退出当 ... 
- Python - 条件控制、循环语句 - 第十二天
		Python 条件控制.循环语句 end 关键字 关键字end可以用于将结果输出到同一行,或者在输出的末尾添加不同的字符,实例如下: Python 条件语句是通过一条或多条语句的执行结果(True 或 ... 
- (数据科学学习手札02)Python与R在循环语句与条件语句上的异同
		循环是任何一种编程语言的基本设置,是进行批量操作的基础,而条件语句是进行分支运算的基础,Python与R有着各自不同的循环语句与条件语句语法,也存在着一些相同的地方. Python 1.for循环 ' ... 
- python学习之循环语句
		编程语言中的循环语句,以循环判断达式是否成立为条件,若表达式成立则循环执行该表达式,若不成立则跳出当前执行执行语句且继续执行其后代码. 如下图所示. Python中提供以下循环方式 循环类型 描述 w ... 
- python学习之循环语句的使用
		循环语句主要有while和for循环两大类,接下来先看下while循环 1.while循环(python里没有do while循环语句) while 条件: 代码块 执行程序 2.for循环(可以取二 ... 
- Python学习-while循环语句
		Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务.即重复性的做一件事情 语法形式如下: while 判断条件: 条件满足执行语句…… ... 
- Python学习笔记-循环语句
		While 循环语句 flag=False name = raw_input("请输入:"); numbers=['羊爸爸','羊妈妈','羊宝','牛宝'] while len( ... 
- Python趣味入门5:循环语句while
		跟着小牛叔,找准正确编程入门姿势,每天只要阅读10分钟. 任何语言都有循环语句,在Python里循环更是变化无穷,有基本的循环,有循环else语句,引伸出来的还有迭代器.推导式,咱们先学习最简单的一种 ... 
- python(For/while循环语句)
		一.循环语句 1.while循环 当我们在python中需要重复执行一些动作的时候,这时我们就要用到循环 while循环的结构,当条件成立的时候,就会执行里面的代码 while循环不断的运行,直到指定 ... 
随机推荐
- python 写入 execl 文件 之 xlwt 模块
			1. xlwt 安装 pip install xlwt 2. xlwt 操作, 代码 #!/usr/bin/env python3 import xlwt # 只能创建 新的 excel 文件 # 1 ... 
- 前端、HTML+CSS+JS编写规范(终极版)
			HTMLCSS文档规范 HTML和CSS文档必须采用UTF-8编码格式: HTML文档必须使用HTML5的标准文档格式: HTMLCSS编写规范 HTML和CSS的标签.属性.类名.ID都必须使用小写 ... 
- tab 切换下划线跟随实现
			HTML 结构如下: <ul> <li class="active">不可思议的CSS</li> <li>导航栏</li> ... 
- Java锁的理解
			目录: 1.为什么要使用锁? 2.锁的类型? 1.为什么要使用锁? 通俗的说就是多个线程,也可以说多个方法同时对一个资源进行访问时,如果不加锁会造成线程安全问题.举例:比如有两张票,但是有5个人进来买 ... 
- 大数据篇:ElasticSearch
			ElasticSearch ElasticSearch是什么 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口. ... 
- js 实现简单的选项卡
			<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ... 
- mysql的那些事之架构
			MySQL架构的那些事 此篇博客为原创,欢迎转载,转载时请注明出处,谢谢 最近深入学习了一下mysql的内容,想把自己的理解分享出来. mysql架构 逻辑架构 Connectors:连接器 Mana ... 
- react build本地相对目录 "homepage": ".", package.json
			react build相对目录 "homepage": ".", package.json 
- 【作业1.0】OO第一单元作业总结
			OO第一单元作业已全部完成,为了使这一单元的作业能够收获更多一点,我回忆起我曾经在计算机组成课设中,经常我们会写一些实验报告,经常以此对实验内容反思总结.在我们开始下一单元的作业之前,我在此对OO第一 ... 
- Elasticsearch系列---多字段搜索
			概要 本篇介绍一下multi_match的best_fields.most_fields和cross_fields三种语法的场景和简单示例. 最佳字段 bool查询采取"more-match ... 
