其他语言中else只可以和if进行组合,也就是我们常见的if...else,但是python为else赋予了新的声明。它可以和while 、for 、try一起串联使用。

  下面我们介绍和while串联使用时的效果。

count=0
while count>12:
if (11>0):
print("成立")
break
count+=1
else:
print('不成立') #当while条件不成立,直接跳到该处输出

  for 循环和while用法一样的

def forelse():
c = [1,2]
for i in c:
print(i)
else:
print("输出") #当for循环结束会输出该语句

  try 的用法

def tryelse():
try:
sum = 1+1
except TypeError as reason:
print("报错")
else:
print("到我这里了") #当try块中的语句正常执行完毕会执行该方法。

  with ...:用法

# 第一种写法
def withas():
try:
f = open("文字.txt")
print(f.read())
f.close()
except OSError as reason:
print("读取错误")
else:
print("完成")
# 第二种写法 with,一定不要忘记 : 哦
def withas2():
try:
with open("文字.txt") as f:
print(f.read())
f.close()
except OSError as reason:
print("读取错误")
else:
print("完成")

  为什么会用到with,是因为有的时候我们可能在使用open(file)打开一个文件的时候,可能这个文件并不存在,那么这个时候就会报错,而我们可能会将这种方法卸载一个try except finally这样的语句里,并且在finally里边可能添加了f.close()这样的语句,但是我们这个时候并没有打开一个f的文件,因为这个文件并不存在,所以没有必要关闭这个文件。这时候我们就用到了with。

  错误代码展示:

def withas1():
try:
f = open("文字1.txt") #该文件不存在哦
print(f.read())
except OSError as reason:
print("读取错误")
finally:
f.close() #--------------错误输出
读取错误
Traceback (most recent call last):
File "E:/python/day-2/whileelse.py", line 46, in <module>
withas1()
File "E:/python/day-2/whileelse.py", line 44, in withas1
f.close()
UnboundLocalError: local variable 'f' referenced before assignment
>>>

  从错误输出我们就可以看到,报的错误是局部变量错误,说的就是f并不存在,也就是没有打开这个文件。

python,中使用while...else 和 for...else 还有try...else,另外就是运用with关键字的更多相关文章

  1. 【转载】Python中如何高效实现两个字典合并,三种方法比较。

    本文转载自:http://www.pythoner.com/13.html Python中将两个字典进行合并操作,是一个比较常见的问题.本文将介绍几种实现两个字典合并的方案,并对其进行比较. 对于这个 ...

  2. python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍

    目录 python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍. 二丶列表,其它语言称为数组 1.列表的定义,以及语法 2.列表的使用,以及常用方法. 3.列表的常用操作 ...

  3. [转]Python中的str与unicode处理方法

    早上被python的编码搞得抓耳挠腮,在搜资料的时候感觉这篇博文很不错,所以收藏在此. python2.x中处理中文,是一件头疼的事情.网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自 ...

  4. python中的Ellipsis

    ...在python中居然是个常量 print(...) # Ellipsis 看别人怎么装逼 https://www.keakon.net/2014/12/05/Python%E8%A3%85%E9 ...

  5. python中的默认参数

    https://eastlakeside.gitbooks.io/interpy-zh/content/Mutation/ 看下面的代码 def add_to(num, target=[]): tar ...

  6. Python中的类、对象、继承

    类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自obj ...

  7. python中的TypeError错误解决办法

    新手在学习python时候,会遇到很多的坑,下面来具体说说其中一个. 在使用python编写面向对象的程序时,新手可能遇到TypeError: this constructor takes no ar ...

  8. python中的迭代、生成器等等

    本人对编程语言实在是一窍不通啊...今天看了廖雪峰老师的关于迭代,迭代器,生成器,递归等等,word天,这都什么跟什么啊... 1.关于迭代 如果给定一个list或tuple,我们可以通过for循环来 ...

  9. python2.7高级编程 笔记二(Python中的描述符)

    Python中包含了许多内建的语言特性,它们使得代码简洁且易于理解.这些特性包括列表/集合/字典推导式,属性(property).以及装饰器(decorator).对于大部分特性来说,这些" ...

  10. python cookbook 学习系列(一) python中的装饰器

    简介 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理.缓 ...

随机推荐

  1. Qt ------ excel 操作

    写 excel // step1:连接控件 QAxObject* excel = new QAxObject(this); excel->setControl("Excel.Appli ...

  2. http协议中的请求方式

    get:获取url传的查询字符串(action=show)表单和连接的url中传的值.容量2K左右. post:以post方式提交,获取表单和连接的url中传的值.容量8M左右. delete:删除某 ...

  3. 【3D动画建模设计工具】Maxon Cinema 4D Studio for Mac 20.0

    图标 Icon   软件介绍 Description Maxon Cinema 4D Studio R20 ,是由德国公司Maxon Computer一款适用于macOS系统的3D动画建模设计工具,是 ...

  4. JSON语法、对象、遍历数组的区别和基本操作

    JSON 语法规则 JSON 语法是 javascript 对象表示语法的子集. 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 JSON 名称/值对 JSON 数据的书写格式是: ...

  5. chrome浏览器安装不上的惨痛经历

    项目在赶进度的时候,手贱把chrome的一些文件删除了,整个浏览器都没法打开 决定重装下,但是连卸载的功能都打不开了 上网重新下载了个安装包,发现安装包都打不来 很绝望,查了很多资料 很多人说要删除注 ...

  6. Hadoop问题:Input path does not exist: hdfs://Master:9000/user/hadoop/input

    问题描述: org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: hdfs:/ ...

  7. Mark标记功能的实现(像手工标记的一样)

    今天看到一个网站的标记功能,觉得很不错,先记录一下,emm <!DOCTYPE html> <html lang="en"> <head> &l ...

  8. zepto.js

    // Zepto.js// (c) 2010-2016 Thomas Fuchs// Zepto.js may be freely distributed under the MIT license. ...

  9. C#中的特性(Attributes)

    约定: 1.”attribute”和”attributes”均不翻译 2.”property”译为“属性” 3.msdn中的原句不翻译 4.”program entity”译为”语言元素” Attri ...

  10. plsql developer 11 + Oracle 11g 开发环境setup

    这是一个很水的博客, 介绍搭建plsql developer 11+ Oracle 11g 开发环境. 1. 本机上安装Oracle 11g express 对于开发足够了, 300MB的下载文件, ...