10、python関数

14238 ワード


前言:本文は主にpython関数の定義と呼び出し、関数のパラメータ、関数の役割ドメイン、内蔵関数を紹介します.
 
一、関数の定義と呼び出し
 1.関数の役割
特定の機能をカプセル化し、コードの再利用率を高め、開発の効率、フォーマットを向上させる.
def     ()
    #    

2.関数名の命名規則
アルファベット、数値、下線()構成されていますが、数字で始まることはできません.pythonのキーワードは使用できません.
関数ネーミングのスタイル:単語間の下線間隔(pythonでは関数ネーミングがこのスタイルを推奨)、大きなアルパカの小さなアルパカの書き方、例えば:UserName、userName英語の単語の頭文字の大文字
3.関数の戻り値:return
return式
1)関数の戻り値はreturnによって決定され,returnの後に何を書くか,関数の戻り値は何であるか
2)関数にreturnがない場合、関数の戻り値はデフォルトでNone
3)returnの後ろには何もありません.戻り値もNoneです
3)関数は複数のデータを返します.returnの後、各データ間をカンマで区切って、関数を呼び出した後に受け取ったのはメタグループ形式のデータです.
注意:returnの役割は結果を返す以外に、関数の実行を終了するためにも使用できます.関数の中でreturnが実行される限り、直接内容を返し、関数を飛び出しても、returnの後ろのコードは実行されません.
4.呼び出し関数
関数名()の例は次のとおりです.
def func():
    print('python666')
    return "abc", 4444
    print("99999999999999999999")  #        

res = func()
print(res)

実行結果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py
python666
('abc', 4444)

Process finished with exit code 0

 
二、関数のパラメータ
 1.関数パラメータと実パラメータ
定義されたパラメータは、「パラメータ」と呼ばれます.
実際の転送を呼び出すのは、「実パラメータ」です.
2.パラメータ伝達の2つの形式:
位置パラメータいちぱらめーた:位置順に渡すいちじゅんにつたえる
キーワードパラメータ:キーワード指定によりパラメータに渡す
#     (         )
def add_num(a, b, c):  # a,b   ,      ,      
    return a + b - c

res1 = add_num(67, 12, 1)  #      67,12   
print(res1)

#      (             )
res2 = add_num(b=34, a=12, c=11)
print(res2)

#      ,        ,         ,     
res3 = add_num(30, c=12, b=12)
print(res3)

実行結果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py
78
35
30

Process finished with exit code 0

3.関数定義の3つのパラメータ:
必須パラメータ:def add_num(a,b,c),a,b,cの3つのパラメータはいずれもに伝達しなければならない.
デフォルトパラメータ(デフォルトパラメータ)たとえばdef add_num(a,b,c=99),cはデフォルトパラメータであり,伝達可能であり,伝達しなくてもよい(伝達しない場合は直接c=99を用いる).
不定長パラメータ:例:def add_num(a,b,*args,**kwargs)は、aおよびbが必須パラメータであり、*argsは送信せずに複数送信することができ、必要パラメータ、を受信する.
デフォルトパラメータが完了した以外の位置パラメータは、メタグループとして保存され、*kwargsは送信しなくてもよいし、複数送信してもよいし、必要なパラメータ、デフォルトパラメータ以外のキーワードを受信する
パラメータ、辞書形式で保存
def test(a, b, c, *args, **kwargs):
    print("a  ", a)
    print("b  ", b)
    print("c  ", c)
    print("*args  ", args)
    print("**kwargs  ", kwargs)

va1 = test(11, 22, 33, 4, 3, 2)
va2 = test(11, 5, 6, 7, g=33, k=22, f=12)
print(va1, va2)

実行結果(Noneがあるのは、関数に戻り値がないため、2回の関数が呼び出されたため、2つのNoneが印刷されました):
C:\software\python\python.exe D:/myworkspace/test/test/test.py
a   11
b   22
c   33
*args   (4, 3, 2)
**kwargs   {}
a   11
b   5
c   6
*args   (7,)
**kwargs   {'g': 33, 'k': 22, 'f': 12}
None None

Process finished with exit code 0

 
拡張子:不定長パラメータは*を使用してメタグループ(リストは可能ですが、一般的には使用しません)を分解することができます.**は辞書を分解することができます.分解原理は以下の通りです.
#   
def func():
    return 11,22,33   #

c1 = func()
print(c1)    #         (11,22,33)

a,b,c =func()   #                 ,      ,a   11,b   22,c   33
print(a,b,c)   #        11,22,33

実行結果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py
(11, 22, 33)
11 22 33

Process finished with exit code 0

 
パケットの取り外しは自動化テストで大きな役割を果たします.理解していない場合は、何度も叩くことができます.以下はパケットの取り外しの例です.
def func(a, b, c):
    print('  ', a)
    print('  ', b)
    print('  ', c)

#   *、**     、    :           
#        
func(*(1, 2, 3))

print('-------   -------')
tu = (4, 5, 6)
func(*tu)

print('-------   -------')
#        ,   **kwargs          、            
#                
dic = {'a': 88, 'b': 90, 'c': 91}
func(**dic)

実行結果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py
   1
   2
   3
-------   -------
   4
   5
   6
-------   -------
   88
   90
   91

Process finished with exit code 0

 
三、関数の役割ドメイン
 1.グローバル変数
pyファイル(モジュール)で直接定義された変数をグローバル変数と呼び、そのファイルのどこでも使用できます.
2.ローカル変数
関数の内部で定義された変数は、ローカル変数と呼ばれ、その関数の内部でしか使用できません.関数の外部では使用できません.
3.ローカル変数の宣言
キーワード:global関数内部でグローバル変数を宣言する
変数の検索プロセス:内側から外側(関数自体を先に探して、外側に探していません)
関数内部で定義されたローカル変数を外部で使用する場合は、その変数を宣言する必要があります.簡単に言えば、この変数はこのモジュール内で使用できることをプログラムに伝えます.
name = "  "     #         

def func():
    # global a  #          ,     
    a = 100     #         
    print(a)
    print(name)

func()   #     
print("------   -----")
print(name)     #           
print(a)     #         ,  a      a     ,     a    a     

print("------   -----")
aa = 10
def func():
    print(aa)    #        :    (     ,       )
func()

実行結果(エラーが報告されたため、後のaaは印刷されず、グローバル変数を宣言すればエラーは報告されません):
C:\software\python\python.exe D:/myworkspace/test/test/test.py
100
  
------   -----
  
Traceback (most recent call last):
  File "D:/myworkspace/test/test/test.py", line 12, in 
    print(a)     #         ,  a      a     ,     a    a     
NameError: name 'a' is not defined

Process finished with exit code 1

 
四、python内蔵関数
内蔵関数はpythonプログラミング言語で予め定義されている関数で、直接呼び出せばいいです.よく使われる内蔵関数は以下の通りです.
len():取得リスト/文字列/メタグループ/辞書の要素の合計数(データの長さ)eval():文字列内のpython式を識別するzip():集約パッケージmax():取得データ中の要素の最大値min():データ中の要素の最小値を取得する
sum():要素の合計その他の組み込み関数は、菜鳥チュートリアルで参照できます.リンク:https://www.runoob.com/python/python-built-in-functions.html
 
 
作者:miki_peng
出典:https://www.cnblogs.com/miki-peng
本文の著作権は作者とブログ園が共有しているので、転載を歓迎しますが、作者の同意を得ずにこの声明を保留しなければなりません.オリジナルを尊重してください.転載する場合は、文章のページの明らかな位置に出典を明記してください.そうしないと、法律責任を追及する権利を保留します.