簡體   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