モジュールのレッスン (1/4)
デフとリターン
関数 は再利用可能なコード ブロックです。def を使用して一度定義すると、
その後、何度でも呼び出してください。関数はコードをモジュール化します。
テスト可能であり、自己文書化可能です。
基本的な構文
def saluta(nome):
return f"Ciao, {nome}!"
saluta("Ada") # 'Ciao, Ada!'defは関数を紹介し、その後に名前とパラメーターが続きます。 括弧。:は、インデントされたブロックを開きます。returnは呼び出し元に値を送り返し、関数を終了します。
明示的な return と暗黙的な None
return を記述しない場合、関数は暗黙的に None を返します。
def stampa_e_basta(x):
print(x)
risultato = stampa_e_basta("ciao")
# prints 'ciao'
print(risultato) # None裸の return (値なし) も None を返しますが、これは初期の
終了:
def primo_pari(nums):
for n in nums:
if n % 2 == 0:
return n
return None # explicit: communicates "not found"複数の値?タプルを返す
Python には「出力パラメータ」がありません。複数のものを返すには、 タプル (多くの場合、呼び出し元によって解凍されます)。
def divisione_resto(a, b):
return a // b, a % b
quoziente, resto = divisione_resto(17, 5)
# 3, 2docstring: 組み込みドキュメント
関数内の最初の文字列は docstring です。
help(fn) および IDE のツールチップとして。
def area_cerchio(raggio):
"""Calcola l'area di un cerchio dato il raggio."""
import math
return math.pi * raggio ** 2スコープ: ローカル変数
関数内で定義された変数は ローカル です: 存在しません 外で。
def f():
x = 10
return x
f() # 10
x # NameError: name 'x' is not defined関数は常に何かを返します
Python では、関数が return ステートメントを明示的に宣言していない場合、または空の return を備えている場合、暗黙的に特別な値 None を返します。値を返さない関数はありません。
試してみてください
`x * 2` を返す関数 `double(x)` を定義します。次に 7 で呼び出し、結果を `result` に代入します。 「結果」を評価します。
ヒントを表示
return x * 2 を使用します。
3 回の試行後に解決策が利用可能になります
復習演習
タプル「(最小値, 最大値)」を返す「min_max(nums)」を定義します。これを `[3, 1, 4, 1, 5, 9, 2, 6]` で呼び出し、結果を `mn, mx` に解凍します。 `(mn, mx)`を評価します。
ヒントを表示
最小(数値)、最大(数値)を返します
3 回の試行後に解決策が利用可能になります
追加の課題
入力文字列がその反転バージョンと等しい場合は \`True\` を返し、それ以外の場合は \`False\` を返す関数 \`is_palindrome(text)\` を定義します。最後の式として \`is_palindrome("radar")\` を使用して関数をテストします。
ヒントを表示
slicing text[::-1] を使用して文字列を反転し、元のテキストと比較します。
3 回の試行後に解決策が利用可能になります