一. 逻辑运算符和逻辑表达式

  逻辑表达式是用逻辑运算符和变量连接起来的式子。任何语言的逻辑运算符都一般分为3种——逻辑与、逻辑或和逻辑非。C、Java语言的逻辑运算符用&&、‖、!表示,Python采用and、or、not。下图列出了Python中的逻辑运算符和表达式。

求结果:首先我们需要明白一点,在python中,Flase的值有:None,0 空列表,空字典,空元组,空字符串,自定义的对象实例,该对象的__bool__方法返回False,或__len__返回的0'''v1 = 1 or 3
         v2 = 1 and 3
       v3 = 0 and 2 and 1  v4 = 0 and 2 or 1   v5 = 0 and 2 or 1 or 4     v6 = 0 or False and 1      v1: 1为True,直接返回1
v2: 1为真,返回3
v3: 0为False,返回0,继续计算 0 and 1 ,返回 0
v4: 0为False,返回0,继续计算 0 or 4,返回 4
v5: 0为False,返回0,继续计算 0 or 1 ,返回1,继续计算 1 or 4 返回1
v6 : 0为False,返回后面的False,继续计算False and 1 ,返回 False
and:当a为True时,才计算b,否则返回aor:当a为Flase时,才计算b,否则返回a
'''

二. 三目运算(三元运算)

  三元运算符通常在Python里被称为条件表达式,这些表达式基于真(true)/假(false)的条件判断,在Python 2.4以上才有了三元操作。它允许用简单的一行快速判断,而不是使用复杂的多行if语句。 这在大多数时候非常有用,而且可以使代码简单可维护。

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

  伪代码:

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

例子:

a = 0
b = 1
b =5 if a > 1 else  10
print(b)  # 10# 如果a>1,则b=5,否则b=10

三元运算另一种写法:

伪代码:

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

例子:

a = 1
b =1
res = (5,10)[a]
print(res)  # 10

  上面的例子没有被广泛使用,而且Python玩家一般不喜欢那样,因为没有Python味儿(Pythonic)。这样的用法很容易把真正的数据与True/False弄混淆.另外一个不使用元组条件表达式的缘故是因为在元组中会把两个条件都执行,而 if-else 的条件表达式不会这样。

condition = True
print(2 if condition else 1 / 0)
#输出: 2print((1 / 0, 2)[condition])
#输出ZeroDivisionError异常

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

三元运算使用逻辑运算符来表示:

x = 表达式 and y(真值返回) or z (假值返回)

例子:

a = 1
b =2b = a > b and 5 or 10print(b)  # 10

转载于:https://www.cnblogs.com/lovepy3/p/9268006.html

补充知识:三元运算和逻辑运算相关推荐

  1. Python编程笔记(第三篇)【补充】三元运算、文件处理、检测文件编码、递归、斐波那契数列、名称空间、作用域、生成器...

    一.三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件处理: if 条件成立:val = 1else:val = 2 改成三元运算 val = 1 if 条件成立 else 2 ...

  2. 01 Python学习--第一周--开课介绍、数据类型、数据运算、表达式、循环、三元运算、对象基本概念...

    模块一主要内容 开课介绍 python发展介绍 第一个python程序 变量 字符编码与二进制 字符编码的区别与介绍 用户交互程序 if else流程判断 while 循环 while 循环优化版本 ...

  3. day1简述、输入输出、运算符、条件语句、文件读写、三元运算

    文章目录 1.Python 简述 2.变量 3.输入输出 4.数据运算 5. 条件语句 if..else.elif 循环语句 for.while 6.文件读写 7.三元运算 1.Python 简述   ...

  4. java if 赋值语句_Java中有一种特殊的赋值运算叫做三元运算,它和if-else语句类似....

    Java中有一种特殊的赋值运算叫做三元运算,它和if-else语句类似. 答:√ 顺序阀在液压系统中起___作用 答:压力开关 断电后,机器人关节轴发生了位移,不需要更新转速计数器 答:× " ...

  5. java中数字作为布尔值_day50 java Script 数字和字符串 布尔值和数组 运算符 条件判断和三元运算...

    上节回顾: day501.前情回顾 CSS属性: float浮动的规则1. 浮动规则: 浮动只控制自己 如果前面的标签也是浮动的,就挨着放 如果前面的标签不浮动,则下方摆放 如果把块级标签设置成浮动, ...

  6. JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算

    JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都 ...

  7. JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算...

    JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都 ...

  8. python_way,day3 集合、函数、三元运算、lambda、python的内置函数、字符转换、文件处理...

    python_way,day3 一.集合 二.函数 三.三元运算 四.lambda 五.python的内置函数 六.字符转换 七.文件处理 一.集合: 1.集合的特性: 特性:无序,不重复的序列 如果 ...

  9. c语言10以内位运算,C语言基础知识--位运算

    1.原码,反码,补码: (1)在n位的机器数中,最高位为符号位,该位为零表示为正,为一表示为负:其余n-1位为数值位,各位的值可为零或一.当真值为正时,原码.反码.补码数值位 完全相同:当真值为负时, ...

最新文章

  1. CSS:布局的三个关键属性:float、position、display
  2. IOS 开发中判断NSString是否为空字符
  3. 【深入Java虚拟机JVM 10】回收方法区
  4. PHP10段常用功能代码
  5. HTML5实现刮奖效果
  6. 万字详解|手撕 9大排序算法!
  7. linux 访问共享内存,Linux下的共享内存(03)---通过指针访问共享内存中的数据...
  8. ANT打包时记录本地版本SVN信息
  9. AndroidStudio快捷键——打开最近编辑文件列表视图——(一)
  10. 49 字符大小写排序
  11. Charles使用教程
  12. pgAdmin3 连接GreenPlum数据库假死解决
  13. 【RF】射频集成电路与系统设计
  14. 自定义阿里云OSS图片大小
  15. 美通社企业新闻汇总 | 2019.1.16 | 微软与药店巨头沃博联达成战略合作,科勒中国第13家工厂落成...
  16. 论文阅读笔记(IRCNN):Learning Deep CNN Denoiser Prior for Image Restoration
  17. 如何在网页中添加访问密码?
  18. 车载调频发射机解决方案
  19. 【中级软考—软件设计师】17程序设计语言与语言处理程序基础17.2 编译程序基本原理【**】:17.2.3正规文法 有限自动机
  20. 计算机英语的作文,计算机英语作文

热门文章

  1. Codeforces Round #477 (rated, Div. 2, based on VK Cup 2018 Round 3)
  2. [YTU]_2535 (Problem I: C++复数运算符重载(+与))
  3. matlab中fill函数的使用方法
  4. Qt实现拖动一个lineEdit同时拖动mainwindow
  5. mailmessage html编码,C#MailMessage顯示HTML標記的AlternateViews
  6. bzoj 2007 海拔 —— 最短路
  7. Maven下载依赖提示Missing artifact
  8. QLineEdit响应回车时避免Button同时响应
  9. 《实时控制软件开发》学生四次作业成绩总排名
  10. MIT 6.828 JOS学习笔记12 Exercise 1.9