温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python中while、for、try except语句中的else有什么区别

发布时间:2021-06-17 17:54:20 来源:亿速云 阅读:234 作者:chen 栏目:编程语言

这篇文章主要介绍“python中while、for、try except语句中的else有什么区别”,在日常操作中,相信很多人在python中while、for、try except语句中的else有什么区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python中while、for、try except语句中的else有什么区别”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Python中的else是基础的语句,它的两种使用形式是:

if condition:      doSomeThings  else:      doAnthorThings

以及

if condition1:      do1  elif condition2:      do2  else:      doOtherThings

这两个用法理解起来没有问题。下面要看的是for,while循环和try异常处理语句中的else的用法。

一、for,while循环中的else

for,while循环中,else用于循环正常结束,且循环体中没有break、return和异常抛出,则执行else语句块中的内容。 例如,我们判断列表ls中是否全是奇数。普通情况下,需要引入一个标志变量allOdd,指示所有变量都是奇数,有偶数出现则将此变量设为False。写法如下:

ls = [1, 3, 5, 7, 9]  allOdd = True  for i in ls:      if i % 2 == 0:          allOdd = False          break  if allOdd:      print('list ls %r constructed by only odd number' % ls)  else:      print('list ls %r ** is\'t ** constructed by only odd number' % ls)

利用else指示循环正常结束的功能,采用for循环或者while循环加else的写法如下:

for i in ls:      if i %2 == 0:          print('list ls %r ** is\'t ** constructed by only odd number' % ls)          break  else:      print('list ls %r constructed by only odd number' % ls)

可见,for循环使用else语句之后,节省了指示性变量allOdd,以及相应的处理语句。整个程序语义上更简洁、逻辑上更顺畅。

二、try异常处理语句中的else

try except异常捕获处理语句中,else定义用于没有异常出现时执行的部分。 例如,当我们处理有可能导致异常的计算时,else语句定义的部分,可以确保没有异常发生,得到了正确计算结果。例子是计算简单的除法。普通写法:

try:      result = a/b      print(result)  except TypeError:      print('输入数字')  except ZeroDivisionError:      print('被除数不能为零')

采用else语句时的写法:

try:      result = a/b  except TypeError:      print('输入数字')  except ZeroDivisionError:      print('被除数不能为零')  else:       print('计算结果%r'%result)

也就是说,try except else finally分别对应如下关系:

  •  try       可能抛出异常的语句。

  •  except    捕获异常,处理异常。

  •  else      无异常,明确得知try语句中无异常。而不是这两种情况:有异常;有异常但处理了。

  •  finally   有或无异常,都执行的语句,一般为关闭、清理工作。

else语句在try except句法中最主要的功能,是明确指出了没有异常出现时才执行的语句块。与出现异常,或者出现异常并且处理了这两种情况是分开的。这个语法块是在没有异常出现时执行的,保证了环境的正确性。

三、简单总结

  •  for while循环中,else用于循环正常结束,且循环体中没有break、return或异常抛出,则执行else语句块中的内容。

  •  try except异常捕获处理语句中,else是定义用于没有异常出现时执行的部分。

  •  不同于if else 语句,以上两种else用法看起来有些复杂。简单理解,可以把else语句块当做语句主体中“没有幺蛾子“时执行的语句块。这样就可以简单理解了else的两种用法了。

  •  许多人反对在此处复用else关键字来表达除外情况,认为then关键字或许更好(luciano ramalho《fluent python》),更甚者主张遵循“最小惊讶原则”,即在for和while语境里不要用else关键字,以免它给人带来疑惑(Brett Slatkin《Effective Python》)。笔者认为,如果把两处else统一理解为“没有出现问题,没有幺蛾子”,那么此时的else语法会变成一个很有用的技巧。 

到此,关于“python中while、for、try except语句中的else有什么区别”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI