Python-関数

5305 ワード

関数#カンスウ#
注意してください.ここのすべての概念の原理は、実は多くの他のプログラミング言語と同じです.文法的に違うだけ
1.概要
  • 関数とは、独立した機能を有するコードブロックを小さなモジュールに組織し、必要に応じて
  • を呼び出すことである.
  • 関数の使用には、次の2つのステップがあります.
  • 定義関数-パッケージ独立機能
  • 呼び出し関数-パッケージの成果を享受する
  • 関数の役割は、プログラムを開発する際に、関数を用いることで、作成の効率性とコードの再利用
  • を向上させることができる.
    2.関数の定義
    定義された関数のフォーマットは次のとおりです.
    def    ():
    
               
        ……
    
  • defは、英語defineの略
  • です.
  • 関数名は、関数パッケージコードの機能を表すことができるはずであり、後続の呼び出し
  • を容易にする.
  • 関数名の命名は識別子の命名規則に合致するべきである
  • は、アルファベット、アンダースコア、および数字からなる
  • 数字で始まる
  • はできません.
  • キーワードと重複することはできません
  • 呼び出し関数は簡単で、 ()によって関数の呼び出し
  • を完了することができる.
  • 注意ハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッハッ
    name = "  "
    
    
    #               
    def say_hello():
        print("hello 1")
        print("hello 2")
        print("hello 3")
    
    print(name)
    #         ,            
    #         ,           ,         
    say_hello()
    
    print(name)
    
    

    3.jsのような前処理はありますか?
  • 関数呼び出しを関数定義の上に置くことができますか?
  • できません!
  • 関数名を用いる関数を呼び出す前に、Pythonが関数の存在を知っていることを保証しなければならないからである.
  • そうでない場合、コンソールはNameError: name 'say_hello' is not defined(名前エラー:say_helloという名前は定義されていません)
  • をプロンプトします.

    4.Pycharmでデバッグ
  • F 8 Step Overは、単一ステップでコードを実行することができ、関数呼び出しを1行のコードと見なして
  • を直接実行する.
  • F 7 Step Intoはコードを1ステップで実行でき、関数であれば関数内部
  • に入る
    5.関数のドキュメントコメント
  • 開発では、関数にコメントを追加する場合は、定義関数の下に連続する3対の引用符
  • を使用する必要があります.
  • 連続する3対の引用符の間に関数の説明文字
  • を記述する.
  • 関数呼び出し位置では、ショートカットキーCTRL + Qを使用して関数の説明情報
  • を表示することができる.
    注:関数体は相対的に独立しているため、関数定義の上に、注釈を含む他のコードと2つの空白行を保持する必要があります.
    6.関数のパラメータ
    jsと同様にコードを見てみましょう
    def sum_2_num(num1, num2):
    
        result = num1 + num2
        
        print("%d + %d = %d" % (num1, num2, result))
    
    sum_2_num(50, 20)
    ## num1,num2    。50.20   
    

    7.関数の戻り値
  • プログラム開発では、ある関数の実行が終了すると、呼び出し者に特定の結果に対して後続の処理を行うための結果を伝えることが望ましい場合がある.
  • 戻り値は、関数が完了すると、最後に呼び出し元に与える結果
  • である.
  • 関数においてreturnのキーワードを用いる結果
  • を返すことができる.
  • 呼び出し関数の一方は、変数を用いて関数の戻り結果
  • を受信することができる.
    注意:returnは戻りを表し、後続のコードは実行されません.
    コードの例:
    def sum_2_num(num1, num2):
        """        """
    
        return num1 + num2
    
    #     ,    result         
    result = sum_2_num(10, 20)
    
    print("      %d" % result)
    
    

    8.関数ネスト
    関数埋め込みとは、1つの関数にもう1つの関数を指します.
  • ある関数の中にもう一つの関数が呼び出されました.これが関数ネスト呼び出し
  • です.
  • 関数test2の場合、別の関数test1が呼び出される
  • では、test1を呼び出す関数が実行されると、まず、test1の関数のタスクが
  • を実行する.
  • は、test2で呼び出す関数test1の位置に戻り、後続のコード
  • を実行し続ける.
    def test1():
    
        print("*" * 50)
        print("test 1")
        print("*" * 50)
    
    
    def test2():
    
        print("-" * 50)
        print("test 2")
        
        test1()
        
        print("-" * 50)
    
    test2()
    
    

    もっと面白いサンプルコードを見てみましょう
    
    def print_line(char, times):
    
        print(char * times)
    
    
    def print_lines(char, times):
    
        row = 0
        
        while row < 5:
            print_line(char, times)
    
            row += 1
    
    print_lines("s",10)
    

    9モジュール内の関数の使用
    モジュールはPythonプログラムアーキテクチャの核心概念である.
  • モジュールはツールパッケージのようなもので、このツールパッケージのツールを使用するにはimportというモジュール
  • をインポートする必要があります.
  • 拡張子pyで終わるPythonソースファイルは、モジュール
  • である.
  • モジュールで定義グローバル変数、関数は、いずれもモジュールが外部に直接使用可能なツール
  • である.
    9.1最初のモジュール体験
    ステップ
  • 新規hm_10_ .py
  • hm_09_ .pyの内容をコピーし、最後の行printのコードは
  • を除く.
  • 文字列変数
  • を追加
    name = "     "
    
  • hm_10_ .pyファイルを新規作成し、
  • というコードを作成します.
    import hm_10_     
    
    hm_10_     .print_line("-", 80)
    print(hm_10_     .name)
    

    体験のまとめ
  • は、1つのPythonファイルで変数または関数
  • を定義することができる.
  • は、その後、別のファイルにおいてimportを使用してこのモジュール
  • に導入する.
  • が導入すると、 . / . の方法で、このモジュールで定義変数または関数
  • を使用することができる.
    モジュールはかつて書いたコードを便利に多重化することができます!
    9.2モジュール名も識別子です
  • 標識は、アルファベット、下線、および数字からなる
  • であることができる.
  • 数字で始まる
  • はできません.
  • キーワードと重複することはできません
  • 注意:Pythonファイルに名前を付けると、PyCharmでこのモジュールをインポートすることはできません.
    9.3 Pycファイル(了解)Ccompiledにコンパイルされたという意味です
    操作手順
  • プログラムディレクトリを参照すると、__pycache__のディレクトリ
  • が表示されます.
  • ディレクトリの下にhm_10_ .cpython-35.pycファイルがあります.cpython-35Python解釈器のバージョン
  • を表します.
  • このpycファイルはPython解釈器によってモジュールのソースコードをバイトコードに変換したものです
  • Pythonこのようにバイトコードを保持することは、起動速度の最適化
  • である.

    バイトコード
  • Pythonは、ソースプログラムを解釈する際に2つのステップに分かれている
  • まずソースコードを処理し、コンパイルしてバイナリバイトコード
  • を生成する.
  • バイトコードをさらに処理することにより、CPUが認識可能なマシンコード
  • が生成する.
  • モジュールのバイトコードファイルがある後、次のプログラムの実行時に、前回バイトコードを保存した後にソースコードを変更しなかった場合、Pythonがロードする.pycファイルのコンパイルをスキップする
  • Pythonが再コンパイルされると、ソースファイルとバイトコードファイルのタイムスタンプ
  • が自動的にチェックされる.
  • ソースコードを変更すると、次のプログラムが実行されると、バイトコードは
  • を自動的に再作成します.
    ヒント:モジュールおよびモジュールの他のインポート方法については、後続のコースが徐々に展開されます.
    モジュールはPythonプログラムアーキテクチャの核心概念である.