2017-04-09 14 views
0

を印刷するとき、私は、出力でNONEを取得していないのですが、コード を理解するのに役立つ必要がある理由を知っている必要がある誰かが何を取得していないのです、なぜ私が手は私が手

s='hellothisisawesomeharpreet' 
newdic={} 
for i in s: 
    newdic[i]= newdic.get(i,0)+1 

print newdic 

def display_hand(newdic): 
    for letter in newdic.keys(): 
     for j in range(newdic[letter]): 
      print letter, 

hand = display_hand(newdic) 
print hand  
{'a': 2, 'e': 5, 'i': 2, 'h': 3, 'm': 1, 'l': 2, 'o': 2, 'p': 1, 's': 3, 
'r': 2, 't': 2, 'w': 1} 
a a e e e e e i i h h h m l l o o p s s s r r t t w None 

答えて

0

を印刷するときに問題が、この中で答えてくださいすることができライン:

hand = display_hand(newdic) 

そして、この行:

print letter, 

display_hand()にはreturnという文がありません。

returnステートメントがない場合、関数のデフォルトはNoneになります。 print文があるかどうかは気にしません。

これは、関数内での印刷は、Pythonによると、関数の副作用のようですが、その結果自体ではないからです。 Pythonによると、それは実際にはreturnです。

print letter, 

へ:


だから、結論では、から、その行を変更

return letter, 
+0

感謝:) –

+2

まあ、ええおお、それはだ場合 'リターン文字を、'その後、最初の文字を返すだけで、あなたが望むようなものではありません。 – fuzzything44

+0

ああ、私はそれを忘れていました。関数を終了したので、 'return'のために' print'という言葉を変更するのと同じくらい簡単ではありません。 Harpreet Singhが必要な場合は、私の答えを修正して修正します。当分の間、私はそれを運動として残します。 –

関連する問題