python return逻辑判断表达式实现解析


Posted in Python onDecember 02, 2019

这篇文章主要介绍了python return逻辑判断表达式实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一.return逻辑判断表达式 and

and:遇假则假,所以前面为假就不执行和判断后面直接返回假;前面为真则继续判断执行后面直到表达式结束或者出现假为

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:何以解忧
@Blog(个人博客地址): shuopython.com
@WeChat Official Account(微信公众号):猿说python
@Github:www.github.com
 
@File:python_return.py
@Time:2019/10/6 19:48
 
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
"""
 
def fun1():
  # 所有条件都为真,返回最后一个值
  return "21" and True
 
def fun2():
  # 检测所有表达式,直到遇到假为止,并返回假
  return 54 and 1 and True and 0
 
def fun3():
  # 遇到真,继续后面的判断,直到遇到假为止,如果遇见假直接返回,不再继续判断
  return 1 and True and False and 54 and 0
 
print(fun1())
print(fun2())
print(fun3())

输出结果:

True
0
False

小敲门:

1.如果有假的表达式:返回值为第一个假表达式的结果;

2.如果没有假的表达式:返回值为最后一个真表达式的结果;

二.return逻辑判断表达式 or

or:遇真则真,所以前面为真就不执行和判断后面;前面为假则继续判断执行后面直到表达式结束或者出现真为止;

def fun1():
  # 所有条件都为真,返回第一个真的表达式
  return "21" or True
 
def fun2():
  # 所有条件都为假,直到遇到真为止,并返回真,没有真则返回最后一个假
  return "" or False or 0
 
def fun3():
  # 直到遇到真为止,并返回真,不在继续后面的判断
  return 0 or True or False or 54 or 0
 
print(fun1())
print(fun2())
print(fun3())

输出结果:

21
0
True

小敲门:

1.如果有真的表达式:返回值为第一个真表达式的结果;

2.如果没有真的表达式:返回值为最后一个假表达式的结果;

三.return逻辑判断表达式 and和or配合使用

and和or配合使用:其实并没有先后顺序,表达式重前往后依次执行,上一个表达式的结果作为下一个表达式的开始;

def fun1():
  '''
  动作分解:
 
  第一步:"21" and True 返回结果 True
  第二步:True or 1 返回结果 True
  注意第二步 True or 1 中的 True 是第一步返回的结果并不是表达式中的True
  '''
  return "21" and True or 1 #等价:return (("21" and True) or 1)
 
def fun2():
  '''
  动作分解:
 
  第一步:"" or False 返回结果 False
  第二步:False and 0 返回结果 False
  注意第二步 False and 0 中的 False 是第一步返回的结果并不是表达式中的 False
  '''
  return "" or False and 0 #等价:return (("" or False) and 0)
 
def fun3():
  '''
  动作分解:
 
  第一步:0 or True 返回结果 True
  第二步:True and False 返回结果 False
  第三步:False or 54 返回结果 54
  第四步:54 and 0 返回结果 0
  注意:上一步的结果作为下一步的开始
  '''
  return 0 or True and False or 54 and 0 #等价:return ((((0 or True) and False) or 54) and 0)
 
def fun4():
  '''
  动作分解:
 
  第一步:0 and True and False 返回结果 0
  第二步:0 or 54 返回结果 54
  第三步:54 and 0 返回结果 0
  注意:上一步的结果作为下一步的开始
  '''
  return 0 and True and False or 54 and 0 #等价:return (((0 and True and False) or 54) and 0)
 
print(fun1())
print(fun2())
print(fun3())
print(fun4())

输出结果:

True
False
0
0

四.重点总结

其实作为一个普通函数直接返回字符串或者其他数据类型就完了,为何非要这样费力不讨好?学习学习,学习是一个过程,我想我们应该过程中成长,不然即使写了一万次hello world又有何用?return逻辑判断表达式 / 字典推导式 / 列表推导式 都是在各种开源项目中频繁使用得写法,这往往也是编程水平的一种提现。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python单链表的简单实现方法
Sep 23 Python
详解Python中列表和元祖的使用方法
Apr 25 Python
python实现中文转换url编码的方法
Jun 14 Python
尝试用最短的Python代码来实现服务器和代理服务器
Jun 23 Python
Python 字典与字符串的互转实例
Jan 13 Python
Python中的random.uniform()函数教程与实例解析
Mar 02 Python
python中tkinter的应用:修改字体的实例讲解
Jul 17 Python
django-rest-swagger的优化使用方法
Aug 29 Python
Python爬取爱奇艺电影信息代码实例
Nov 26 Python
python扫描线填充算法详解
Feb 19 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
Apr 29 Python
Python 批量下载阴阳师网站壁纸
May 19 Python
Python线程障碍对象Barrier原理详解
Dec 02 #Python
python 循环数据赋值实例
Dec 02 #Python
python创建n行m列数组示例
Dec 02 #Python
python 创建一维的0向量实例
Dec 02 #Python
python 初始化一个定长的数组实例
Dec 02 #Python
Python生态圈图像格式转换问题(推荐)
Dec 02 #Python
python 申请内存空间,用于创建多维数组的实例
Dec 02 #Python
You might like
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
PHP获取MAC地址的具体实例
2013/12/13 PHP
thinkphp实现图片上传功能
2016/01/13 PHP
thinkphp跨库操作的简单代码实例
2016/09/22 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
2020/05/02 PHP
HR vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
javascript 基础篇2 数据类型,语句,函数
2012/03/14 Javascript
关于JS判断图片是否加载完成且获取图片宽度的方法
2013/04/09 Javascript
Javascript中查找不以XX字符结尾的单词示例代码
2013/10/15 Javascript
js实现幻灯片效果(基于jquery插件)
2013/11/05 Javascript
js用拖动滑块来控制图片大小的方法
2015/02/27 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
谈谈VUE种methods watch和compute的区别和联系
2017/08/01 Javascript
vue实现移动端图片裁剪上传功能
2020/08/18 Javascript
Vue.js 中的 v-cloak 指令及使用详解
2018/11/19 Javascript
JS数据类型STRING使用实例解析
2019/12/18 Javascript
ES6函数实现排它两种写法解析
2020/05/13 Javascript
返回上一个url并刷新界面的js代码
2020/09/12 Javascript
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
Python中type的构造函数参数含义说明
2015/06/21 Python
Python学习教程之常用的内置函数大全
2017/07/14 Python
Python作用域与名字空间原理详解
2020/03/21 Python
CSS3实现超慢速移动动画效果非常流畅无卡顿
2014/06/15 HTML / CSS
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
接口中的方法可以是abstract的吗
2015/07/23 面试题
益模软件Java笔试题
2012/03/27 面试题
高中数学教师求职信
2013/10/30 职场文书
给老婆的搞笑检讨书
2014/01/12 职场文书
大学自主招生自荐信范文
2014/02/26 职场文书
职业规划实施方案
2014/06/10 职场文书
篮球社团活动总结
2014/06/27 职场文书
现货白银电话营销话术
2015/05/29 职场文书
go语言中切片与内存复制 memcpy 的实现操作
2021/04/27 Golang
vue-cropper插件实现图片截取上传组件封装
2021/05/27 Vue.js