在我的代码的适当位置添加选项卡(\ t)

时间:2017-10-29 02:59:08

标签: python python-3.x

我创建了一个代码,需要使用标签放入其中,但我似乎无法弄清楚如何正确添加标签。请参阅下面的代码和应该返回的文档字符串,以及它返回的内容。也许我应该重新考虑我的整个方法?

def display_game(guesses, clues):
'''(list, list) -> str
Given two lists of single character strings, return a string 
that  displays the current state of the game   
>>>display_game([['Y', 'P', 'G', 'G'], ['O', 'O', 'G', 'G']], [['b', 'b'], ['b','b', 'b', 'b']])
'Guess\tClues\n****************\nY P G G\tb b\nO O G G\tb b b b\n'
'''
display = 'Guess\tClues\n****************\n'
for i in range(len(guesses)):
        for letter in guesses[i]:
            display += letter + ' '
        for letter in clues[i]:
            display += letter + ' '
        display += '\n'
return display

当我使用它时(使用doc字符串示例),我得到:

display_game([['Y', 'P', 'G', 'G'], ['O', 'O', 'G', 'G']], [['b', 'b'],      ['b','b', 'b', 'b']])

'猜猜\ tClues \ n **************** \ nY P G G b b \ nO O G G b b b b \ n'

任何将\ t放在代码中的尝试都会导致错误(例如:在每个字符串之间使用\ t而不是根据文档字符串应该在哪里)。有人能够建议我如何改变一切吗?谢谢!

3 个答案:

答案 0 :(得分:0)

您的代码不会在猜测和线索之间添加选项卡。你可以简单地添加

display += '\t'

但是,在第一个和第二个嵌套for循环之间的

,您需要确保在第一个循环结束时不添加尾随空格。

str.join()是处理此问题的更好方法,因为它只在序列的项之间添加分隔符字符串:

>>> ' '.join(['a', 'b', 'c'])
'a b c'

请注意,上面没有尾随空格字符。将其应用于您的函数:

def display_game(guesses, clues):
    display = 'Guess\tClues\n****************\n'
    for guess, clue in zip(guesses, clues):
        display += '{}\t{}\n'.format(' '.join(guess), ' '.join(clue))
    return display

zip()也用于配对每个猜测和线索。然后,只需在猜测和线索上使用str.join(),并在所需位置使用选项卡构建字符串。

>>> assert(display_game([['Y', 'P', 'G', 'G'], ['O', 'O', 'G', 'G']], [['b', 'b'], ['b','b', 'b', 'b']]) == 'Guess\tClues\n****************\nY P G G\tb b\nO O G G\tb b b b\n')

答案 1 :(得分:-1)

您可以在for循环之间添加它:

for i in range(len(guesses)):
        for letter in guesses[i]:
            display += letter + ' '
        display += '\t' # right here
        for letter in clues[i]:
            display += letter + ' '
        display += '\n'
return display

答案 2 :(得分:-1)

这对我有用。只需在两者之间添加选项卡,以获取猜测和线索的循环。

def display_game(guesses, clues):
    display = 'Guess \t Clues \n **************** \n'
    for i in range(len(guesses)):
        for letter in guesses[i]:
            display += letter + ' '
        display += '\t'
        for letter in clues[i]:
            display += letter + ' '
        display += '\n'
    return display

print(display_game('at', 'yk'))

这给出了输出:

Guess    Clues 
**************** 
a        y 
t        k