[英]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
,而if
( true_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.