ディレクトリ
機能セクション
機能システム
- 機能とは何ですか
- なぜ、利用機能
- 分類機能
- 文法
- 機能定義されたパラメータがあります。
- 定義されたパラメータフリー機能
- 空の関数を定義し、関数空間のシナリオ
- 関数の呼び出し
- 関数を呼び出す方法
- 関数の戻り値
- 関数としての応用パラメータ:パラメータの引数、位置パラメータと引数の位置、引数キーワード、デフォルトのパラメータ、* argsを、** kwargsから
機能とは何ですか
機能は、長期的視野での直接呼び出しの使用を必要とするときに遭遇、さまざまなツールのプログラミング言語パッケージであります
なぜ関数を使用します
プログラムコードは一緒に書いた場合、長い手順があるだろう、長すぎると、プログラムは貧しい保守読み取り可能なプログラム、サブ機能の機能を分割する、その後必要性を拡大すること
機能を使用する方法
- 呼び出した後、関数を定義します
- 定義関数
def 函数名 (param1.param2..):
code 1
code 2
code 3
return 返回值
- 関数の呼び出し
函数名(param1,param2...)
- 機能登録機能
def register():
usename = input('usename:').strip()
pwd = input('password':).strip()
with open('1.txt','a',encoding = 'utf8') as fa:
fa.writea(f'{usenamea}:{pwd}\n')
fa.flush
register()
register()
register()
- 機能ログイン機能
def login():
usename = input('usename:').strip()
pwd = input('password':).strip()
with open('1.txt','rt',encoding = 'utf8') as fr:
for use_info in fr:
user_info = use_info.strip('\n').split(:)
if usename == suer_info[0] and pwd == user_info[1]:
print('login sucessful')
else:
print('账号密码错误')
login()
- 関数定義の段階
def func():
bar()
print('*' * 10)
- 関数呼び出しのステージ
def bar():
print('from bar')
def foo():
print('from foo')
bar()
foo()
def foo():
print('from foo')
bar()
def bar():
print('from bar')
foo() # 函数调用
3通りの方法で定義された関数
引数なしの機能
あなたが関数のパラメータを定義する場合、外部体重を受信する機能は、実際には、変数名の媒体価値があるさ
関数のパラメータは、括弧内は、関数は、パラメータなしで呼び出されていないことがことに留意すべきである:呼び出し手段が機能コードロジック体は、外部入力値に依存する必要がある場合は、パラメータを渡す必要はありません引数なし、との定義のように定義する必要があります引数なしの機能
def func():
print('hello word')
func()
関数のパラメータがあります。
渡さなければならないパラメータを定義参照があり呼び出すことを意味している:参照機能を持つことが知られている関数定義の段階の括弧内のパラメータがありますが、ことに注意してください
コード身体機能が着信外部値を依存している場合、パラメータの関数としてそこに定義されなければなりません
def sum_self(x,y):
res = x+y
print(res)
sum_self(2,3)
空の機能
あなただけの機能を実装する必要がありますが、達成するために、タイムコードを使用する方法がわからないときは、一時的に他の機能のために行く、スキップする空の関数を使用することができます
def func():
pass
関数の戻り値
戻り値は何ですか
ロジック判定結果の関数内のコードのシリーズが処理されます後
def func():
name = 'nick'
return name
name = func()
print name # 返回函数值
なぜ、戻り値があるはずです
2人の月給を比較する必要が用意されました、そして、人々は、より大きな月給をもらいます
あなたがプログラムでさらに処理するための処理機能の結果を取得する必要がある場合は、戻り値を持っている必要があります機能する必要があります。
それに注意してください。
- 復帰は、関数の最後のサインです、関数は複数の戻り値を持つことができ、限り実行が戻るよう、機能が停止します
- リターン機能は、データの任意の型を返すことができます
- カンマで区切って複数の値を返すことができ、戻り値の無制限リターン(戻り値が複数ある場合、タプルの形式で出力されます)
def max_self(salary_x, salary_y)
if salary_x > salary_y:
return salary_x
else:
return salart_y
max_salart = max_self(2000,3000)
print(max_salary * 12) # return 360000
def func():
name = 'nick'
age = 19
hobby_list = ['read','run']
return name,age,hobby_list
name,age,hobby_list = func()
print(f'name,age,hobby_list:{name,age,hobby_list}')
# name,age,hobby_list:('nick',19,['read','run'])
関数の呼び出し
関数呼び出しとは何ですか
機能で場合函数名()
フォームの時間、コード本体が知られている又は遭遇し、機能を実行するには、関数本体の端を実行した後、すべてのコードを返します
関数は、関数本体がリターンを書いていない場合、それはNoneを返しますが、すべてのコードを実行終了します
def foo:
pass
print(foo())
なぜ関数を呼び出します
関数内での関数を使用して、単純化された手順
関数呼び出しの三種類
def max_self(x,y):
if x > y:
return x
else:
return y
max_self(1,2)
res = max_self(1,2) *12
max_self(max_self(2000,3000),4000)
アプリケーション関数のパラメータ
形参
括弧関数定義段階で定義されたパラメータは、仮パラメータと呼ばれ、パラメータが参照、基本的に変数名です
def func(x,y):
print(x)
print(y)
引数
実際のパラメータとして知られている関数呼び出し段括弧パラメータに渡された、本質的に、変数の値で、引数と呼ば
func(1,2)
位置パラメータ
Locationパラメータ
左から右へ順番に定義パラメータに従って定義位相関数で、位置パラメータと呼ばれます
def func(x,y)
print(x)
print(y)
特徴:位置に応じて定義されたパラメータ、値、以下ではないもう一つに送信されなければなりません
引数の位置
今度定義された引数に左から右へ順番に関数呼び出し段階は、引数が呼ばれます
func(1,2)
機能は順次形状に対応した位置に応じて基準値を渡します
キーワード引数
関数を呼び出すときに、指定された値にパラメータとして渡されたkey = valueの形式で、などのキーワードパラメータと呼ば
func (y = 2, x = 1)
特徴:あなたは限界位置を破るが、それでも指定されたパラメータの割り当てのためにすることができます
注意:
- あなたは位置引数とキーワード引数を混在させることができますが、場所引数は、左にあるキーの引数でなければなりません
- 位置と引数キーワード引数混合することができますが、パラメータの割り当てを繰り返すことはできません
func(x, y=2)
func(y=2,x)
func(x,x=1)
デフォルトのパラメータ
定義フェーズでは、それが割り当てられています
def func(x,y=10):
print(x)
print(y)
func(2)
特長:定義フェーズでは、すでに呼び出すときに値を割り当てることはできませんを意味し、割り当てられています
注意:
- 左のパラメータのデフォルトの位置にあるパラメータ
- 関数定義フェーズにおけるパラメータのデフォルト値は固定されていることを意味する定義フェーズ、一度だけ割り当てられたデフォルトのパラメータ値
m = 10
def foo(x = m)
print(x)
m = 111
foo()
- パラメータのデフォルト値は、通常は不変でなければなりません
def register(name,hobby,hobby_list = []):
hobby_list.append(hobby)
print(f'{name}prefer{hobby}')
print(f'{name}prefer{hobby_list}')
register('nick', 'read')
register('tank','zuipiao')
register('jsaon', 'piao')
def register(name,hobby,hobby_list = None):
if hobby_list is None:
hobby_list = []
hobby_list.append(hobby)
print(f'{name}prefer{hobby}')
print(f'{name}prefer{hobby_list}')
register('nick', 'read')
register('tank','zuipiao')
register('jsaon', 'piao')
概要
引数アプリケーションは、個人的な習慣に依存します
アプリケーションの==形状パラメータ:
- ==ほとんどの場合と同様に、パラメータは、位置パラメータとして定義されるべきである==値をリコール
- ==ほとんどの場合、リコール値と同じ、それがデフォルトのパラメータにパラメータを定義する必要があります==