首页 > 编程语言 >Python 逻辑表达式的妙用

Python 逻辑表达式的妙用

时间:2023-07-01 22:57:47浏览次数:49  
标签:妙用 逻辑 name package Python 返回值 表达式

今天偶然看到有这样一段代码,感到很惊讶:

super().__init__(package_name or (robot_name + "_moveit_config"))

语义非常明确且简洁,但是逻辑表达式可以这样用吗?我搜索了一下,原来 or 和 and 表达式的返回值并不一定是 bool 值。

>>> 1 and 2
2
>>> 1 and 0
0
>>> 0 and 1
0
>>> None and 0
>>> 1 or 2
1
>>> 0 or 1
1
>>> None or 0
0

大体总结如下:

  • and / or 表达式的返回值来自参与比较的元素
  • 返回值为可以首先确定表达式值的那个元素的值

回到开头的特殊用法:package_name or (robot_name + "_moveit_config") 如果 package_name 不为空,则 or 表达式值确定,返回 package_name; 其他情况下都返回第二项。
这样实现了一个简单但常见的逻辑:如果传入了 package_name,则使用它,否则用另外的方法构建一个值使用。

标签:妙用,逻辑,name,package,Python,返回值,表达式
From: https://www.cnblogs.com/zkmjolnir/p/17520108.html

相关文章

  • Python之itertools模块
    python的itertools模块介绍itertools模块是Python标准库中的一个模块,提供了多个用于迭代器和循环操作的函数。1.count方法:生成一个从指定起始数开始的整数序列(无穷迭代)函数功能:count函数生成一个无穷迭代器,用于生成一个整数序列。语法:itertools.count(start=0,step=1)参......
  • 免费搭建一个有脾气的聊天机器人,1行Python代码就够了!
    大家好,这里是程序员晚枫。之前在小破站:Python自动化办公社区给大家免费分享了用Python制作一个wx机器人,1行代码人人可用,很多人还想要免费的智能聊天功能。今天终于开发出来了,让我们一起看一下,如何用1行代码,实现智能聊天。我测试了很多次,回复一直很稳定,赶紧去试一下,这个机器人的......
  • 【Python基础】index函数-返回查找对象的首个匹配的索引位置
    描述从列表中找出某个值第一个匹配项的索引位置返回的是查找对象的索引位置,如果没有,就会抛出异常语法List.index(a,start,end)参数解释a要查找的对象(必填)start要查找的范围的开始位置索引(闭区间)(非必填)end要查找的范围的结束位置索引(开区间)(有end就必须有start,有start时可以没end)举......
  • Python潮流周刊#9:如何在本地部署开源大语言模型?
    你好,我是猫哥。这里每周分享优质的Python及通用技术内容,部分为英文,已在小标题注明。(标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)首发于我的博客:https://pythoncat.top/posts/2023-07-01-weekly周刊的投稿通道已开放,请在Github项目中提交issue:https://github.c......
  • python开发入门
    python开发很简单,但环境问题很讨厌。需要搞定各种包scikit-learn,tensorflow,pytorch,pandas,numpy如果遇到超时错误,可通过指定镜像站的方式来搞定pip3installtensorflow-ihttps://pypi.tuna.tsinghua.edu.cn/simple还可以用python包管理软件,condapython开发还需......
  • 从头学Java17-Lambda表达式
    Lambda表达式这一系列教程,旨在介绍lambda的概念,同时逐步教授如何在实践中使用它们。回顾表达式、语句表达式表达式由变量、运算符和方法调用组成,其计算结果为单个值。您已经看到了表达式的示例,如下面的代码所示:intcadence=0;anArray[0]=100;System.out.println("......
  • python的sort函数与sorted函数排序
    1.sort函数sort函数为python内置的列表排序高阶函数,所谓高阶函数,也就是参数为函数或返回值为函数。先看个简单的例子:# 数字列表的排序示例nums=[5,2,9,1,7]nums.sort()print(nums)#输出:[1,2,5,7,9]可以发现排序后,改变了原列表的顺序。而且sort......
  • assert断言与const修饰指针的妙用(模拟实现strcpy函数)
     assert断言目录assert断言的妙用:头文件:使用方法:const修饰指针的妙用主要用法const在*左边const在*右边断言和const修饰指针的应用模拟实现C语言strcpy函数  1、若字符串str1,str2有空指针怎么办?  2.str2改变了怎么办?assert断言的妙用:头文件:#include<assert.h>使用方法:当......
  • grid布局单网格妙用
    grid布局,除了常规的布局使用,还可以,将元素挤到一个网格内,产生特别的布局效果1.一个居中,一个居左或居右 关键代码:.grid-container{display:grid;align-items:center;}.grid-item{grid-area:1/1;}.grid-item:nth-child(1){justify-self:center......
  • 快速使用Python-Tkinter设计界面 方法与代码
    作者:干饭小熊猫链接:https://www.zhihu.com/question/68663671/answer/2519875621来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 1简介1.1Tkinter是什么?Tkinter是Python自带的GUI库,Python的IDEL就是Tkinter的应用实例。Tkinter可以看作是Tk......