如何在同一行上打印,在python中使用one-line if else

时间:2017-10-25 03:47:45

标签: python

在我们使用的同一行打印

for i in range(10):
    print i,  # python 2
    print (i,end='') # python 3

但如何在一行if - else

内完成
for i in range(10):
    print((i,end=' ') if (i%2==0) else (i))

它出现以下错误:

 print((i,end=' ') if (i%2==0) else (i)))
                 ^
SyntaxError: invalid syntax

4 个答案:

答案 0 :(得分:2)

这是另一种选择:

for i in range(10):
    print(i, end=('\n' if i % 2 else ' '))

如果您颠倒逻辑,则无需==

对于真正的单行代码,请考虑这个不太可读的代码:

print(*('{}{}'.format(i, '\n' if i%2 else ' ') for i in range(10)), sep='', end='')

答案 1 :(得分:0)

为什么"一行"甚至有意思?我们在玩Code Golf吗?

for i in range(10):
    print(i, '' if i % 2 == 0 else '\n', end='')

答案 2 :(得分:-1)

我在python 3.这有效:

for i in range(10):
    print(i, end=' ') if(i%2==0) else (i)

答案 3 :(得分:-1)

可能的单行

''.join([' ' if i % 2 else str(i) for i in range(10)])