【Python技巧系列】条件语句一行实现

发现了一种巧妙的条件语句实现方式:(是在pattern的README中的一个小例子里面看到的)

1 1 if A < 1:
2 2     B
3 3 else:
4 4     C
5 5
6 6 ###can be transformed to
7 7
8 8 A < 1 and B or C
9 9  

得益于python灵活的格式转换,  and, or 这些逻辑符号我一直认为计算得到的是布尔值,只能用在判断语句中,比如:

 1 if 1 and 2:
 2     print 1
 3
 4 >> 1
 5
 6
 7 a = 1
 8 b = 1
 9
10 if a == 1 and b == 1:
11     print 1
12
13 >> 1

然而当把表达式单独计算时,比如这样:

1 >> True and 1
2 >> 1

因此得到的结果并非默认为布尔值,布尔值的转换不是在逻辑符号处进行,而是在遇见了条件选择符号 if, else, elif 后进行。

同样的,有

1 >> False and 2
2 >> False
3
4 >> False or 2
5 >> 2 

对更多条件分支的情况,可类似地实现,比如上面的二叉树:

1 #reach the node b = 0
2 >> a = 0
3 >> b = 0
4 >> a == 1 and 1 or b == 1 and 1 or 0
5 >> 0
时间: 2024-10-08 20:04:39

【Python技巧系列】条件语句一行实现的相关文章

python的if条件语句的语法和案例

1.条件语句 缩进用4个空格 if条件: #条件成功, else: #条件不成功 if条件:{ #条件成功, #条件成功, }else{ #条件不成功, #条件不成功, } if的语法就是这样或者是用:或者是用{} 2.单个条件的if [[email protected] python]# python3.5 if.py >>>>frank success [[email protected] python]# python3.5 if.py >>>>aaa

python流程控制-条件语句If,while循环

一.If,条件语句-选择 格式:python简洁优美,注意缩进 1.第一种: if 条件: 四个空格(tab键)  满足条件时的执行步骤 if 5>4 : print(666) print(777) 2.第二种: if 条件: 四个空格(tab键)  满足条件时的执行步骤 else: 四个空格(tab键)  不满足条件时的执行步骤 3.第三种(多选): if 条件1: 四个空格(tab键)  满足条件1时的执行步骤 elif 条件2: 四个空格(tab键)  满足条件2时的执行步骤 ......

python基础(2) 条件语句

if 条件语句 if else 1 a = 10 #定义变量 2 b = 20 3 4 if a > b: #判断 5 6 print ('a more than the b') #成立则输出 7 8 else: #不成立 输入 9 10 print ('b more than the a') 1 a = 10 2 b = input('输入数字') //输入数字 3 4 if a < b: //判断a 与 b 谁大 5 6 print ('a less than b') //条件成立 则输入

python中的条件语句,分支语句以及逻辑运算符和比较运算符

python中的if与else语句可执行简单测试 如: a = 3; b = 5; if a<b:     print('a小b大') else:     print('a大b小') 答案输出: a小b大 我对条件判断if的理解:     所谓条件判断其实就是 如果 a<b 我们做相应的处理 否则(a大于b的情况) 我们对a>b做出相应的处理  我们在判断某个变量或者某个表达式 只对真的时候作出相应的处理时else是可选的 比如: name = '张三' isMarry = 'true'

python技巧 switch case语句

不同于C语言和SHELL,python中没有switch case语句,关于为什么没有,官方的解释是这样的 使用Python模拟实现的方法: def switch_if(fun, x, y):    if fun == 'add':        return x + y    elif fun == 'sub':        return x - y    elif fun == 'mul':        return x * y    elif fun == 'div':       

python基础(条件语句)

if语句 if 条件 : print("ok") else: print("Eorro") if a: b elif c: d else: e 补充: if 1==1: pass #不执行任何操作 else: 代码块 原文地址:https://www.cnblogs.com/chenjiayun/p/11129714.html

【Python技巧系列】unittest:python自带测试模块【转载】

****本文转载自http://www.cnpythoner.com/post/303.html**** 1 python unittest单元测试方法和用例 2 3 python内部自带了一个单元测试的模块,pyUnit也就是我们说的:unittest 4 5 先介绍下unittest的基本使用方法: 6 7 1.import unittest 8 2.定义一个继承自unittest.TestCase的测试用例类 9 3.定义setUp和tearDown,在每个测试用例前后做一些辅助工作. 1

【Python技巧系列】用parse处理文本

parse是python中的一个文本处理工具包,其中包括 findall(), parse(), format() 等等,  findall() 比较常用(对我来说), format(), parse() 互为逆. 来看看 parse() 的用法:(代码摘抄自文档) 1 >>> from parse import * 2 3 >>> parse("It's {}, I love it!", "It's spam, I love it!&qu

【Python技巧系列】argparser处理字典

看scikit-learn的源码时,在benchmark的benchmark_20newsgroups.py(关于20newsgroups数据集看这里)中看到了一个有意思的用法,如下: 1 import argparse 2 3 ESTIMATORS = { 4 "dummy": DummyClassifier(), 5 "random_forest": RandomForestClassifier(n_estimators=100, 6 max_features=