繁体   English   中英

如何在python 2.7中使用内联if else语句单行打印

[英]how to print in single line with an inline if else statement in python 2.7

我正在使用python2.7。 如果我在print语句中删除了,下面的代码将起作用。 但这会将值打印在不同的行中。 如果可能的if-statement我希望在同一行中使用内联if-statement进行打印。

这是我所拥有的:

def binary(x):

   for i in [128,64,32,16,8,4,2,1]:
      #if x&i: print 1,
      #else: print 0,
       print 1, if x&i else 0

binary(127)

它引发以下语法错误:

File "binary.py", line 6
    print 1, if x&i else 0
              ^
SyntaxError: invalid syntax
def binary(x):
   for i in [128,64,32,16,8,4,2,1]:
       print 1 if x&i else 0,

binary(127)

将逗号放在末尾

print 1 if x&i else 0,

您正在使用条件表达式,其形式为true_expr if condition_expr else false_expr ,而iftrue_expr之前的部分是该表达式的一部分。 您正在打印该表达式的结果。

正如其他答案所指出的那样,将逗号放在print行的末尾将解决您的问题。

但是,如果使用format ,则有一种更简单的方法来实现所需的功能:

>>> def binary(x):
...     return " ".join(format(n, "08b"))
...
>>> print binary(127)
0 1 1 1 1 1 1 1
>>>

此方法与您的功能具有相同的作用,只是更加简洁高效。

x = 127

>>> [1 if ele & x else 0 for ele in [128, 64, 32, 16, 8, 4, 2, 1]]
[0, 1, 1, 1, 1, 1, 1, 1]

您甚至可以使用

x = 127

>>> [[0,1][bool(ele & x)] for ele in [128, 64, 32, 16, 8, 4, 2, 1]]
[0, 1, 1, 1, 1, 1, 1, 1]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM