本文翻译自:How to write inline if statement for print?

I need to print some stuff only when a boolean variable is set to True . 我只需要在布尔变量设置为True时打印一些东西。 So, after looking at this , I tried with a simple example: 所以,看后这个 ,我试图用一个简单的例子:

>>> a = 100
>>> b = True
>>> print a if bFile "<stdin>", line 1print a if b^
SyntaxError: invalid syntax

Same thing if I write print a if b==True . 如果我写print a if b==True一样的东西。

What am I missing here? 我在这里错过了什么?


#1楼

参考:https://stackoom.com/question/nqdq/如何编写内联if语句用于打印


#2楼

Inline if-else EXPRESSION must always contain else clause, eg: 内联if-else EXPRESSION必须始终包含else子句,例如:

a = 1 if b else 0

If you want to leave your 'a' variable value unchanged - assing old 'a' value (else is still required by syntax demands): 如果你想保持'a'变量值不变 - 确定旧的'a'值(语法要求仍然需要):

a = 1 if b else a

This piece of code leaves a unchanged when b turns to be False. 这段代码留下不变当b变成是假的。


#3楼

You always need an else in an inline if: 如果出现以下情况,您总是需要内联else

a = 1 if b else 0

But an easier way to do it would be a = int(b) . 但更简单的方法是a = int(b)


#4楼

The 'else' statement is mandatory. 'else'语句是强制性的。 You can do stuff like this : 你可以做这样的事情:

>>> b = True
>>> a = 1 if b else None
>>> a
1
>>> b = False
>>> a = 1 if b else None
>>> a
>>>

EDIT: 编辑:

Or, depending of your needs, you may try: 或者,根据您的需要,您可以尝试:

>>> if b: print(a)

#5楼

For your case this works: 对于您的情况,这适用:

a = b or 0

Edit: How does this work? 编辑:这是如何工作的?

In the question 在问题中

b = True

So evaluating 所以评估

b or 0

results in 结果是

True

which is assigned to a . 分配给a

If b == False? 如果b == False? , b or 0 would evaluate to the second operand 0 which would be assigned to a . b or 0将评估将分配给a的第二个操作数0


#6楼

Python does not have a trailing if statement . Python 没有尾随if 语句

There are two kinds of if in Python: 在Python中有两种if

  1. if statement: if声明:

     if condition: statement if condition: block 
  2. if expression (introduced in Python 2.5) if 表达式 (在Python 2.5中引入)

     expression_if_true if condition else expression_if_false 

And note, that both print a and b = a are statements. 请注意, print ab = a都是语句。 Only the a part is an expression. 只有a部分是表达式。 So if you write 所以,如果你写

print a if b else 0

it means 它的意思是

print (a if b else 0)

and similarly when you write 而且当你写作时也是如此

x = a if b else 0

it means 它的意思是

x = (a if b else 0)

Now what would it print/assign if there was no else clause? 现在,如果没有else条款,它会打印/分配else The print/assignment is still there . 打印/分配仍在那里 。

And note, that if you don't want it to be there, you can always write the regular if statement on a single line, though it's less readable and there is really no reason to avoid the two-line variant. 请注意,如果您不希望它出现在那里,您总是可以在一行上编写常规if语句,尽管它的可读性较差,并且没有理由避免使用两行变体。

如何编写内联if语句用于打印?相关推荐

  1. ARM_NEON_CNN编程 SIMD单指令多数据流 intrinsics指令 内联汇编 CNN卷积网络优化 深度学习优化

    ARM_NEON_CNN编程 SIMD单指令多数据流 intrinsics指令 内联汇编 CNN卷积网络优化 深度学习优化 博文末尾支持二维码赞赏哦 _ 本文github 神经网络arm neon加速 ...

  2. 内联汇编 - 从头开始

    FROM: http://www.ibm.com/developerworks/cn/aix/library/au-inline_assembly/ 对于 C/C++ 程序员来说,内联汇编并不是一个新 ...

  3. C 语言内联汇编介绍

    文章目录 为什么要用内联汇编 内联汇编的基本要素 语法 汇编语句模板 操作数 输出部分和输入部分 操作数约束 常用约束 寄存器操作数约束 内存操作数约束 (m) 匹配(数字)约束 为什么要用内联汇编 ...

  4. 内联函数和编译器对Go代码的优化

    什么是内联函数 图片版权:Renee French. 在很多讲 Go 语言底层的技术资料和博客里都会提到内联函数这个名词,也有人把内联函数说成代码内联.函数展开.展开函数等等,其实想表达的都是 Go ...

  5. GCC Inline ASM GCC内联汇编

    GCC 支持在C/C++代码中嵌入汇编代码,这些汇编代码被称作GCC Inline ASM--GCC内联汇编.这是一个非常有用的功能,有利于我们将一些C/C++语法无法表达的指令直接潜入C/C++代码 ...

  6. 汇编语言---GCC内联汇编

    GCC支持在C/C++代码中嵌入汇编代码,这些代码被称作是"GCC Inline ASM"(GCC内联汇编); 一.基本内联汇编(寄存器前一个%) GCC中基本的内联汇编非常易懂, ...

  7. 汇编与C/C++内联嵌入汇编

    汇编语言格式简介 汇编语言的指令格式,目前有两种不同的标准:Windows下的汇编语言基本上都遵循Intel风格的语法,比如:MASM.NASM;而Unix/Linux下的汇编语言基本上都遵循AT&a ...

  8. 汇编程序设计与计算机体系结构软件工程师教程笔记:内联汇编与宏

    <汇编程序设计与计算机体系结构: 软件工程师教程>这本书是由Brain R.Hall和Kevin J.Slonka著,由爱飞翔译.中文版是2019年出版的.个人感觉这本书真不错,书中介绍了 ...

  9. linux arm gcc 内联汇编参考手册

    关于本文档 GNU C 编译器为 ARM 精简指令系统处理器提供了在 C 代码中内嵌汇编的功能.这种非常酷的特性提供了一些 C 代码没有的功能,比如手工优化软件关键代码.使用相关的处理器指令. 本文假 ...

最新文章

  1. EXCHANGE证书
  2. Linux(CentOS)安装分区方案
  3. 中国博士开发可交互全球疫情地图,登上柳叶刀,GitHub已有4500星成为热榜第四...
  4. 移植uboot第九步:支持yaffs映像烧写
  5. 5.1matlab数据统计分析(最大值、最小值、平均值、中值、和、积、累加和、累加积、标准差、相关系数、排序)
  6. protoc.exe java_protobuf java 使用 window
  7. 隐藏标准选择界面按钮
  8. boost::mp11::mp_partial_sum相关用法的测试程序
  9. MFC主线程使用WaitForSingleObject阻塞的问题
  10. 解释下列术语计算机系统结构,计算机系统结构第5章部分习题参考答案
  11. NOI数据结构:最小树形图
  12. 微信小程序复制就好-JS工具eval5,用JS替换VBA处理Excel数据
  13. Java冒泡排序详解
  14. 高等数学学习笔记(1)——微分方程解法公式
  15. 沉思录三:敏捷开发的精髓是什么
  16. cadence修改板框倒角_Allegro实操技巧:如何对矩形板框进行倒角设置?
  17. java第一周的实验题,待优化(李老师)
  18. mysql8.0 之 sql 优化《三B》 之 优化范围查询 总览 总结
  19. POJ3614 [USACO07NOV]防晒霜Sunscreen
  20. oracle增量恢复dg备库,rman增量恢复DG备库出现GAP的情况

热门文章

  1. 【转】同步的HttpClient使用详解
  2. MapReduce 支持的部分数据挖掘算法
  3. 接口的实际应用---制定标准
  4. Transact-SQL 示例 - 触发器的基础及应用
  5. Sharepoint开发之旅(2):SiteDefinition自定义母版页
  6. 2008年12月信息处理技术员上午试卷 51CTO版参考答案
  7. hdoj3652 B-number
  8. 米勒罗宾素数判定(模板)
  9. 【BZOJ 3505】 [Cqoi2014]数三角形 容斥原理+排列组合+GCD
  10. python_day4作业