在我们使用的同一行打印
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
答案 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)])