繁体   English   中英

在我的代码中的适当位置添加制表符(\\ t)

[英]Adding tabs (\t) in the appropriate spot to my code

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

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']])

'猜\\ t线索\\ n **************** \\ nY PGG bb \\ nO OGG bbbb \\ n'

任何在代码中加上\\ t的尝试都会导致错误(例如:在每个字符串之间使用\\ t而不是在文档字符串中应使用的位置)。 有人能建议我如何改变周围的事物吗? 谢谢!

您的代码不会在猜测和线索之间添加标签。 您可以简单地添加

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')

您可以将其添加到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

这对我有用。 只需在这两个之间添加制表符即可获得猜测和线索循环。

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 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM