我正在完成edx python课程。我在上次作业中正确地完成了所有操作。但是,我正在努力解决此印刷问题。

我有一个函数displayHand(hand),该函数本质上是一个字典,键是字母,值是字母出现的次数。然后,该函数打印一个字符串,每个键与其值出现相同的次数。所以例如

hand={a:3, b:4, c:1}
displayHand(hand)=a a a b b b b c


现在,在程序中,对于任何给定的手,都希望我使用displayHand函数将其显示为文本“当前手:”

同样,如果hand={a:3, b:4, c:1}程序应显示

current hand: a a a b b b b c


我该如何使用打印对帐单?我已经尝试过print("current hand"+str(displayHand(hand)),但这首先评估函数,然后仅打印None。我不能将print("Current Hand: ")displayHand(hand)直接放在下面,因为那样它们会在不同的行上打印。我需要让它们在同一行上打印。

最佳答案

Python 3:

def displayHand(dct):
    for key, val in sorted(dct.items()):  # sorted if key order should be abc
        print((key + " ") * val, end="")


hand = {"a": 3, "b": 4, "c": 1}

print("current hand: ", end="")
displayHand(hand)


注意end="",它追加了""内部的内容。默认设置为end="\n"。在这种情况下,我们将只使用一个空字符串。请参见herehere

输出:

current hand: a a a b b b b c

关于python - Python在一行上打印两件事,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42397743/

10-11 20:12