次のような関数 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 を返すように変更する方がはるかに簡単であることは理解していますが、それを行わずに正しい出力を達成するにはどうすればよいでしょうか?
さらに編集:私が書いたとおりの出力を要求するオートグレーダーを扱っています。うるさくて申し訳ありませんが、答えに感謝し、これがなければそれらを使用します。
最終編集: 明確化していただきありがとうございます。あなたのアイデアを使用して、この関数内で必要なことを実行するヘルパー関数を作成します!
FINAL 最終編集: わかった! 私がしなければならなかったのは、
print('Current Hand:'),
displayHand(hand)
実際の最終編集の場合:
Hah! you got it too! thank you so much for the help, I appreciate it!