我正在尝试为给定的输入n打印每个案例的N-queen。为此,我必须明确地为j = n-1写条件,以便在每个'n'列之后得到一个新行。
for i in range(n):
for j in range(n):
if j!=n-1:
if j==a[i]-1:
print('Q',end=' ')
else:
print('-',end=' ')
else:
if j==a[i]-1:
print('Q')
else:
print('-')
输出:
#One case in n=5
- - Q - -
Q - - - -
- - - Q -
- Q - - -
- - - - Q
如果没有明确使用条件,我会在一行中得到输出,这很明显。
- - Q - - Q - - - - - - - Q - - Q - - - - - - - Q
有没有办法在end =''的位置隐式写入print函数中的条件?
for i in range(n):
for j in range(n):
if j==a[i]-1:
print('Q',(end=' ' if j!=n-1)) #this is not correct
else:
print('-',if j!=n-1: end=' ' ) #also not correct
我正在使用IDLE for python 3.4.2。
答案 0 :(得分:2)
只需在外循环结束时打印换行符。
for i in range(n):
for j in range(n):
...
print()