python中break可以用在for和if中吗_Python的for和break循环结构中使用else语句的技巧...
在Python中的while或者for循环之后还可以有else子句,作用是for循环中if条件一直不满足,则最后就执行else语句。
for i in range(5):
if i == 1:
print 'in for'
else:
print 'in else'
print 'after for-loop'
# in for
# in else
# after for-loop
但我们发现if条件在循环的过程中成立了,最终还是执行了else语句里的内容,这是为什么呢?
好的,我们这时看下面这段程序:
for i in range(5):
if i == 1:
print 'in for'
break
else:
print 'in else'
print 'after for-loop'
# in for
# after for-loop
我们在if里添加了一个break,这是因为else是在for后执行的,但只有for循环正常退出时才会执行else语句(不是由break结束循环)。而当循环是由break语句中断时,else就不被执行。
for/else等效于下面这段代码,可以类似C语言那样添加一个flag:
found = False
for i in range(5):
if i == 1:
found = True
print 'in for'
if not found:
print 'not found'
print 'after for-loop'
# in for
# after for-loop
与for语句相似,while语句中的else子句用法是一样的,else块在循环正常结束和循环条件不成立时执行。
对于条件语句 if- else 我们已经很熟悉了, 但是在Python中,for-else用于处理遍历失败。
比如我们要实现这样一个功能:找出(81,99)中最大的完全平方数并输出,找不到则输出提示。
如果用c++的for循环实现,必须手动的判断for循环是否遍历失败:
#include
#include
using namespace std;
int main()
{
int i;
float n;
for(i=99;i>81;i--)
{
n=sqrt((float)i);
if(n==int(n))
{
cout<
break;
}
}
if(i==81) //边界判断
cout<<"didn't find it!"<
return 0;
}
而用Python的for-else则可简单的实现这一功能:
from math import sqrt
for n in range(99,81,-1):
root = sqrt(n)
if root == int(root):
print n
break
else:
print"Didn't find it!"
在for循环完整完成后才执行else;如果中途从break跳出,则连else一起跳出。
特别需要注意的是如果for中有if语句,else的缩进一定要和for对齐,如果和if对齐,则变成if-else语句,会产生意想不到的错误如下:
from math import sqrt
for n in range(99,81,-1):
root = sqrt(n)
if root == int(root):
print n
break
else:
print"Didn't find it!"
虽然使用for-else节省两行代码同时便于阅读,但是容易和if-else混淆。貌似实际中不会常用,反而更倾向于手动处理。
python中break可以用在for和if中吗_Python的for和break循环结构中使用else语句的技巧...相关推荐
- python if else break_Python的for和break循环结构中使用else语句的技巧
在Python中的while或者for循环之后还可以有else子句,作用是for循环中if条件一直不满足,则最后就执行else语句. for i in range(5): if i == 1: pri ...
- c语言中编程中跳格的写法是,c语言中现代写法,用C语言编程中,一般的格式是怎样的?...
C语言源程序的编程格式归纳如下: 1,强制性规则 1,一个C语言源程序必须有且只有一个MAIN函数. 2,函数名后必须紧跟圆括号对,函数体放在右圆括号")"后的花括号对" ...
- python中continue用法_Python学习笔记之Break和Continue用法分析
本文实例讲述了Python学习笔记之Break和Continue用法.分享给大家供大家参考,具体如下: Python 中的Break 和 Continue break:控制何时循环应该结束 conti ...
- python代码基础题-python每日经典算法题5(基础题)+1(中难题)
现在,越来越多的公司面试以及考验面试对算法要求都提高了一个层次,从现在,我讲每日抽出时间进行5+1算法题讲解,5是指基础题,1是指1道中等偏难.希望能够让大家熟练掌握python的语法结构已经一些高级 ...
- python中遍历字典判断是否存在_python中如何判断值在不在字典中
python中判断值在不在字典中的方法:我们可以通过for循环来进行判断.在python中for循环可以遍历任何序列的项目.语法结构:[for iterating_var in sequence:st ...
- python逐行读取txt写入excel_用python从符合一定格式的txt文档中逐行读取数据并按一定规则写入excel(openpyxl支持Excel 2007 .xlsx格式)...
前几天接到一个任务,从gerrit上通过ssh命令获取一些commit相关的数据到文本文档中,随后将这些数据存入Excel中.数据格式如下图所示 观察上图可知,存在文本文档中的数据符合一定的格式,通过 ...
- break后面的语句还执行吗_12.python之配合循环的四种语句
上节课讲了配合循环语句使用的布尔值和布尔运算,为了能够更好地使用循环语句,本节课会讲述四种能够配合循环语句使用的语句,分别是break语句.continue语句.pass语句.else语句. 一.br ...
- python每日经典算法题5(基础题)+1(中难题)
现在,越来越多的公司面试以及考验面试对算法要求都提高了一个层次,从现在,我讲每日抽出时间进行5+1算法题讲解,5是指基础题,1是指1道中等偏难.希望能够让大家熟练掌握python的语法结构已经一些高级 ...
- python的continue用法_Python学习笔记之Break和Continue用法分析
本文实例讲述了Python学习笔记之Break和Continue用法.分享给大家供大家参考,具体如下: Python 中的Break 和 Continue break:控制何时循环应该结束 conti ...
最新文章
- 图1 ----节选CEC2015年中结果展示
- python手机版打了代码运行不了-如何用iPad运行Python代码?
- svm中支持向量的理解
- 七、股票中的布朗运动和pandas.dataframe.pct_change()
- 使用directX 7结合C#进行2D游戏编程
- 过年,你肯定会用到这款小程序!
- 疑似iPhone XI内部设计图曝光:这个造型爱不起来
- @property括号内属性讲解
- 国王游戏(贪心 + 高精度乘法 + 高精度除法 + 高精度比较大小)
- mysql数据库在工控自动化应用_robotframework自动化系列:操作mysql数据库
- 面向对象编程(五)——构造方法
- 打开计算机没显示硬盘分区,电脑新插了一个硬盘没显示怎么办
- python_业余学习_分词工具jieba 正则表达式清洗微博文本特殊符号 最大匹配算法
- 用telnet逛bbs
- 敏捷教练----敏捷项目管理-史诗、故事、主题
- android铃声代码,Android之来电铃声设置(示例代码)
- 系统架构设计师备考经验分享:边听课边画思维导图,高效学习
- java pdf转html插件pdf2htmlex
- Oracle--rename
- 【可信计算】第九次课:TPM密码资源管理
热门文章
- java.sql.SQLException: Column ‘class‘ not found.异常没有找到列
- spring boot 2.0 java8 下 foundError: javax/xml/bind/JAXBException 解决方法
- 解决linux 升级高版本python3.7后yum不能使用的问题
- webgl(three.js)实现室内定位,楼宇bim、实时定位三维可视化解决方案——第五课
- Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决
- 在Java中哪里可以获得“UTF-8”字符串文字?
- 如何一次关闭所有打开的标签?
- 如何显示jQuery中的加载微调器?
- 获取应用程序文件夹路径的最佳方法
- 如何禁用UITableView选择?