break continue区别和用法_[分享]Python专题之流程控制(进阶用法2)
pass 与接口
Python中最特别的关键字之一便是pass
,它放在类或函数里,表示类和函数暂不定义。
class PassClass: pass
def PassFun(): pass
如上实现最精简的类和函数定义。
今天跟大家分享一个pass
的特别有用的用法,尤其对Java
语言的interface
,implements
等较熟悉的朋友,在Python中也能实现类似写法。
首先安装一个包:
pip install python-interface
下面是这个包的基本用法,首先创建一个接口类:
from interface import implements, Interface
class MyInterface(Interface):
def method1(self, x): pass
def method2(self, x, y): pass
下面实现接口:
class MyClass(implements(MyInterface)):
def method1(self, x): return x * 2
def method2(self, x, y): return x + y
这个包对熟悉Java
语言的朋友还是非常实用,接口和实现类用法,可以平稳过渡到Python
语言中。
return 和 yield
程序遇到 return
和 yield
都是立即中断返回。那么yield
和return
又有什么不同呢?
与return
不同,yield
中断返回后,下一次迭代会进入到yield后面的下一行代码,而不像return下一次执行还是从函数体的第一句开始执行。
用图解释一下:
第一次 yield 返回 1
第二次迭代,直接到位置2这句代码。
然后再走for
,再yield
,重复下去,直到for
结束。
以上就是理解yield
的重要一个点,当然yield
还会与from
连用,还能与send
实现协程等,这些都放在后面的专题。
短路原则
最后以一个有意思的短路问题结束流程控制专题。
布尔运算符 and
和 or
也被称为短路运算符:它们的参数从左至右解析,一旦可以确定结果解析就会停止。
Python中的短路运算符常见的有两个:and
, or
A and B : 如果 A 不成立,B 不会执行
A or B : 如过 A 成立,B不会执行
所以被称为短路运算符
举几个例子一看就明白,请看下面代码:
代码1:
a = ''b = a and 'i will not execute'print(b)
打印结果为空,因为and
运算符从左到右检查,一旦a
为空即为假,则结果已确定为假,'i will not execute'
被短路。
代码2:
a = 'python'b = a or 'i will not execute'print(b)
打印结果为:python
,因为or
运算符从左到右检查,一旦a
为真则结果已确定为真,所以'i will not execute'
被短路。
总结
本专题细致总结了流程控制的基础和进阶用法,具体包括以下:
基础用法
1 if 用法
2 for 用法
3 while,break,continue
进阶用法
4 for 使用注意
5 range 序列
6 Python特色:循环与else
7 pass 与接口
8 return 和 yield
9 短路原则
总结
《end》
break continue区别和用法_[分享]Python专题之流程控制(进阶用法2)相关推荐
- python if else格式_【Python基础】流程控制-if..else
[Python基础]流程控制-if..else ''' 基本的使用 if 条件: 满足条件执行的代码 else: 不满足条件执行的代码 ''' # age = input("Please i ...
- python3 isinstance用法_对python中assert、isinstance的用法详解
1. assert 函数说明: Assert statements are a convenient way to insert debugging assertions into a program ...
- python中result的用法_关于Python中的列表理解及用法
在Python中,列表理解通常用于编写单行语句,这些语句通过可迭代对象进行迭代以创建新的列表或字典.本文首先介绍for循环如何在Python中工作,然后解释如何在Python中使用列表理解. Pyth ...
- python中if else语句用法_讲解Python中if语句的嵌套用法
可能有这样一种情况,当你想检查其他条件后一个条件解析为真.在这种情况下,可以使用嵌套的if结构. 在嵌套的 if 语句结构,可以在一个 if... elif... else 结构里面可有另外一个 if ...
- 好好学python·运算符和流程控制
运算符和流程控制 运算符类型 Python算术运算符 Python比较运算符 Python赋值运算符 Python位运算符 Python逻辑运算符 Python成员运算符 Python身份运算符 Py ...
- Python基础之:Python中的流程控制
文章目录 简介 while语句 if 语句 for语句 Break Continue pass 简介 流程控制无非就是if else之类的控制语句,今天我们来看一下Python中的流程控制会有什么不太 ...
- python和控制流程_Python基础之:Python中的流程控制
简介 流程控制无非就是if else之类的控制语句,今天我们来看一下Python中的流程控制会有什么不太一样的地方. while语句 python中的while语句和其他语言没有什么不一样,我使用wh ...
- Python实验1 流程控制
Python实验1 流程控制 编写程序实现输入成绩,判断是否通过考试. 代码 grade = int(input("请输入成绩:")) if 60 <= grade < ...
- python数组用sum求和_对python中array.sum(axis=?)的用法介绍
根据代码中运行的结果来看,主要由以下几种: 1. sum():将array中每个元素相加的结果 2. axis对应的是维度的相加. 比如: 1.axis=0时,对饮搞得是第一个维度元素的相加, [[0 ...
- python中content的用法_学python吗,教你5个python现学现用的有趣用法
在我们使用python的过程中也会遇到一些有意思的用法,这里找到了一些总结有趣的 话不多说,接着看下去吧!!!!python高薪就业(视频.学习路线.免费获取)shimo.im for-else用法 ...
最新文章
- 全局变量中断原子操作_原子操作原理分析
- 出错处理函数abort、exit、atexit、strerror
- vue-beauty 的v-data-table数据单元不换行
- python3异步协程爬虫_Python实现基于协程的异步爬虫
- 李飞飞:在物体识别之后,计算机视觉还要多久才能理解这个世界?
- 【java基础知识】判断字符串不为空
- TempTable临时表
- Navicat实用功能:数据备份与结构同步
- 蓝桥杯 2014本科C++ B组 李白打酒 三种实现方法 枚举/递归
- Linux 常用系统工具与初始化配置
- debian or ubuntu下 anjuta配置
- Vue 最黑暗的一天
- 随手写了一个鸡肋的二叉树
- Codeforces Round #469 (Div. 2) C. Zebras
- ROS实验笔记之——SLAM无人驾驶初入门
- 1024程序员节是怎么来的?为什么设置程序员节?
- 9 概率机器人 Probabilistic Robotics 二值贝叶斯滤波 占据栅格地图 occupancy grid mapping
- mmdetection特征可视化V2
- LDPC译码原理(公式推导)及其matlab代码实现(超详细)
- 06数据分析 - 预测性分析
热门文章
- Rational Rose和UML可视化建模基础
- Maven修改默认JDK
- 分治法解决最大子数组问题【 转载】
- Java 数据结构之双链表
- spring 监听器
- hdu 1059 (多重背包) Dividing
- Silverlight 5 强袭 !! 圣临王者之三端大一统
- 【阅读理解】机器阅读理解综述(一)
- TF2.0-tf.keras.callbacks.EarlyStopping
- torch -index_select()、Pytorch 之修改Tensor部分值、pytorch中Tensor的数据类型