1.機能
関数は、呼び出されたときにのみ実行されるコードのブロックです。データ (パラメーターと呼ばれる) を関数に渡すことができます。
関数は結果としてデータを返すことができます。
関数の作成
Python では、 def
関数はキーワードを使用して定義されます。
#在 Python 中,使用 def 关键字定义函数:
def my_function():
print("Hello from a function")
#调用
my_function()
#输出:Hello from a function
パラメータ
情報はパラメータとして関数に渡すことができます。
パラメータは関数名の後の括弧内に指定します。必要なだけパラメータを追加できます。パラメータはカンマで区切ります。
#参数
def my_function(fname):
print('您好' + fname )
my_function("小明")
#输出:您好小明
デフォルトのパラメータ値
パラメータなしで関数を呼び出すと、デフォルト値が使用されます。
#如果我们调用了不带参数的函数,则使用默认值:
def my_function(country = "China"):
print("I am from " + country)
my_function("India")
#输出:I am from India
my_function()
#输出:I am from China
パラメータをリストとして渡す
関数に送信する引数は、任意のデータ型 (文字列、数値、リスト、辞書など) にすることができ、関数内では同じデータ型として扱われます。
#函数的参数可以是任何数据类型(字符串、数字、列表、字典等),并且在函数内其将被视为相同数据类型。
def my_function(food):
for x in food:
print(x)
fruits = ["apple", "banana", "cherry"]
my_function(fruits)
#输出:apple banana cherry
戻り値
関数に値を返させるには、次の return
ステートメントを使用します。
#如需使函数返回值,请使用 return 语句:
def my_function(x):
return 5 * x
print(my_function(4))
#输出:20
キーワード引数
key = value 構文を使用してパラメータを送信することもできます。パラメータの順序は関係ありません。
#您还可以使用 key = value 语法发送参数。参数的顺序无关紧要。
def my_function(child3, child2, child1):
print("你好" + child3)
my_function(child1 = "小明", child2 = "小红", child3 = "小黑")
#输出:你好小黑
任意のパラメータ
関数に渡されるパラメーターの数がわからない場合は、関数定義のパラメーター名の前に * を追加します。
このようにして、関数は引数のタプルを受け取り、それに応じて項目にアクセスできます。
#如果您不知道将传递给您的函数多少个参数,请在函数定义的参数名称前添加 *
def my_function(*kids):
print("你好 " + kids[2])
my_function("小明", "小红", "小黑")
#输出:你好 小黑
再帰
Python は関数の再帰も受け入れます。これは、定義された関数がそれ自体を呼び出すことができることを意味します。
#Python 也接受函数递归,这意味着定义的函数能够调用自身。
def tri_recursion(k):
if(k>0):
result = k+tri_recursion(k-1)
print(result)
else:
result = 0
return result
tri_recursion(6)
#输出:1 3 6 10 15 21
@call 関数の高度な使用法
#函数调用高级用法
def new_tips(argv):
def tips(func):
def nei(a, b):
print('start %s %s' % (argv, func.__name__))
func(a, b)
print('stop')
return nei
return tips
# 执行add函数时调用new_tips函数
@new_tips('add_module')
def add(a, b):
print(a + b)
print(add(4, 5))
#输出: start add_module add 9 stop None
Pythonモジュール
モジュールは、アプリケーション内で参照する一連の関数を含むファイルです。
モジュールの作成
モジュールを作成するには、必要なコードを .py
次のファイル拡張子が付いたファイルに保存するだけです。
コードを次の名前の ファイルに保存しますmymodule.py
。
#模块
def greeting(name):
print("Hello, " + name)
モジュールを使用する
これで、 import
ステートメントを使用して作成したばかりのモジュールを使用できるようになります。
#导入名为 mymodule 的模块,并调用 greeting 函数
import mymodule
mymodule.greeting("小明")
#输出:Hello, 小明
モジュールの関数を使用する場合は、次の構文を使用します。
モジュール名。関数名
モジュール内の変数
すでに説明したように、モジュールには関数を含めることができますが、さまざまなタイプの変数 (配列、辞書、オブジェクトなど) を含めることもできます。
mymodule.py
コードをファイル に保存します。
#模块中的变量
person1 = {
"姓名": "小明",
"年龄": 11,
"国家": "china"
}
mymodule
という名前のモジュールをインポートし 、person1 辞書にアクセスします。
#导入名为 mymodule 的模块,并访问 person1 字典:
import mymodule
a = mymodule.person1["年龄"]
print(a)
#输出:11
モジュール名の変更
モジュールをインポートするときにキーワードを使用して as
エイリアスを作成できます。
#为 mymodule 创建别名 mx:
import mymodule as mx
a = mx.person1["姓名"]
print(a)
#输出:小明
内蔵モジュール
Python には、いつでもインポートできる組み込みモジュールがいくつかあります。
#Python 中有几个内建模块,您可以随时导入。
import platform
x = platform.system()
print(x)
#输出:Windows
dir()関数を使用する
モジュール内のすべての関数名 (または変数名) をリストする組み込み関数があります。dir()
関数:
#列出属于 platform 模块的所有已定义名称
import platform
x = dir(platform)
print(x)
モジュールからインポート
from キーワードを使用して、モジュールからのみパーツをインポートすることを選択できます。
#从模块导入部件
from mymodule import person1
print(person1["年龄"])
#输出:11
このドキュメントの詳細が十分でない場合は、「10 分で Python を学ぶ_bilibili_bilibili」を参照してください。