関数および関数型プログラミング
数学の関数はマッピング変換関係を指します。たとえばf(x)=2x+1
、Pythonに変換される関数は次のとおりです:
def f(x):
return x*2 + 1
Pythonの関数は、所定のプロセスとして理解できます。
一般的なプロセスには、入力、処理、出力の3つの部分があります。複数の入力および関数パラメーターがあり、出力は戻り値であり、複数ある場合があります。
プロセスは定義と呼び出しに分けられます。定義は、パラメーター、処理、および戻り値の説明です。呼び出しは、実際のパラメーターで関数を実行し、実際の戻り値を取得することです。
関数の定義と呼び出し
def add(x, y): # 定义函数
return x+y
print(add(1,3)) # 调用函数
事例:ユーザー登録・ログイン機能
users = {"张三": "123456"}
def reg(username, password):
if users.get(username): # 如果用户中存在username这个key
print("用户已存在")
else:
users[username] = password # 向users字典中添加元素
print("添加成功")
def login(username, password)
if not users.get(username):
print("用户不存在")
elif users['username'] == password:
print("登录成功")
else:
print("密码错误")
パラメータと戻り値
- この関数はデフォルトでNoneを返します
- パラメータは、数値、支払い文字列、リスト、タプルなどのさまざまなオブジェクトをサポートし、関数やクラスにすることもできます
- パラメータのデフォルト値:デフォルト値のあるパラメータは、「 `def add(x、y = 1、z = 2):
- 可変パラメーター:* argsおよび** kwargs(
def func(*args, **kwargs):
長さや形式が任意のパラメーターなど)を受け入れることができます。 - パラメーターと戻り値の型の注釈(Python3)
def(x:int, y:int) -> int: # x,y为int型,函数返回为int型,只是注释,参数格式非法不会报错
return x+y
パラメータとして機能
例:デコレーター
def a():
print("I'm a")
def deco(func):
print("call from deco")
func()
deco(a) # 输出"call from deco"并调用a(),输出"I'm a"
関数の入れ子
閉鎖
def a():
a_var = 1
def b:() # 嵌套函数
a_var += 1
関数の再帰
デマンド
ケースが満たされるまで自分に電話します。
def factorial(n):
return 1 if n == 0 or n == 1 else n * factorial(n-1)