day 8関数
7232 ワード
01関数の戻り値
1.関数の戻り値:
a.関数が呼び出し元に返す値b.returnキーワードの後の式の値c.関数呼び出し式の値
pythonの各関数には戻り値があり、戻り値はreturnの後ろの値です.関数にreturnがない場合、関数の戻り値はNoneです.
関数の呼び出し
a.先に関数呼び出しの位置に戻るb.実パラメトリック付与(パラメータ伝達)c.関数体dを実行し、関数式eに戻り、関数呼び出しの位置に戻る
!!!関数の関数ボディは呼び出し後にのみ実行されます
2.renturnキーワード
a.returnの後の値を、関数呼び出し式bに返す.終了関数
3.関数呼び出し式:
pythonの各関数呼び出し式には値があります
練習:指定した年齢が大人かどうかを判断する関数を書きます.
3.関数の終了
a.関数実行完了b.returnに遭遇
関数を書いて、指定したアドレスの対応するデータをダウンロードします
练习して1つの関数を书いて、1+2+3を求めます....および10000以下
02スコープ
役割ドメイン:変数が使用できる範囲です.この変数の役割ドメインです(関数とクラスが変数に影響を与える役割ドメイン)
≪グローバル変数|Global Variable|emdw≫:宣言からファイルの終了までローカル変数を使用できます.関数(クラス)で宣言される変数はローカル変数です.役割ドメインは宣言の開始から関数の終了までです
2.ローカル変数
3.globalとnonlocal
global:関数にグローバル変数を宣言する
フォーマット:global変数名変数名=値
練習:変数を宣言し、関数ペアの呼び出し回数を統計します.
nonlocal:関数で関数を宣言する場合、使用する必要があります.
03匿名関数
匿名関数:本質関数、別の簡単な方法で宣言
匿名関数の宣言:lambdaパラメータリスト:戻り値------>結果は関数変数
04関数を変数として
関数を宣言することは、変数を宣言することです.関数名は変数として使用できます.印刷可能、付与可能、関数のパラメータとして使用可能、関数の戻り値として使用可能
1.関数をパラメータとする
pythonの3つの演算子(?:)式?値1:値2値1 if式else値2----->式がTrueであるか否かを判断し、式全体をTrueとした結果を‘値1’、そうでない場合を‘値2’とする
3.関数を関数の戻り値とする
関数を書くにはパラメータがあり、演算記号(+、-、*、>)を入力する必要があります.
+-----求和機能
------』求差機能
05再帰関数
この関数が再帰関数です
1.再帰再帰関数とは何か:関数の関数体重呼び出し自体
理論的に循環できることは、再帰的にもできる.
再帰的な要件に対して、関数で呼び出す必要がないプロセスは、スタックを押すプロセスです(関数を呼び出すたびに、システムはメモリ空間を割り当て、関数に変数やパラメータを宣言するなど、関数呼び出しが終了すると自動的に破棄されます).
2.再帰関数の書き方
a.探臨界値(飛び出しループ---return)b.探関係:現在の関数に対応する機能が実現されたと仮定し、f(n)とf(n-1)の関係c.f(n-1)とbで見つかった関係を用いてf(n)の機能を実現する
1+2+3+4+...+n
一般関数
さいきかんすう
再帰で246を求める....n(nは偶数)
1.関数の戻り値:
a.関数が呼び出し元に返す値b.returnキーワードの後の式の値c.関数呼び出し式の値
pythonの各関数には戻り値があり、戻り値はreturnの後ろの値です.関数にreturnがない場合、関数の戻り値はNoneです.
関数の呼び出し
a.先に関数呼び出しの位置に戻るb.実パラメトリック付与(パラメータ伝達)c.関数体dを実行し、関数式eに戻り、関数呼び出しの位置に戻る
!!!関数の関数ボディは呼び出し後にのみ実行されます
2.renturnキーワード
a.returnの後の値を、関数呼び出し式bに返す.終了関数
3.関数呼び出し式:
pythonの各関数呼び出し式には値があります
def func1():
print('aaa')
a = func1() #
print(a, func1())
def my_sum(x, y):
# x = 10. y = 20
return x+y # return 30
num = my_sum(1,3)
print(num, my_sum(10, 20))
練習:指定した年齢が大人かどうかを判断する関数を書きます.
def is_adult(age):
if age >= 18:
return True
else:
return False
print(is_adult(25))
if is_adult(10):
print(' ')
else:
print(' ')
person ={'name': ' ', 'is_adult': is_adult(23)}
print(person)
3.関数の終了
a.関数実行完了b.returnに遭遇
def func2():
print('123')
return 10
print('321')
print(func2())
関数を書いて、指定したアドレスの対応するデータをダウンロードします
def download(url):
if :
return None
练习して1つの関数を书いて、1+2+3を求めます....および10000以下
def my_sum():
sum1 = 0
for item in range(10000):
sum1 += item
if sum1 >= 10000:
print(sum1, item)
break
return item-1
print(my_sum())
def my_sum2():
sum1 = 0
number = 1
while True:
if sum1 + number >= 10000:
return sum1, number-1
#python , return , 。
sum1 += number
number += 1
print(my_sum2())
02スコープ
役割ドメイン:変数が使用できる範囲です.この変数の役割ドメインです(関数とクラスが変数に影響を与える役割ドメイン)
≪グローバル変数|Global Variable|emdw≫:宣言からファイルの終了までローカル変数を使用できます.関数(クラス)で宣言される変数はローカル変数です.役割ドメインは宣言の開始から関数の終了までです
a = 10 #
print(a)
def func1():
print(a)
for x in range(10):
b = 100 #
print(a)
print('====', b)
def func2():
print(b)
func2()
2.ローカル変数
def func3():
aaa = 100 # ,
func3()
print('----------------------------------------')
# print(aaa) #
3.globalとnonlocal
global:関数にグローバル変数を宣言する
フォーマット:global変数名変数名=値
abc = 'abc' #
bcd = 'bcd'
def func4():
abc = 'aaa' # , ,
print(abc)
global bcd # bcd
bcd = 200
print(bcd)
func4()
print(abc)
print(bcd)
練習:変数を宣言し、関数ペアの呼び出し回数を統計します.
count = 0
def my_func():
global count
count += 1
print('===========')
my_func()
my_func()
my_func()
print(count)
nonlocal:関数で関数を宣言する場合、使用する必要があります.
def func11():
a_11 = 10
print(' ', a_11)
# python
def func12():
nonlocal a_11 #
a_11 = 100
print(' ', a_11)
print(' ')
func12()
print(' ', a_11)
func11()
# print(a_11)
03匿名関数
匿名関数:本質関数、別の簡単な方法で宣言
匿名関数の宣言:lambdaパラメータリスト:戻り値------>結果は関数変数
#
def my_sum1(x, y):
return x + y
print(my_sum1(10, 20))
my_sum2 = lambda x, y: x+y
print(my_sum2(10, 20))
:
funcs = []
for i in range(5):
funcs.append(lambda x: x*i)
print(funcs[2](2))
print(funcs[4](2))
8 8
04関数を変数として
関数を宣言することは、変数を宣言することです.関数名は変数として使用できます.印刷可能、付与可能、関数のパラメータとして使用可能、関数の戻り値として使用可能
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('aaa')
print(b)
print('------------------------------------------')
# *** ,
# func1
functions = [func1, func1(10)]
functions[0]('123')
print(functions[0])
1.関数をパラメータとする
def my_sum(*numbers):
# numbers = (10, 20, 30)
sum1 = 0
for item in numbers:
sum1 += item
return sum1
def my_mul(*numbers):
sum1 = 1
for item in numbers:
sum1 *= item
return sum1
def operation(method,*numbers):
'''
method = my_sum
number = (10, 20, 30)
return my_sum((10, 20, 30))
'''
a = ('a', 100, 'c')
return method(*numbers)
# 10+20
result = operation(my_sum, 10, 20)
# 10*20
result2 = operation(my_mul, 10, 20)
# 10 20
result3 = operation(lambda x, y: x < y, 10, 20)
#
result4 = operation(lambda x, y: x if x > y else y, 10, 20)
a = 10 if 10 > 20 else 20
print('-------111111111111------------')
print(result, result2, result3, result4)
pythonの3つの演算子(?:)式?値1:値2値1 if式else値2----->式がTrueであるか否かを判断し、式全体をTrueとした結果を‘値1’、そうでない場合を‘値2’とする
3.関数を関数の戻り値とする
関数を書くにはパラメータがあり、演算記号(+、-、*、>)を入力する必要があります.
+-----求和機能
------』求差機能
def get_method(char):
if char == '+':
return lambda x, y: x+y
elif char == '-':
def func(x, y):
return x - y
return func
elif char == '*':
return lambda x, y: x*y
elif char == '>':
return lambda x, y: x>y
elif char == '')(10, 20))
05再帰関数
この関数が再帰関数です
def func1():
print('=====')
func1()
func1()
1.再帰再帰関数とは何か:関数の関数体重呼び出し自体
理論的に循環できることは、再帰的にもできる.
再帰的な要件に対して、関数で呼び出す必要がないプロセスは、スタックを押すプロセスです(関数を呼び出すたびに、システムはメモリ空間を割り当て、関数に変数やパラメータを宣言するなど、関数呼び出しが終了すると自動的に破棄されます).
2.再帰関数の書き方
a.探臨界値(飛び出しループ---return)b.探関係:現在の関数に対応する機能が実現されたと仮定し、f(n)とf(n-1)の関係c.f(n-1)とbで見つかった関係を用いてf(n)の機能を実現する
1+2+3+4+...+n
一般関数
def my_sum(n):
sum1 = 0
for x in range(1,n+1):
sum1 += x
return sum1
print(my_sum(10))
さいきかんすう
def my_sum2(n):
# 1.
if n == 1:
return 1
# 2. my_sum2(n) my_sum(n-1) :
: my_sum2(n) = my_sum2(n-1)+n
# 3. my_sum2(n-1) my_sum2(n) :
return my_sum2(n-1) + n
print(my_sum2(5))
再帰で246を求める....n(nは偶数)
def my_mul3(n):
# 1.
if n == 2:
return 2
return my_mul3(n-2) * n
print(my_mul3(8))
n = 3
***
**
*
n=4
****
***
**
*
'''
def print_star(n):
if n == 1:
print('*')
return None
# 2.
'''
: n * f(n-1)
'''
print('*'* n)
return print_star(n-1)
print_star(4)
print('=============================')
n = 4
****
***
**
*
def print_star(n):
if n == 1:
print('*')
return None
# 2.
'''
: n * f(n-1)
'''
print_star(n-1)
print('*'* n)
print_star(4)