[英]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.