python中的额外换行

2024-04-20 12:05:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python代码,它用来指导m到达p。你知道吗

代码如下:

#!/bin/python
def displayPathtoPrincess(n,grid):
    m = "m"
    p = "p"

    for i in range(n):
        if(m in grid[i]):
            m_column = grid[i].find(m)
            m_row = int(i + 1)
            #print "{0}x{1} \n".format(int(i + 1), m_position + 1)

        if(p in grid[i]):
            p_column = grid[i].find(p)
            p_row = int(i + 1)
            #print "{0}x{1} \n".format(int(i + 1), p_position + 1)

    down_up = p_row - m_row
    if(down_up > 0):
        print "DOWN\n"*down_up
    else:
        print "UP\n"

    right_left = p_column - m_column
    if(right_left > 0):
        print "RIGHT\n"*right_left
    else:
        print "LEFT\n"


m = input()

grid = []
for i in xrange(0, m):
    grid.append(raw_input().strip())

displayPathtoPrincess(m,grid)

输入:

> 6
> ---
> ---
> -m-
> ---
> ---
> p--

预期产量:

DOWN
DOWN
DOWN
LEFT

我的输出:

DOWN
DOWN
DOWN

LEFT

正如您在我的输出中看到的,只要程序改变方向,它就会添加新行。有什么办法阻止这条新线路出现吗?你知道吗


Tags: 代码inrightifcolumnleftgridint
1条回答
网友
1楼 · 发布于 2024-04-20 12:05:58

每次'DOWN''RIGHT'执行此操作时,您都在对换行符进行硬编码:

    print "DOWN\n"*down_up
    print "RIGHT\n"*right_left

结果字符串将是'DOWN''RIGHT',后跟一个换行符,即指定的次数。这意味着这些字符串将以不需要的换行符结束。最小的修复方法是将所需数字乘以1,然后将最后一位相加:

    print "DOWN\n"*(down_up-1) + 'DOWN'
    print "RIGHT\n"*(right_left-1) + 'RIGHT'

或使用str.join

    print '\n'.join("DOWN" for i in range(down_up))
    print '\n'.join("RIGHT" for i in range(right_left))

相关问题 更多 >