Pythonにおける関数問題の詳細な分析


関数とは、私たちが生活の中で使っているテンプレート型に似た方法です.
def test():
  print('   ')
test()

この関数ではtestはメソッド、または関数です.test()は呼び出しの方法です.実行をクリックして、結果を出力します:皆さん、こんにちは.
def test(name):
    print('Hello,'+name)
test('  ')

実行をクリックすると、出力結果は:Hello、王さんです.
関数では、実パラメータと形パラメータに分けられ、この関数ではtest(name)、testは関数であり、nameは形パラメータである.パラメータは、作業を完了するために必要な情報です.
test('王さん')、testのこの関数を呼び出して、王さんは実参で、実参はこの関数を呼び出したときに関数に伝わる情報で、nameは王さんに等しい.
王さんのこの値はnameに格納されています.
1.パラメータなし戻り値なし.
def  test():
    print('   ,    ')
test()

これはパラメータなしで戻り値がない形式であり,これも最も簡単で最も基本的な構造関数である.パラメータ(パラメータ、実パラメータ)も戻り値もありません.実参や形参を空にすることもできます
2.戻り値がないパラメータがあります.
def test(fond):
    print('    {}'.format(fond))
    print('    '+fond)
test('   ')
test('  ') 

実行をクリックして、出力の結果は、私はバスケットボールをするのが好きです.私はバスケットボールをするのが好きです.私は水泳が好きです.私は水泳が好きです.この関数の中で有形参加実参です.また、関数を複数回呼び出すことができます.
def test(eat,fond):
    print('     ,     '+eat)
    print('     '+fond)
test('  ','  ')
test('  ','  ')

運行をクリックして、出力の結果は:鶏肉を食べるより、私は牛肉が好きです;私は歌を歌うのが一番好きです.私は鶏肉より歌が好きです.私は牛肉が一番好きです.この関数には2つのパラメータがあるので、2つのパラメータを入力する必要がありますが、パラメータ間の位置を乱さないでください.そうしないと、結果は2回目の出力のように面白いと感じます.
3.パラメータなしで戻り値があります.
def test():
    love='  '
    return love
result=test()
print(result)
print(test())

実行をクリックすると、出力結果は:小美;美ちゃん.この関数には、パラメータがなく、returnがあり、返す意味があり、関数にのみ適用され、test()は関数を呼び出し、love=‘小美’を得、returnはlove値に戻る.love=「小美」で、返される値は小美で、出力すると、この2つの方法で出力できます.
def test():
    love='  '
    print('     '+love)
    return
    print('   '+love)       #   
test()

実行をクリックして、出力の結果は:私の妻は小麗です.returnの下のコードは実行されません.
returnは戻りを遮断する意味があり、returnは戻り値を与え、次のコードは実行されません.
4.パラメータに戻り値があります.
def num(a):
    return a
print(num(3))

実行をクリックすると、出力結果は3になります.この関数にはパラメータがあり、戻り値があります.
def num(a,b):
    return a+b
print(num(10,33))

実行をクリックすると、出力結果は:43です.小さな演算をすることができます.
def num (a,b,c,d,e,f):
    info= a+d+f
    return info
print(num(8,5,6,9,3,4))

実行をクリックすると、出力結果は:21です.この関数には6つのパラメータがあるが,プロセス中,プログラムはa,d,fの3つのパラメータしか用いられず,対応するのはそれぞれ8,9,4である.
最後に計算して結果を出す.
5.デフォルトのパラメータ.
def test(name,age='16',fond='   '):
    print('     '+name,'   '+age,'  '+fond)
test('  ')
test('  ','20','   ')

運行をクリックして、出力の結果は:あの子は明ちゃんと言って、彼は今年16日にゲームをします;あの子は明ちゃんと呼ばれています.彼は今年20日毎日バスケットボールをします.この関数では、パラメータage,fondを設定するときにデフォルト値と呼ばれる値を与えます.このパラメータをデフォルトパラメータと呼びます.既定のパラメータは任意に設定できます.ただし、デフォルトのパラメータは最後に配置することに注意してください.形参が1人の明ちゃんしかいないとき、出力の結果は彼のデフォルトのパラメータで、年齢は16で、ゲームが好きです.形参が明ちゃん、20、バスケットボールをするとき、デフォルトの値は役に立たず、あなたが入ってきた値、年齢20、バスケットボールが好きです.
6.キーパラメータ.
実は肝心なパラメータとデフォルトのパラメータの違いは特に大きくありません.よく研究してみましょう.
def test(name,age='16',fond='   '):
    print('     '+name,'   '+age,'  '+fond)
test('  ',fond='  ')         
test(age='28',name='  ',fond='  ')

運行をクリックして、出力の結果は:あの子は明ちゃんと呼ばれています.彼は今年16日毎日走っています.あの子は華さんと呼ばれています.彼は今年28日毎日仕事をしています.キーパラメータのポイントは、呼び出すときに、パラメータの名前を書き出して値を割り当てることです.これがキーパラメータで、2番目の呼び出しのように順番を自由に書くことができます.
7.*argsの使い方.
def fun(*args):
    print(args)
fun('  ')
fun('  ',110,[1,2,3],{'name':'  '})

実行をクリックすると、出力結果は:('食事',);('食事',110,[1,2,3],{'name':'小明'}),*argsの使い方は1つのメタグループを出力し、中には何でも保存できます.
def fun1(a,b=0,*args,**kwargs):    #kwargs:        fond=’   ‘          ,      。
    print(a)
    print(b)
    print(args)
    print(kwargs)
fun1('  ',10,'aaa',fond='   ')

実行をクリックすると、出力結果は:明ちゃん;10;('aaa',);{'fond':'ゲーム'}.
8.関数if判定、戻り値.
def isOpen(open):
    if open==True:
        print('      ')
        return
    print('    ')
isOpen(True)

運転をクリックすると、ランプが点灯しています.isOpen(False)の場合、出力されますので、ランプをつけてください.これはreturnとif判断が結合した小さな例です.
9.高度な関数の適用.
【1】
space='--'
word='hello world'
print(space.join(word))

実行をクリックすると、出力結果は:h--e-l--l--o---w--o--r--l--dとなります.これは前に述べたpython内部の関数で操作します.では、どのようにして人建関数で実現しますか?
def test(content,space):
    print(space.join(content))
test('hello world','--')

実行をクリックすると、h--e-l--l--o---w--o--r--l--dと出力されます.これが私たちが人間で作った関数で挿入を実現します.
【2】mapの使い方.
def fun(num):
    print('       '+num)
list(map(fun,['79','86','92','61']))

実行をクリックすると、彼の試験成績は79だった.彼の試験の成績は86です.彼の試験の成績は92です.彼の試験の成績は61です.mapには2つの値が必要です.最初の値は関数でなければなりません.2番目の値はシーケンスです.mapの使い方はforループとよく似ています.シーケンス内のすべての要素を順番に処理し、baシーケンス内の各要素を関数に単独で配置して実行します.
【3】reduceの使い方
まずパッケージを導入する必要がありますfrom funtools import reduce
def count(index1,index2):
    return index1+ index2
result=reduce(count,[1,2,3,4,5])
print(result)

実行をクリックすると、出力結果は:15です.reduceが関数でどのような役割を果たしているのかよく分からないかもしれません.
def new_reduce(value1,value2):
    return value1+'     '+value2+'.'
result=reduce(new_reduce,['1','2','3','4'])
print(result)

実行をクリックすると、出力結果は:1の親友は2.の親友は3.の親友は4です.この出力を見ると、reduceはシーケンス内のすべての要素を2回操作し、前の2つの値を処理し、この値を3番目の値と処理し、処理の結果を次の値と処理することがわかります.したがって,上のプログラムの実装手順は,1+2=3,3+3=6,6+4=10,10+5=15である.
【4】匿名関数lambda
result=lambda x,y:x+y
print(result(5,6)

実行をクリックすると、出力の結果は11になります.Lambdaは、この関数が匿名関数であり、匿名関数の後ろのx,yは、受信した関数を表し、x+yはx+yの値を返すことを表す.
list1=[1,11,56,24,99,65,46]
list1=sorted(list1,key=lambda x:x)
print(list1)

[1,11,24,46,56,65,99]をクリックして実行します.匿名関数を使用してソートします.デフォルトは正の順序で、reverse=Falseです.逆配列を取得するには:
list=sorted(list,key=lambda x:x,reverse=True)。

10.ローカル変数とグローバル変数.
≪グローバル変数|Global Variable|oem_src≫:すべての関数以外で定義された変数.
ローカル変数:関数内部で定義された変数またはコードブロック内の変数
関数内の変数名が最初に表示され、=の前に表示される場合、変数名がローカルドメイン全体に存在するかどうかにかかわらず、関数で使用されるローカル変数とみなされます.新しいローカル変数が宣言されても.この変数名がすべての変数名と同じである場合、ローカル変数名はグローバル変数名を上書きします.
num = 100
def fun():
    new_value = 123   #         newValue
    print(new_value)
fun()               #      newValue        

実行をクリックすると、出力の結果は:123です.
num = 100
def fun():
    num= 123  #           num,                               。             
    print(num)
fun()  #      num=123        。

実行をクリックすると、出力の結果は:123です.
num = 100
def fun():
    num= 123 
    print(num)
fun() 
print(num)  #           ,       

実行をクリックすると、出力結果は:123100です.
ローカル変数でグローバル変数を変更するには、次の手順に従います.
num = 100
def fun():
    global num  #    num    ,           num                num           。
    num  = 123  #       num           
    print(num )
fun()
print(num )   #  123             

実行をクリックすると、出力結果は:123;123.
局所変数とグローバル変数が明らかに必要でなければ、絡まずに絡まないことができます.すなわち,変数名を定義する際には,これらの不要な問題を避けるために厳格に規範化しなければならない.