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 相关文章推荐
python3.3实现乘法表示例
Feb 07 Python
python用字典统计单词或汉字词个数示例
Apr 22 Python
使用python加密自己的密码
Aug 04 Python
Python列表切片用法示例
Apr 19 Python
Python使用django框架实现多人在线匿名聊天的小程序
Nov 29 Python
python整小时 整天时间戳获取算法示例
Feb 20 Python
Pandas之ReIndex重新索引的实现
Jun 25 Python
解决使用export_graphviz可视化树报错的问题
Aug 09 Python
python清空命令行方式
Jan 13 Python
多个版本的python共存时使用pip的正确做法
Oct 26 Python
PyQt5通过信号实现MVC的示例
Feb 06 Python
浅谈python数据类型及其操作
May 25 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
实现分十页分向前十页向后十页的处理
2006/10/09 PHP
PHP项目开发中最常用的自定义函数整理
2010/12/02 PHP
PHP中用正则表达式清除字符串的空白
2011/01/17 PHP
浅析PHP绘图技术
2013/07/03 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
php 多个变量指向同一个引用($b = &$a)用法分析
2019/11/13 PHP
Yii框架组件的事件机制原理与用法分析
2020/04/07 PHP
FF火狐下获取一个元素同类型的相邻元素实现代码
2012/12/15 Javascript
javascript学习(二)javascript常见问题总结
2013/01/02 Javascript
AngularJS中取消对HTML片段转义的方法例子
2015/01/04 Javascript
深入理解JavaScript系列(39):设计模式之适配器模式详解
2015/03/04 Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
2016/09/14 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
鼠标经过出现气泡框的简单实例
2017/03/17 Javascript
Vue中计算属性computed的示例解读
2017/07/26 Javascript
jQuery自动或手动图片切换效果
2017/10/11 jQuery
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
vue - props 声明数组和对象操作
2020/07/30 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
[00:36]DOTA2上海特级锦标赛 Archon战队宣传片
2016/03/04 DOTA
python实现颜色空间转换程序(Tkinter)
2015/12/31 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
python+splinter自动刷新抢票功能
2018/09/25 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
使用Python函数进行模块化的实现
2019/11/15 Python
Python如何实现强制数据类型转换
2019/11/22 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
2020/04/03 Python
Python读写csv文件流程及异常解决
2020/10/20 Python
python实现按日期归档文件
2021/01/30 Python
如何反序的迭代一个序列?how do I iterate over a sequence in reverse order
2012/02/04 面试题
应届生污水处理求职信
2013/11/06 职场文书
火锅店营销方案
2014/02/26 职场文书
小学少先队辅导员述职报告
2015/01/10 职场文书
2015年房产经纪人工作总结
2015/05/15 职场文书
详解Redis复制原理
2021/06/04 Redis
基于Python实现nc批量转tif格式
2022/08/14 Python