我有一个函数,displayHand(),它看起来像这样:
def displayHand(hand):
"""
Displays the letters currently in the hand.
For example:
>>> displayHand({'a':1, 'x':2, 'l':3, 'e':1})
Should print out something like:
a x x l l l e
The order of the letters is unimportant.
hand: dictionary (string -> int)
"""
for letter in hand.keys():
for j in range(hand[letter]):
print letter, # print all on the same line
print # print an empty line
它是为我提供的(来自 600x 类)。如上所述,它需要一个 string->ints 的字典并打印出“手”。
我遇到的麻烦是让它正确显示。当我尝试
print('Current Hand: ', displayHand(hand))
这就是我得到的:
a d d m o q y
('Current Hand: ', None)
由于这是由讲师提供的,因此我确信代码以这种方式编写是有原因的,并且有些东西我没有得到。
我想要得到的是这样的输出:
Current Hand: a d d m o q y
我对这些东西完全陌生,所以我什至不知道要问什么问题。
我的评估:据我所知, displayHand() 没有返回任何东西,这就是把它搞砸的原因。但是我如何捕捉这个函数的打印输出并以我想要的方式呈现呢?我在想我应该尝试在一个字符串中捕获它并返回它,但假设
讲师正在尝试演示某些内容,我将如何在不更改 displayHand() 方法的情况下做到这一点?
如果我的评估不合格,会发生什么?
编辑:这个功能是班级给我的,我必须照样使用它。我知道将其更改为返回 str 会容易得多,但是如果不这样做,我怎么能完成正确的输出呢?
进一步编辑:我正在处理一个要求输出完全符合我所写的自动评分器。抱歉这么挑剔,我很感激答案,如果不是为了这个,我会使用它们。
最终编辑:感谢您的澄清——我将使用您的想法并在此函数中创建一个辅助函数来完成我需要它做的事情!
最终的最终编辑:我想通了!我所要做的就是,
print('Current Hand:'),
displayHand(hand)
对于真正的最终编辑:
Hah! you got it too! thank you so much for the help, I appreciate it!