2

私はpython2.7を使用しています。,printステートメントで削除すると、以下のコードが機能します。しかし、それは異なる行に値を出力します。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
4

4 に答える 4

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

binary(127)
于 2013-10-29T18:50:11.480 に答える
2

最後にコンマを置きます:

print 1 if x&i else 0,

形式の条件式を使用しておりtrue_expr if condition_expr else false_expr、( ) のの部分はその式の一部です。その式の結果を出力しています。iftrue_expr

于 2013-10-29T18:50:21.740 に答える
0
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]
于 2013-10-29T19:00:57.937 に答える