python学習整理(一):pythonのオブジェクトと変数

4754 ワード

  • ディレクトリpythonのオブジェクト参照の本質識別子基本用法開発における識別子命名規則変数の宣言_初期化_削除_ごみ回収メカニズム変数の宣言と付与削除変数とごみ回収メカニズム
    pythonのオブジェクト
  • pythonでは、すべてがオブジェクトです.各オブジェクトは、識別(id)、タイプ(type)、値(value)から構成されます.
       1.識別は、通常、メモリ内のオブジェクトのアドレスに対応する一意の識別オブジェクトに使用されます.組み込み関数id(obj)を使用して、オブジェクトobjの識別子を返します.
       2.タイプオブジェクトに格納されているデータ型を返します.タイプは、オブジェクトの値範囲と実行可能な操作を制限します.type(obj)を使用して、属するオブジェクトのタイプを取得できます.
       3.値は、オブジェクトが格納するデータの情報を表し、print(obj)を使用してオブジェクトの値を印刷することができる.
    オブジェクトの本質:特定の値を持つメモリブロックで、特定のタイプの関連操作をサポートします.
     
     
  • 参照の本質
  • pythonでは、変数は実際にはオブジェクトの参照です.すなわち,変数は実際にはオブジェクトのアドレスを格納し,変数はアドレスを介してオブジェクトを参照する.
    変数はスタックメモリにあります.
    オブジェクトはスタックメモリにあります.
    pythonは動的タイプ言語であり、変数のタイプを明示的に宣言する必要はなく、変数が参照するオブジェクトに基づいてpython解釈器が自動的にデータ型を決定します.
    pythonは強力な言語で、各オブジェクトにデータ型があり、そのタイプのサポートのみをサポートする方法です.
    a=3
    id(a)
    Out[1]: 1896181280
    
    b=3
    id(b)
    Out[2]: 1896181280
    
    type(3)
    Out[3]: int
    
    type(a)
    Out[4]: int
    #    ,  a b     ‘3’  int       
    
    c=a
    a=a+1
    print(id(a))
    print(id(c))
    Out[6]:1896181312
           1896181280
    #        ,python                c          ,     c     a          c。       ,   a=3,c=3.

     
     
  • 識別子
  • 基本用法
  • 大文字と小文字を区別します.
  • 最初の文字はアルファベットまたは下線でなければなりません.その後の文字はアルファベット、数字、下線でなければなりません.例:a,asd,a11.
  • では、if、while、forなどのキーワードは使用できません.
  • 二重下線を先頭と末尾とする名前には、通常、このような書き方は避けられます.例えば、_init__ クラスの構造関数です.

  • tip:help()+keywordsを使用してpythonのキーワード情報を検索できます.具体的には以下の通りです.
    help()
    
    Out[1]:Welcome to Python 3.6's help utility!
    
    If this is your first time using Python, you should definitely check out
    the tutorial on the Internet at http://docs.python.org/3.6/tutorial/.
    
    Enter the name of any module, keyword, or topic to get help on writing
    Python programs and using Python modules.  To quit this help utility and
    return to the interpreter, just type "quit".
    
    To get a list of available modules, keywords, symbols, or topics, type
    "modules", "keywords", "symbols", or "topics".  Each module also comes
    with a one-line summary of what it does; to list the modules whose name
    or summary contain a given string such as "spam", type "modules spam".
    
    help>
    
    
    
    #####  “keywords”
    
    help> keywords
    
    Out[2]:Here is a list of the Python keywords.  Enter any keyword to get more help.
    
    False               def                 if                  raise
    None                del                 import              return
    True                elif                in                  try
    and                 else                is                  while
    as                  except              lambda              with
    assert              finally             nonlocal            yield
    break               for                 not                 
    class               from                or                  
    continue            global              pass
  • 開発における識別子命名規則
  • を選択します.
    ルール#ルール#

    モジュールとパッケージ名
    すべての小文字、できるだけ簡単で、複数の単語の間に下線を使います
    math,os,sys
    関数名
    全小文字、複数の単語の間を下線で区切る
    get_value,max
    クラス名
    アルファベットは大文字で、アルパカの原則を採用しています.
    Student, MyClass
    定数名
    全大文字、単語間を下線で区切る
    MAX_INT
     
     
  • 変数の宣言_初期化_削除_ごみ回収メカニズム
  • 変数の宣言と付与
  • pythonでの変数の宣言と付与は、変数名=式を表すオブジェクトに変数をバインドすることに相当します.
    最も簡単な付与文はa=11である.実行中、python解釈器は、まず付与演算子の右側の式を実行し、式の演算結果を表すオブジェクト11を生成し、その後、このオブジェクトのアドレスを変数aに付与し、変数aはオブジェクト11の参照となる.
    チェーン付与文:b=a=11;    a=11,b=a; 文b=11、a=11に相当する.
    注意b=a、a=11と書くことはできません.変数は、使用前に初期化される必要があります.つまり、先に値が割り当てられます.
    #############      ############
    b=a=11
    
    id(b)
    Out[2]: 1896181536
    
    id(a)
    Out[3]: 1896181536
    #    ,b a    11     
    
    
    #     a  
    a=a+1
    
    a
    Out[5]: 12
    
    b
    Out[6]: 11
    
    id(a)
    Out[7]: 1896181568
    
    id(b)
    Out[8]: 1896181536
    #    ,a        b,         ,b             。

    ≪シリーズ・デポジット|Series Unpackaging|oem_src≫:シリーズ・データは同じ数の変数に割り当てられます.
    #      
    a,b,c=11,'sd',23.0
    
    a
    Out[10]: 11
    
    b
    Out[11]: 'sd'
    
    c
    Out[12]: 23.0
    
    
    #          
    a,b,c=11
    Traceback (most recent call last):
    
      File "", line 1, in 
        a,b,c=11
    
    TypeError: 'int' object is not iterable
    #     ‘int’           ,    ,              ,                         ,                。                     。
    
    
    #        :
    #   :
    a,b,c=[11,1,23]
    
    a
    Out[16]: 11
    
    b
    Out[17]: 1
    
    c
    Out[18]: 23
    
    #   :
    a,b,c={'a':12,'b':13,'c':'asd'}
    
    a
    Out[24]: 'a'
    
    b
    Out[25]: 'b'
    
    c
    Out[26]: 'c'
  • 削除変数とゴミ回収メカニズム
  • del文では、使用されていない変数を削除できます.
    オブジェクトが参照されていない場合は、ゴミ回収器に回収され、メモリ領域がわかります.しかし、このごみ回収メカニズムはタイムリーではありません.あるオブジェクトの参照が0になると、メモリ領域がすぐに解放されるのではなく、時間が経過してから解放されます.このメカニズムはまだ分かりません.指摘してください.