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中使用Mako模版库的简单教程
Apr 08 Python
python数据结构之图的实现方法
Jul 08 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
Jan 31 Python
Python3中关于cookie的创建与保存
Oct 21 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
Jan 29 Python
利用Python产生加密表和解密表的实现方法
Oct 15 Python
如何解决django-celery启动后迅速关闭
Oct 16 Python
基于Python解密仿射密码
Oct 21 Python
python数据预处理方式 :数据降维
Feb 24 Python
在 Pycharm 安装使用black的方法详解
Apr 02 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
May 27 Python
Python中的__init__作用是什么
Jun 09 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
操作Oracle的php类
2006/10/09 PHP
PHP数据流应用的一个简单实例
2012/09/14 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
javascript 最常用的10个自定义函数[推荐]
2009/12/26 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
浅谈javascript实现八大排序
2015/04/27 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
详解如何将angular-ui的图片轮播组件封装成一个指令
2017/05/09 Javascript
AngularJS实现的回到顶部指令功能实例
2017/05/17 Javascript
JS实现加载时锁定HTML页面元素的方法
2017/06/24 Javascript
Vue页面骨架屏的实现方法
2018/05/22 Javascript
JS通过位运算实现权限加解密
2018/08/14 Javascript
详解vue路由篇(动态路由、路由嵌套)
2019/01/27 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
2019/05/22 Javascript
vue elementUI使用tabs与导航栏联动
2019/06/21 Javascript
微信小程序(订阅消息)功能
2019/10/25 Javascript
Vue最新防抖方案(必看篇)
2019/10/30 Javascript
uni-app如何实现增量更新功能
2020/01/03 Javascript
[10:42]Team Liquid Vs Newbee
2018/06/07 DOTA
python让图片按照exif信息里的创建时间进行排序的方法
2015/03/16 Python
Python实现的异步代理爬虫及代理池
2017/03/17 Python
python脚本当作Linux中的服务启动实现方法
2019/06/28 Python
python3安装crypto出错及解决方法
2019/07/30 Python
python绘制分布折线图的示例
2020/09/24 Python
老海军美国官网:Old Navy
2016/09/05 全球购物
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
一套C#面试题
2013/10/09 面试题
新闻发布会主持词
2014/03/28 职场文书
销售员岗位职责
2014/06/09 职场文书
运动会横幅标语
2014/06/17 职场文书
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL
数据分析数据库ClickHouse在大数据领域应用实践
2022/04/03 MySQL
CentOS 7安装mysql5.7使用XtraBackUp备份工具命令详解
2022/04/12 MySQL
Python matplotlib多个子图绘制整合
2022/04/13 Python