ホームページ  >  記事  >  バックエンド開発  >  Pythonの基本的なポイント

Pythonの基本的なポイント

巴扎黑
巴扎黑オリジナル
2017-07-18 13:32:171239ブラウズ

関数の基本的な概要

関数を学ぶ前に、私は常に次のことを行ってきました: プロセス指向プログラミング、つまり、ビジネス ロジックに基づいて関数を上から下まで実装します。 ある関数のコードが問題ないかどうかを考えることができます。は複数の場所で使用されています。一度書くだけですか?このときコードはどのように定義すればよいでしょうか。まず次のケースを観察してください:

True の場合:
CPU 使用率 > 90%:
#メールリマインダーを送信
メールサーバーに接続
メールを送信
‐ ‐‐‐‐‐‐‐ ‐ � � � � � � � � �� 使用済みスペース> 90%:
# メールリマインダーを送信
メールボックスサーバーに接続
メールを送信
接続を閉じる

メモリ占有量 & gt; 80%:
# メールリマインダーを送信
メールボックスサーバーに接続メールを送信する 抽出された公開例:

def 電子メールを送信 (コンテンツ)
#電子メール リマインダーを送信
メールボックス サーバーに接続

電子メールを送信

接続を閉じる

while True:

CPU 使用率 > 90% の場合:
電子メールを送信(' CPU アラーム ')

ハードディスク使用量 & gt; 90%:
メールを送信 (' ハードディスク アラーム ')
メモリ占有 & gt; 80% :
メールを送信 (' メモリ アラーム ')

上記の 2 つのタイプのうち、2 番目の実装は、最初の実装よりも再利用可能で読みやすいはずです。実際、1 か所で定義し、複数の場所で呼び出すことができます。これが関数型プログラミングです

関数型プログラミングの概念:
プログラムを開発する際、特定のコードを複数回使用する必要がありますが、記述効率とコードの再利用を向上させるために、独立した機能を持つコードブロックが小さなモジュールに編成されます。 . 関数の定義と関数です

Call


<1>Define function

定義された関数の形式は以下の通りです:

def function name(): Code demo:
# 情報を出力する機能を完了できる関数を定義する
def printInfo():
print '----------------------- --------------------'
print 'Life is Hard 短いですが、私は Python を使っています'

print '-------------- ----------------------------------'





関数の定義には主に次の点があります。

• def:関数を表すキーワード• 関数名:関数の名前、呼び出し時に関数名に従って関数が呼び出されます

• 関数本体:関数内で一連のロジックが実行されます。はこの関数の機能内容です。

• パラメータ: 関数本体のデータを提供します
• 戻り値: 関数が実行されると、呼び出し元にデータを返すことができます。
<2>関数を呼び出す
関数を定義した後、これらのコードを実行したい場合は、それを呼び出す必要があります (定義するときは注意してください)。関数の内容は実行されません)
関数の呼び出しは関数名()を通じて完了することができます
demo: # 関数が定義された後、関数は自動的に実行されません。 printInfo( )

<3>関数のドキュメントの説明


例:

>>> def test(a,b):
... " 2 つの数値の合計を計算します" ... print("%d"%(a+b))... >>> >>> test(11,22)
33
次のコードを実行します
>> help(test)

=================== ============= ================

モジュール __main__:

test(a, b)
の関数テストに関するヘルプが使用されます2つの数字の合計を完成させます

(END)

==============================================

関数のパラメータ - 戻り値

<1> パラメータ付きの関数を定義します 例は次のとおりです:

def addnum(a, b):
c = a +b
print c
<2> パラメータを指定して関数を呼び出す 例として上記の add2num(a, b) 関数を呼び出します:

def addnum(a, b):
c = a+b
print c

add2num(11, 22) #パラメータ付きの関数を呼び出すときは、括弧内のデータを渡す必要があります

簡単なまとめ: • 小さい場合定義 パラメータを受け取るために使用される括弧内のパラメータは、「仮パラメータ」と呼ばれます
• 関数に渡すために使用される、呼び出されたときの括弧内のパラメータは「実際のパラメータ」と呼ばれます

ps:後で説明します関数のパラメータを詳しく説明した別のブログです


<3>戻り値のある関数 次の例:

def add2num(a, b):
c = a+b
Return c
保存した関数の戻り値は以下の通りです:
#Define function


def add2num(a, b):
Return a+b

#Call Function,ついでに関数を保存しておきます 戻り値
result = add2num(100,98)

#resultはadd2numの戻り値を保存しているので次に使えます
print result Result :

19 8


Pythonでは複数の値を返すことができます >>> def divid(a, b):
... shang = a//b
... yushu = a%b
... 返シャン、ユシュ
...
>>> sh, yu = divid(5, 2)
>>> sh
>>> yu
1

本質はタプルを使うことです

関数はパラメータの有無と戻り値の有無で組み合わせ可能です 全部で4種類あります

• パラメータなし、リターンなし。値
• パラメータなし、戻り値なし
• パラメータあり、戻り値なし
• パラメータあり、戻り値あり

<1>gt;パラメータなし、戻り値なしの関数

このタイプの関数はパラメータを受け取ることができず、戻り値がありません通常の状況では、印刷プロンプト ライトは Function に似ています。このタイプの関数を使用します。<2> パラメータと戻り値のない関数です。通常、このタイプの関数はパラメータを受け取ることはできませんが、特定のデータを返すことができます。データ収集などの場合は、このタイプの関数を使用します
< ;3>パラメータ付きで戻り値のない関数
このタイプの関数は、パラメータを受け取ることができますが、データを返すことはできません。通常、このタイプの関数は設定時に使用されます。結果を必要としない特定の変数のデータ
<4> ;パラメータと戻り値を持つ関数
このタイプの関数は、パラメータを受け取るだけでなく、特定のデータを返すこともできます。一般に、データ処理が必要で結果が必要なアプリケーションにはこれを使用します。関数の種類

簡単なまとめ


• 関数はパラメータや戻り値の有無によって組み合わせ可能です • 関数を定義する際は、実際の機能要件に基づいて設計されるため、記述される関数の種類は開発者によって異なります

• 関数がリターンするかどうか データを返すことができるのはリターンのみであるため、値はリターンがあるかどうかによって異なります

• 開発では、関数は値を返す必要があるかどうかのニーズに応じて設計されることがよくあります
•関数には複数の return ステートメントが存在する可能性がありますが、1 つの return ステートメントが実行される限り、この関数の呼び出しは完了したことになります
• プログラム内で関数名を繰り返さないようにしてください。が繰り返されると、後のもので前のものが上書きされます (注: 変数名を繰り返さないでください。変数名も上書きされます)



関数のネスト

def testB():
print('----testB start----')
print('testB関数で実行されるコードは以下の通りです…(略)…' )
print('---- testB end----')


def testA():

print('---- testA start----')

testB()

print('---- testA end----')

Call

testA()


Result:
---- testA start-- --
---- testB start----
testB 関数実行のコードです...(省略されました)...
---- testB end----
--- -- testA end----

簡単なまとめ:
関数が別の関数を呼び出す、これはいわゆる関数のネストされた呼び出しです
関数Aの場合、それは別の関数 B が呼び出された場合、関数 B 内のすべてのタスクが最初に実行され、関数 A が最後に実行された位置に戻ります

関数のネストの場合:

1. 3 つを見つける関数を書きます数値の合計
2. 3つの数値の平均を求める関数を書く


# 3つの数値の合計を求める
def sum3Number(a,b,c):
a+b+cを返す # 戻り値の後には数値または式を続けることができます

# 3つの数値の平均を完成させます
def Average3Number(a,b,c):

# なぜなら、sum3Number関数は既に 3 つの数値の合計を完了しているので、呼び出すだけで済みます
#つまり、受け取った 3 つの数値を実パラメータとして渡すことができます
sumResult = sum3Number(a,b, c)
aveResult = sumResult/3.0
returnaveresult

#関数を呼び出して3つの数字の平均を完了する

rsult=平均3number(11,2,55)

print( "平均is is %d "%result)infuncation functionのlocal変数とグローバル変数

local変数の例:[8]:def text1():

.. ..: print("text1----%d" %a)

...: In [9]: def text2(): ...: a = 400 ...: print(" text2-----%d" %a)

...:

[10]内: text1() text1---- 200

修正後

text1----300

In [ 11]: text2()
text2-----400


概要

• ローカル変数とは関数内で定義された変数です

• 関数ごとに定義できるローカル変数は同じ名前ですが、それぞれが違うものを使用します 影響はありません
• ローカル変数の役割は、データを一時的に保存するために、関数内で保存用の変数を定義する必要があります

という役割です。

グローバル変数




概念: 変数であれば、関数でも他の関数でも使用できます このような変数がグローバル変数です


例:
#グローバル変数を定義します
[12]の場合: a = 250

[13]の場合: def text1():

...: print("----text1----%d" %a) 。 ..: [14] 内: def text2(): (...: Print ("---- text2 ---- %d" %a)

...:

in [15] : テキスト 1 () ---- テキスト 1 ---- 250

[16]の場合:text2()
----text2----250

ローカル変数とグローバル変数が同じ名前の場合:
[23]の場合:a = 250 # [24]のグローバル変数:def text1():...##intous in in [24]:def text1():

| )

...:
#ローカル変数 ...: A = 666
...: Print (" ---- text1 ------------ %d " %a)
.. .:
In [25]: def text2(): ...: print("----text2----%d" %a)
...:

In [26] ]: text1 ()

----text1----521

----text1----666

[27]内: text2()

----text2----250


In [28] ]:


まとめ:

• 関数の外で定義された変数はグローバル変数と呼ばれます

• グローバル変数はすべての関数でアクセスできます • グローバル変数の名前が同じ場合ローカル変数の名前、その後ローカル変数が使用されます、ローカルスネークの圧倒を避けるためのちょっとしたトリック

関数内のグローバル変数を変更します:

In [31]: a = 250

In [32]: def text1(): ..: a = 520...: print("----text1----%d" %a)
[33] 内:

[33] 内: def text2():
%a..:
global
a
...: a = 666
...: print("----text2----%d" %a)
.. .:
In [34]: # 関数は呼び出されません


In [35]: print(a)
250
In [36]: # Call text1


In [37]: text1( )
----text1-- --520
In [38]: # もう一度印刷 ---->


In [39]: print(a)
250
In [40]: # 値が変更されていないことが判明しました


In [41]:
# Call text2
In [42]: text2()
----text2----666
In [43] : # a


をもう一度印刷する In [44 ]: print(a)
666
In [45]: # 値が変更されました


概要:

• でグローバル変数を変更した場合関数の場合、宣言に global を使用する必要があります。それ以外の場合は、(パラメータが渡されない場合)同じ変数のオブジェクトが関数内で再定義されるのと同等です

- 変数型のグローバル変数 - と不変型のグローバル変数 - 関数内で変更

ps: 変数型と不変型の概念を詳しく説明するブログが後ほどあります

例: -------> Immutable type:

In [46]: a = 6 In [47]: def Demon(): a += 1 print(a)...:

In [48]: demo()

エラー情報:
- --------------------------------------------- ----- ------------------------
UnboundLocalError トレースバック(最後に呼び出した最新の呼び出し)
( )

----> 1 デモ ()

3 print (a)

4

UnboundLocalError: 代入前にローカル変数 'a' が参照されました

------------------------------------- -------- --------------------------------------
注: 明らかに変更できません

- ------>変数の型:

[49] では: a = [1,]

[50] では:

[50] では: def demo():
...:a .append(2)
print(a)
[52]:[1、2]:logue me&&â関数が実行されたとき、および外部に出力されたときにも変更されます。

概要:

○ 関数内でグローバル変数を変更する場合は、global を使用して宣言する必要があります。そうしないとエラーが発生します
○ グローバル変数の本質は、global を使用せずに関数内で変更することはできません

グローバル変数を宣言します


は、グローバル変数のポインティングを変更できませんは、

がグローバル変数を新しいデータ

にポイントできないことを意味します。
immutable型のグローバル変数の場合、が指すデータは変更できないので、globalを使わないとグローバル変数を変更することはできません。 変数型のグローバル変数は指すデータが変更可能
なので、globalを使用しない場合もグローバル変数を変更することができます。

以上がPythonの基本的なポイントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。