首页 > 其他分享 >三元运算符

三元运算符

时间:2023-02-20 15:37:53浏览次数:42  
标签:Python fat else 运算符 三元 元组 True condition

三元运算符

三元运算符通常在Python里被称为条件表达式,这些表达式基于真(true)/假(not)的条件判断,在Python 2.4以上才有了三元操作。

下面是一个伪代码和例子:

伪代码:

#如果条件为真,返回真 否则返回假
condition_is_true if condition else condition_is_false

例子:

is_fat = True
state = "fat" if is_fat else "not fat"

它允许用简单的一行快速判断,而不是使用复杂的多行if语句。 这在大多数时候非常有用,而且可以使代码简单可维护。

另一个晦涩一点的用法比较少见,它使用了元组,请继续看:

伪代码:

#(返回假,返回真)[真或假]
(if_test_is_false, if_test_is_true)[test]

例子:

fat = True
fitness = ("skinny", "fat")[fat]
print("Ali is ", fitness)
#输出: Ali is fat

这之所以能正常工作,是因为在Python中,True等于1,而False等于0,这就相当于在元组中使用0和1来选取数据。

上面的例子没有被广泛使用,而且Python玩家一般不喜欢那样,因为没有Python味儿(Pythonic)。这样的用法很容易把真正的数据与true/false弄混。

另外一个不使用元组条件表达式的缘故是因为在元组中会把两个条件都执行,而 if-else 的条件表达式不会这样。

例如:

condition = True
print(2 if condition else 1/0)
#输出: 2

print((1/0, 2)[condition])
#输出ZeroDivisionError异常

这是因为在元组中是先建数据,然后用True(1)/False(0)来索引到数据。 而if-else条件表达式遵循普通的if-else逻辑树, 因此,如果逻辑中的条件异常,或者是重计算型(计算较久)的情况下,最好尽量避免使用元组条件表达式。

标签:Python,fat,else,运算符,三元,元组,True,condition
From: https://www.cnblogs.com/zuochuang/p/17137604.html

相关文章

  • 与用户交互、格式化输出、基本运算符
    一、程序与用户交互1.1什么是与用户交互用户交互就是人往计算机中input/输入数据,计算机print/输出结果1.2为什么要与用户交互为了让计算机能够像人一样与用户沟通交流......
  • 05-python运算符
    运算符算术运算符算数运算符:+-*///%**#+var1=7var2=90res=var1+var2print(res)#97#-var1=7var2=90res=var1-var2print(res)#......
  • C# 运算符的优先级
    http://www.51din.com/196852.html在C#中,一共有38个常用的运用符,根据它们所执行运算的特点和它们的优先级,为了便于记忆,它们归为七个等级:1、单元运算符和括号。2、常规算......
  • golang运算符
    1.算术运算符算术运算符有:+,-,*,/,%,++,--1.1加号(+)表示正数数字相加字符串拼接packagemainimport( "fmt")funcmain(){ num1:=+4 num2:=8 str1:="abc......
  • python运算符的优先级规则
    1、先执行优先级高的运算,优先级低的操作后执行,同一优先级的操作按照从左到右的顺序进行。2、也可以像四则运算一样使用小括号,括号中的运算首先执行。实例#优先级使用规律#1......
  • 03. 运算符
    一、运算符与表达式  运算符就是对字面量或者变量进行操作的符号;表达式是指用运算符把字面量或者变量连接起来,符合C语言语法的式子。不同运算符连接的表达式体现的......
  • Java语言常用哪些运算符?
    之前有个大家讨论过java的数据类型,总体来说类型和其他几种语言也相差无几,我为什么会这样说?我们应该都要知道Python可还有个复数类型。这里主要给大家讲解Java运算符的分类......
  • 运算符
    赋值运算符iTemp:=300;算术运算符逻辑运算符(1)布尔运算beginif(i>50)and(j<100)thenresult:=i+j;end;(2)位逻辑运算vari.j,k,l:integer;begin......
  • python语法入门之与用户交互、运算符
    目录一、程序与用户交互1.什么是与用户交互用户交互就是人往计算机中input/输入数据,计算机print/输出结果2.为什么要与用户交互为了让计算机能够像人一样与用户沟通交......
  • vue基础:js的几种循环方式、key值的解释、数组,对象的检测与更新、input事件、v-model双
    目录一、js的几种循环方式1.1v-for可以循环的变量1.2js的循环方式二、key值的解释三、数组,对象的检测与更新四、input事件五、v-model双向数据绑定六、过滤案例七、事件......