メインコンテンツにスキップ
モジュール 5 · レッスン 1 / 4コース内の 17/36~12 min
モジュールのレッスン (1/4)

デフとリターン

関数 は再利用可能なコード ブロックです。def を使用して一度定義すると、 その後、何度でも呼び出してください。関数はコードをモジュール化します。 テスト可能であり、自己文書化可能です。

基本的な構文

Python
def saluta(nome):
    return f"Ciao, {nome}!"

saluta("Ada")     # 'Ciao, Ada!'
  • def は関数を紹介し、その後に名前とパラメーターが続きます。 括弧。
  • : は、インデントされたブロックを開きます。
  • return は呼び出し元に値を送り返し、関数を終了します。

明示的な return と暗黙的な None

return を記述しない場合、関数は暗黙的に None を返します。

Python
def stampa_e_basta(x):
    print(x)

risultato = stampa_e_basta("ciao")
# prints 'ciao'
print(risultato)   # None

裸の return (値なし) も None を返しますが、これは初期の 終了:

Python
def primo_pari(nums):
    for n in nums:
        if n % 2 == 0:
            return n
    return None   # explicit: communicates "not found"

複数の値?タプルを返す

Python には「出力パラメータ」がありません。複数のものを返すには、 タプル (多くの場合、呼び出し元によって解凍されます)。

Python
def divisione_resto(a, b):
    return a // b, a % b

quoziente, resto = divisione_resto(17, 5)
# 3, 2

docstring: 組み込みドキュメント

関数内の最初の文字列は docstring です。 help(fn) および IDE のツールチップとして。

Python
def area_cerchio(raggio):
    """Calcola l'area di un cerchio dato il raggio."""
    import math
    return math.pi * raggio ** 2

スコープ: ローカル変数

関数内で定義された変数は ローカル です: 存在しません 外で。

Python
def f():
    x = 10
    return x

f()    # 10
x      # NameError: name 'x' is not defined

関数は常に何かを返します

Python では、関数が return ステートメントを明示的に宣言していない場合、または空の return を備えている場合、暗黙的に特別な値 None を返します。値を返さない関数はありません。

試してみてください

運動#python.m5.l1.e1
試行回数: 0読み込み中…

`x * 2` を返す関数 `double(x)` を定義します。次に 7 で呼び出し、結果を `result` に代入します。 「結果」を評価します。

エディターを読み込み中…
ヒントを表示

return x * 2 を使用します。

3 回の試行後に解決策が利用可能になります

復習演習

運動#python.m5.l1.e2
試行回数: 0読み込み中…

タプル「(最小値, 最大値)」を返す「min_max(nums)」を定義します。これを `[3, 1, 4, 1, 5, 9, 2, 6]` で呼び出し、結果を `mn, mx` に解凍します。 `(mn, mx)`を評価します。

エディターを読み込み中…
ヒントを表示

最小(数値)、最大(数値)を返します

3 回の試行後に解決策が利用可能になります

追加の課題

運動#python.m5.l1.e3
試行回数: 0読み込み中…

入力文字列がその反転バージョンと等しい場合は \`True\` を返し、それ以外の場合は \`False\` を返す関数 \`is_palindrome(text)\` を定義します。最後の式として \`is_palindrome("radar")\` を使用して関数をテストします。

エディターを読み込み中…
ヒントを表示

slicing text[::-1] を使用して文字列を反転し、元のテキストと比較します。

3 回の試行後に解決策が利用可能になります