python一行打印两件东西

Python printing two things on one line

我正在学习edx python课程。我在上一个作业中做得很好。然而,我正在努力解决这个印刷问题。

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

1
2
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}程序应显示

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:

1
2
3
4
5
6
7
8
9
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="
"
。在这种情况下,我们只使用一个空字符串。看看这里和这里。

输出:

1
current hand: a a a b b b b c


这应该对你有用:

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

在print()函数中,默认的结尾是新行。在上面的代码中,您只需将其更改为您想要的任何内容。


您可以执行以下操作:

1
2
def displayHand(hand):
    print('{} {}'.format('current hand:', ' '.join([' '.join([li] * ni) for li, ni in sorted(hand.items())])))

首先创建一个字符串,然后打印。

然后

1
displayHand(hand)

打印所需输出:

1
current hand: a a a b b b b c

您可以使用两次print,只需在第一次打印后加一个逗号,例如:print("a"), print("b")