bugfix> python > 投稿

今日、私はPythonの教科書で関数を見ました、コードは以下です:

def power(x,y):
    return pow(x,y)

power にパラメーターを与えたとき以下のように:

>>>params=(5,)*2
>>>power(*params)  
3125

この関数は3125を返しました。3125は(5 * 5)*(5 * 5)* 5に由来する可能性があることは知っていますが、コード内のパラメーターがどのように機能するのかわかりません。表現 (5,)*2 の意味 ?

回答 3 件
  • それはタプルの連結です。

    >>>(5,)*2
    (5,5)
    >>>(5,)*5
    (5,5,5,5,5)
    
    

  • params の値を調べると 、それがどのように機能するかを見ることができます:

    >>> params=(5,)*2
    >>> params
    (5, 5)
    >>> power(*params)
    3125
    
    

    *n  シーケンスに適用すると、自身に追加されたシーケンス n が返されます  回(ドキュメントを参照)。

  • (5,)*2   (5, 5) に展開します 、別名はタプル。 tuplesのドキュメントを参照してください。

    pow() :ドキュメントによると、 pow(x,y)  戻り値xのy乗

    スクリプトでは、 power(*params) で*を使用します   params に2つのアイテムを挿入する  関数への個々のパラメーターとしてのタプル。 power(5,5) と入力することで同じことが実現できます。 。

    したがって、5125は3125に相当します。

    タプルに関する直感的なチュートリアルはこちらです。

あなたの答え