day 8-関数2.0

6405 ワード

一、関数の戻り値
1.関数の戻り値:
a.は、関数が呼び出し元に返す値b.returnキーワードの後の式の値c.は、関数呼び出し式の値pythonの各関数に戻り値があり、戻り値はreturnの後の値であり、関数にreturnがなければname関数の戻り値はNoneである.
関数の呼び出し:a.まず関数呼び出しの位置に戻るb.実パラメータで形パラメータに値を割り当てる(パラメータ伝達)c.関数体d.を実行し、関数呼び出し式e.に戻り、関数呼び出しの位置に戻る
2.returnキーワード
a.returnの後の値を関数呼び出し式bに返す.終了関数
3.関数呼び出し式
python               ()
def func1():
    print('aaaa')

a = func1()  #       
print(a,func1())

def  my_sum(a,b):
    #a=11,b=22
    return a+b   #return 33

print(my_sum(11,22))

結果
aaaa
aaaa
None None
33

練習:指定した年齢が大人かどうかを判断する関数を書く
def  is_age(age):
    if age>=18:
        return True
    else:
        return  False
if is_age(10):
    print('     ')
else:
    print('        ')

結果

        

3.関数の終了
関数体の実行が完了するとreturnに遭遇します
def func2():
    print('213')
    return  10
    print('321')
print(func2())

結果
213
10

関数を書いて、指定したアドレスの対応するデータをダウンロードします
def download(ur 1):ネットワークがあるかどうかを判断する:ifネットワークreturn書き込みネットワーク要求データ保存データがない
练习:1つの関数を书いて、机能は1+2+を求めます...および10000以下
def my_sum():
    sum1 = 0
    number = 1
    while True:
        if sum1+number> 10000:
            return  sum1,number-1 #python     
# , , sum1 += number number += 1 print(my_sum())

結果
(9870, 140)

二、関数の役割ドメイン
役割ドメイン:変数が使用できる範囲、つまりこの変数の役割ドメイン
≪グローバル変数|Global Variable|emdw≫:宣言からファイルの終了までローカル変数を使用できます.関数(クラス)で宣言される変数はローカル変数です.役割ドメインは宣言の開始から関数の終了までです
1.グローバル変数
a=10#これは関数変数です
print(a)
def func1(): print(a)
for x in range(2):b=100#この変数はグローバル変数print(a)
2.ローカル変数
def func3():
    aaa = 100  #    
    print(aaa)
func3()

#print(aaa)    NameError:

結果
100

3.globalとnonlocal
global:関数にグローバル変数フォーマットを作成する:gloabl変数名変数名=値
print('===========')
abc = 'abc'  #    
bcd = 'bcd'
def func4():
    abc = 'aaa'  #    ,              ,           
   print(abc)

    global bcd   #  bcd       
    bcd = 200
    print(bcd)
func4()
print(abc)
print(bcd)

結果
===========
aaa
200
abc
200

変数を宣言し、関数呼び出しの回数を統計します.
count =0
def my_func():
    global count
    count +=1
    print('===')
my_func()
my_func()
print(count)

結果
===
===
2

nonlocal関数で関数を宣言する場合、使用する必要があります.
def func4():
    a1 =10
    print(a1)
    #python           
    def func5():
        nonlocal a1
        a1 = 100
        print('  ',a1)
        print('    ')
    func5()
    print('  ',a1)
func4()

結果
10
   100
    
   100

三、匿名関数
匿名関数:本質か関数か、匿名関数の宣言を別の簡単な方法で宣言する:lambdaパラメータリスト:戻り値--->結果は関数lambda:匿名関数を宣言するキーワード
1つの関数を書いて2つの数の和を計算します
def my_sum1(x,y):
    return  x+y

print(my_sum1(10,20))

my_sum2 = lambda x,y:x+y
print(my_sum2(15,25))

結果
30
40

funcs =[]
for i in range(5):
    funcs.append(lambda x:x*i)
print(funcs[2](2))
print(funcs[4](2))

結果
8
8

四、関数を変数とする
関数を宣言することは、変数を宣言することです.関数名は変数として使用できます..タイプはfunction(関数)印刷可能、付与可能、タイプ表示可能、関数としてのパラメータ、関数としての戻り値
a = 10 a = 'a' print(a)
#   func1        
def func1(a):
    print(a)
    return 10
print(func1,type(func1))

#   func1    a,    a      
a = func1
b = func1(10)+100
a('===')

#   func1       
functions = [func1]
functions[0]('abc')

結果
10
===
abc

1.関数をパラメータとする
def my_sum(*number):
    sum1 = 0
    for item in number:
        sum1 += item
    return  sum1

def my_mu1(*numbers):
    sum1 = 1
    for item in numbers:
        sum1 *= item
    return sum1

def operation(method,x,y):
    return method(x,y)
# 10 20  
result = operation(my_sum,10,20)
result1 = operation(my_mu1,10,20)
#  10    20
result2 = operation(lambda x,y:x>y,10,20)
#          
result3 = operation(lambda x,y:x if x>y else y,10,20)


print(result,result1,result2,result3)

結果
30 200 False 20

pythonの3つの演算子値1 if式else値2----->式がTrueであるかどうかを判断し、True式全体の結果は「値1」であり、そうでなければ値2である
3.関数を関数の戻り値とする
関数を書くには、演算記号(+、-、>)を入力し、記号に対応する機能を返すパラメータが必要です.
print('===========')


def my_sum(*number):
    sum1 = 0
    for item in number:
        sum1 += item
    return  sum1

def my_mu1(*numbers):
    sum1 = 1
    for item in numbers:
        sum1 *= item
    return sum1

def get_method(way,*numbers):
    if way == '+':
        return my_sum
    elif way == '-':
        return  lambda x,y:x-y
    elif way == '*':
        return  my_mu1
    elif  way == '>':
        return  lambda x,y:x>y
    elif   way == '

結果
30
200

ごさいきかんすう
1.再帰とは
再帰関数かいきかんすう:関数の関数ボディで関数自体を呼び出すかんすのかんすうたいで呼び出す
理論的に循環できることは、再帰的にもできる.
再帰的な要件:関数呼び出しを必要としないプロセスは、スタックを押すプロセスです(関数を呼び出すたびに、関数呼び出しが終了した後に自動的に破棄される関数に変数とパラメータを宣言するメモリ空間を割り当てるシステムです).
2.再帰関数の書き方
a.探臨界値(飛び出しサイクル-->return)b.探関係:現在の関数に対応する機能が実現されたと仮定し、f(n)とf(n-1)の関係を見つけるc.f(n-1)と前に見つけた関係を用いてf(n)の機能を実現する
#          
# def func1():
#     print('====')
#     func1()
# func1()

再帰関数を書きます:1+2+3+4+.+n
def my_sum1(n):
#       
    if  n == 1:
        return 1
#    my_sum1(n) my_sum1(n-1)d   

#3.  my_sum1(n-1)   my_sum1(n)   
    return my_sum1(n-1)+n
print(my_sum1(10))

結果
55

再帰で246*...
def my_sum2(n):
    if n == 2:
        return 2
    return my_sum2(n-2)*n
print(my_sum2(4))

結果
8
def copy(n):
    if n == 1:
        print('*')
        return  None
#   n *,  f(n-1)
    print('*'*n)
    copy(n-1)
copy(4)

def copy(n):
    if n == 1:
        print('*')
        return  None
#   n *,  f(n-1)
    copy(n - 1)
    print('*'*n)

copy(4)

結果
****
***
**
*
*
**
***
****