Python else子句在for、while、try语句中使用

news/2024/9/6 6:10:52 标签: python

else子句不仅在if语句中使用,还可以用在for、while、try中使用,但是没有得到重视,因为和if/else的差别很大,else这个单词的意思阻碍了对特征的理解

  • for : 仅当for循环正常运行完毕时(即没有被break语句中止)才运行else块。

  • while :仅当while循环条件为假值而退出时(即没有被break语句中止)才运行else块。

  • try :仅当try块中没有异常抛出时才运行else块。

在所有情况下,如果异常、return、break、continue语句导致控制权跳到了复合语句的主块之外,else子句也会被跳过。

其实除了if语句之外,其他语句使用else关键字是个错误。

else的含义是“排他性”这层意思:“要么运行这个循环,要么做那件事”,但是在for和while循环中,else的语义正好相反:“运行完这个循环,然后做这件事”

所以根据英文含义,使用then关键字更好,在for、while、try语句中也就说得通:比如在try中“尝试运行这个,然后做这件事”

可是,添加新的关键字属于语言的重大变化,Guido唯恐之不及。

示例,else的简单使用

python">python">for item in my_list:
    if item == 'banana':
        break
else:
    raise ValueError('No banana Found!')


# 示例代码中,dangerous_call()不抛出异常,才会执行after_call()
try:
    dangerous_call()
except Exception:
    print('Error')
else:
    after_call()

http://www.niftyadmin.cn/n/1662778.html

相关文章

ecshop根据订单号查询物流信息

目标:订单详情页可以根据订单查询当前物流信息。 效果图: 思路:点击后异步请求快递查询api,接受返回信息,拼接。 代码: admin下:order_info.htm //一:顶部插入jquery,在{…

powershell-简要知识和用法

2019独角兽企业重金招聘Python工程师标准>>> 基础 比较运算 Powershell 中的比较运算符 -eq :等于 -ne :不等于 -gt :大于 -ge :大于等于 -lt :小于 -le :小于等于 -contains :包含…

springboot读取自己定义的配置文件的方式以及使用joda_time来处理时间日期

总的来说呢,有两种方式,一种是原始的方式,即使用PropertiesUtils来读取配置文件。 第二种就是使用springboot的注解的方式来读取配置文件。 1、原始方式处理属性和时间日期: 工具类: package com.imooc.project.util;i…

【PyTorch学习笔记】4:在Tensor上的索引和切片

在Tensor上的索引和切片 一般索引 从前往后提供的索引,会依次在每个维度上做索引。 import torcha torch.rand(4, 3, 28, 28) print(a[0].shape) print(a[0, 0].shape) print(a[0, 0, 2, 4]) # 具体到某个元素运行结果: torch.Size([3, 28, 28]) t…

【PyTorch学习笔记】5:对Tensor的变换

对Tensor的变换 改变shape 调整Tensor的shape(通过返回一个新的Tensor),在老版本中这个函数是view(),功能上都是一样的。 import torcha torch.rand(4, 1, 28, 28) print(a.shape) print(a.reshape(4 * 1, 28, 28).shape) pri…

Linux - 查看文件信息的三个命令

ls命令 - list directory contents 显示文件详细信息&#xff1a;ls -l <file name> file命令 — determine file type determine file type &#xff1a;file <file name> output MIME type strings (--mime-type and --mime-encoding) &#xff1a;file -i <f…

Oracle Instant Client的安装和使用

转自&#xff1a;https://www.cnblogs.com/chinalantian/archive/2011/09/09/2172145.html 根据自己需求到Oracle网站&#xff08;http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html&#xff09;下载相应的Instant Client版本软件包&…

【PyTorch学习笔记】6:Broadcasting,对Tensor的合并与拆分,Tensor运算

Broadcasting Broadcasting也就和之前学MPI时候学的广播一样&#xff0c;能够实现自动维度扩展&#xff0c;有点像上节学的expand的功能&#xff0c;但是是自动完成的&#xff0c;而且不需要像repeat那样对数据进行拷贝&#xff0c;可以节省内存。 从最后面的维度开始匹配。在…