代码之家  ›  专栏  ›  技术社区  ›  Adam Grey

新行打印为“\n”,而不是实际的新行

  •  -1
  • Adam Grey  · 技术社区  · 6 年前

    places = [" "] * 9
    board = (places[8] + "|" + places[7] + "|" + places[6] + "\n",
             places[5] + "|" + places[4] + "|" + places[3] + "\n",
             places[2] + "|" + places[1] + "|" + places[0] + "\n")
    print(board)
    

    但我得到的不是一块木板:

    (' | | \n', ' | | \n', ' | | \n')
    

    我不想用括号和新行打印它,而想用新行打印它。我如何才能这样做?

    4 回复  |  直到 6 年前
        1
  •  1
  •   TemporalWolf    6 年前

    不要打印整个元组,但它是元素,例如:

    for i in board:
        print(i)
    
        2
  •  1
  •   Laurent H. chthonicdaemon    6 年前

    您只需使用这一行来打印:

    print(*board,sep="")
    

    说明:运算符*是解包运算符:元组 board

    print( places[8] + "|" + places[7] + "|" + places[6] + "\n",
           places[5] + "|" + places[4] + "|" + places[3] + "\n",
           places[2] + "|" + places[1] + "|" + places[0] + "\n",
           sep="")
    
        3
  •  0
  •   strava    6 年前

    因为你把逗号放在括号里每一行的末尾,所以你做了一个元组,它是一个iterable,就像一个list。在下一行的开头用+代替逗号

    board = ('line 1' + '\n'
             + 'line 2' + '\n'
             + 'line 3' + '\n')
    

    这将创建字符串而不是元组。

        4
  •  0
  •   Austin B    6 年前
    places = [" "] * 9
    
    print(places[8] + "|" + places[7] + "|" + places[6] + "\n" + places[5] + "|" + 
    places[4] + "|" + places[3] + "\n" + places[2] + "|" + places[1] + "|" + places[0] + 
    "\n")
    

    这就是你要找的。

    问题是“\n”只起作用 打印报表。