Python 中的else
在其他程序语言中,else 似乎只是与 if 关键字有缘分。而与其他的关键字没有联系,不能搭配使用,而在python中,else 除了与 if 匹配外, 还可以与for、while/ try等关键字匹配使用。
for
只有当 for 循环进行完毕时,也就是说 for 循环中没有关键字 break 来终止循环,else 中的代码才能执行,在java 、C++等语言中,我们通常通过一个标示来判断循环有没有执行完,而在Python中,通过 else 代码块可以很简单的实现这个功能,如寻找一个字符串是否在列表中,java 写法如下:
find = ‘Python’
array = ['Beijing', 'Shanghai', 'Wuhan']
found = False
for arr in array:
if find == arr:
print('Found')
found = True
break
if not found:
print('Not Found!')
而使用 else 块,则会使得代码更简洁,这里一定要注意,else 需要与 for关键字对齐:
find = 'java'
array = ['I', 'LOVE', 'YOU']
for arr in array:
if find == arr:
print 'Found'
break
elsle: # else执行 表示没有break语句没有终止循环
print('Not Found!!!')
while
只有当while 循环运行完毕时, 也就是说 while 的循环条件为假而退出,没有关键字 break 来终止循环 while 循环,else 中的代码快才能够运行 这与 for 循环中 else 的用法类似的,如寻找一个字符串是否在一个列表中, java 写法如下:
find = 'Python'
array = ['I', 'LOVE', 'yOU']
found = False
i =
while i < len(array):
if find == array[i]:
print('Found')
found = True
break
i +=
if not found:
print('Not found!!!')
而使用 else 块,则会使得diamante更简洁:
find = 'java'
array = ['I', 'LOVE', 'YOU']
i =
while i < len(array):
if find == array[i]:
print('Found!')
break
i +=
else:
print('Not found!!')
try
只有当 try 快中的代码没有捕获到任何一种异常时,才执行 else 块中代码,其中的语法结构为:
try:
<Code1>
except:
<Code2>
else;
<Code3>
当Code1代码执行的过程中捕获到 name 类型的异常时,就会执行 Code2 代码快。如果没有异常,会执行Code3代码块, 注意是没有异常,如果存在异而 except 模块没捕获到,那么 else 代码块中的代码不会执行,同时也要注意, else 代码块中的异常时没有捕获的,这可以应用在读取文件过程中,如果打开文件翊异常(可能有文件不存在等)就执行except中的代码块,若无异常,则执行 else 中的代码块,Python 代码如下:
filename = ‘Python.txt’
try:
file = open(filename, 'r')
except Exception as error:
print('File Open Error', error)
else:
for line in file:
print(line)
file.close()
Python 中的else的更多相关文章
- [转]Python中的str与unicode处理方法
早上被python的编码搞得抓耳挠腮,在搜资料的时候感觉这篇博文很不错,所以收藏在此. python2.x中处理中文,是一件头疼的事情.网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自 ...
- python中的Ellipsis
...在python中居然是个常量 print(...) # Ellipsis 看别人怎么装逼 https://www.keakon.net/2014/12/05/Python%E8%A3%85%E9 ...
- python中的默认参数
https://eastlakeside.gitbooks.io/interpy-zh/content/Mutation/ 看下面的代码 def add_to(num, target=[]): tar ...
- Python中的类、对象、继承
类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自obj ...
- python中的TypeError错误解决办法
新手在学习python时候,会遇到很多的坑,下面来具体说说其中一个. 在使用python编写面向对象的程序时,新手可能遇到TypeError: this constructor takes no ar ...
- python中的迭代、生成器等等
本人对编程语言实在是一窍不通啊...今天看了廖雪峰老师的关于迭代,迭代器,生成器,递归等等,word天,这都什么跟什么啊... 1.关于迭代 如果给定一个list或tuple,我们可以通过for循环来 ...
- python2.7高级编程 笔记二(Python中的描述符)
Python中包含了许多内建的语言特性,它们使得代码简洁且易于理解.这些特性包括列表/集合/字典推导式,属性(property).以及装饰器(decorator).对于大部分特性来说,这些" ...
- python cookbook 学习系列(一) python中的装饰器
简介 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理.缓 ...
- 用 ElementTree 在 Python 中解析 XML
用 ElementTree 在 Python 中解析 XML 原文: http://eli.thegreenplace.net/2012/03/15/processing-xml-in-python- ...
- Python中操作mysql的pymysql模块详解
Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...
随机推荐
- nginx介绍以及nginx的反向代理
什么是nginx? Nginx 是一个高性能的轻量级的HTTP和反向代理服务器,也是一个邮件服务器. 下载地址 本人使用的是Tengine,它是由淘宝网发起的Web服务器项目.它在Nginx的基础上, ...
- pycharm连接数据库报错Access denied for user 'root'@'localhost' (using password:YES),以及wampserver 2/3个服务器正在运行 问题
使用mysql版本为mysql5.7,参考下列 https://blog.csdn.net/qq_32969455/article/details/79051932 https://blog.csdn ...
- [数据库] MariaDB安装及使用
一.安装MariaDB 1.使用官方源安装marisdb 如果使用阿里云的源,目前的版本号为5.5.64.如果想安装最新的10.x版本,则需要使用MariaDB的官方源. 1)配置官方源: 在/etc ...
- 关于umask的计算方式(简单任性)
1.对于文件夹[d]来说 用755-umask 3.对与文件[f]来说,在2的基础上减掉x属性就完事儿(有x的,减掉1,没有的,就什么也不管) 再来个手绘版本的举例
- PHP弱类型(一)
如图,id的值必须满足上述表达式,才能返回想要的值 与运算,只要出现false,整个表达式返回false 看见后面的==就想尝试一下弱类型绕过,参考资料:https://www.cnblogs.com ...
- 实现简单ORM案例
ORM框架: • 我们希望设计一个可以实现对象和SQL自动映射的框架,但是整体用法和设计比Hibernate简单.砍掉不必要的功能.• 会穿插使用设计模式• 增加 – 将对象对应成sql语句,执行sq ...
- 吴裕雄--天生自然Numpy库学习笔记:NumPy 字节交换
大端模式:指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放 小端模式:指数据的高字节保 ...
- 吴裕雄--天生自然Numpy库学习笔记:NumPy 迭代数组
import numpy as np a = np.arange(6).reshape(2,3) print ('原始数组是:') print (a) print ('\n') print ('迭代输 ...
- HDU1495 非常可乐(BFS/数论)
大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyou一样多.但see ...
- 收藏---wordpress搭建出来的blog
http://blog.luofei.org/2012/02/painters-and-paintings-through-the-eyes-of-faith/