【継続更新】py基礎知識のまとめ

8349 ワード

ここでは、おばさんとのレッスン中に触れたpythonの基礎知識点をまとめました.少し雑然としているかもしれませんが、読書には影響しません.
モジュールとパッケージ
  • モジュールのインストールパスのデフォルトは、「pyインストールディレクトリ/lib/site-packages」の
  • です.
  • pythonの1つです.pyファイルはモジュール
  • と呼ばれます
  • モジュールの上位はパッケージであり、パッケージの上位もパッケージ
  • である.
  • パッケージとディレクトリの違いは、パッケージの下にinitがあることです.pyのファイル
  • パケットの参照方法
  • import --- #  1
    from --- import --- #  2
    
    import --- as "  " #       ,                 
    
  • パッケージのインストール方法(5つ目の方法は長い目で見ました)
  • 1. pip install package_name
    2. easy_install package_name
    3.   exe        
    4.        ,      python setup.py install
    5.         ,   lib/site-packages   ,      import,        
    

    クラス#クラス#
    #!/usr/bin/env python3
    # -*- coding:utf-8 -*-
    
    #python ,          object , java  ,              , object       
    class Animal:
        #    :                  
        def __init__(self,a,b):#          self,self      ,               ,  “demo”
            self.name = a
    
            #python                   
    
            self.__age = b #    ,       ,        ,               。           self.__private_attrs。
            print("this is animal init")
    
        def say(self):
            self.__private_methed() #       
            print("i am animal")
    
        #      :       ,          ,         。        self.__private_methods
        def __private_methed(self):
            pass
        #       0,             
        def __del__(self):
            print("this is animal del")
    
    #   ,python      
    class Dog(Animal):
        #  __init__()
        def __init__(self,a,b,c):
            #  :  init               __init__()  
            # super().__init__(self,a,b) #           
            Animal.__init__(self,a,b) #           
    
    
        #  :               ,            。                        
        def say(self):
            print("i am dog")
    
    if __name__=="__main__":
        #    ,       ,                     
        x =Dog(2,3,4)
        x.say()
    

    例外処理
    #!/usr/bin/env python3
    # -*- coding:utf-8 -*-
    
    '''
      python3  try--except--finaly
    try:    
    except:  try                 ,         except   ,    except      ,     
    finally:  try        ,          ,        ,  except,else      ,    except     ,        finally           
    '''
    import  logging
    
    try:
        1/0
    except ZeroDivisionError as  e:
        logging.exception(e)
    except:
        print("else error")
    finally:
        print("finally")
    

    関数のパラメータ
    関数のパラメータには、必須パラメータ、デフォルトパラメータ、可変パラメータ、キーワードパラメータ、名前付きキーワードパラメータが含まれます.
    注意:パラメータの順序:必須パラメータ、デフォルトパラメータ(変化の大きいものは前、変化の小さいものは後)、可変パラメータ、キーワードパラメータ
    必須パラメータ:次の関数のパラメータは必須パラメータです.この関数を呼び出すときは、この2つのパラメータを入力する必要があります.そうしないと、異常が発生します.
    def fun(name,password):
        pass
    

    ≪デフォルト・パラメータ|Default Parameters|oem_src≫:パラメータにデフォルト値を設定し、関数を呼び出すときにパラメータに値を割り当てると、値を割り当てるデータを使用して操作します.そうしないと、パラメータのデフォルト値を使用します.
    def fun(a,b,c=2):
        print(a,b,c)
        
    fun(1,2) #    :1 2 3
    fun(1,2,3) #    :1 2 3
    

    ここでは、デフォルトのパラメータは不変オブジェクトを指す必要があります.不変オブジェクトが作成されると、オブジェクト内部のデータは変更できません.プログラムを作成するときに、不変オブジェクトを設計できる場合は、できるだけ不変オブジェクトに設計します.次に、デフォルトパラメータをリストに指す例を示します.
    def fun02(L=[]):
        L.append("end")
        print(L)
    if __name__ == "__main__":
        fun02()  #  ['end']
        fun02()  #  ['end', 'end']
    

    可変パラメータ:入力されたパラメータの個数が変化可能で、1個、2個、任意個、0個であってもよい.これらのパラメータは関数内部で自動的にtupleに組み立てられ、一般的には*argsを使用して可変パラメータを表すのがデフォルトである.
    #    :*args     ,        ,          “*”    
    def fun03(a,b,c=1,*args):
        print(a,b,c,args)
        
    if __name__ == "__main__":
        #    1:      
        fun03(1,2,3,4,5,6)
        #    2:   list  tuple,     
        args=(1,2,3)
        fun03(1,2,3,*args)
    

    キーワードパラメータ:0個または任意のパラメータ名を含むパラメータを入力できます.これらのキーワードパラメータは関数内で自動的にdictに組み立てられます.一般的には、デフォルトでは*kwを使用してキーワードパラメータを表します.
    #    :**kw      ,        ,        “*”    
    def fun04(a,b,c=1,**kw):
        print(a,b,c,kw)
    if __name__ == "__main__":
        #    1:      ,  “key = value”
        fun04(1,2,3,d = 4,e = 5 )
        #    2:  dict     
        kw = {"d":4,"e":5}
        fun04(1,2,3,**kw)
    

    データ型
    主に3に内蔵されているデータ型を紹介します:list(リスト)、tuple(元祖)、dict(辞書)
    List:リスト、秩序化されたコレクション、可変データ型、いつでも要素を追加および削除できます.
    方法
    解析
    mylist = [1,2,3]
    リストオブジェクトを明示する
    mylist = []
    空のlistオブジェクトを宣言
    mylist.insert(0,12)
    インデックス0に12を挿入
    mylist.append(1)
    リストの末尾にデータ1を追加
    mylist[0] = 11
    下に0と表示されているデータの変更
    mylist.pop()
    リストの最後尾のデータを削除し、削除したvalueを返します.
    mylist.pop(0)
    下に0と表示されているデータを削除し、削除したvalueを返します.
    tuple:元祖、秩序ある集合、可変データ型、一度初期化すると修正できません.可変ではないので、より安全です.「廖雪峰」の公式サイトでは、listの代わりにtupleを使うことができればできるだけtupleを使うことをお勧めします.
    方法
    解析
    mytuple = (1,)
    一つの要素しかない元祖を明らかにする
    mytuple = (1,2,3)
    3つの要素を持つ元祖を明らかにする
    mytuple[0]
    元祖の要素を取得しindexに基づいて
    dict:辞書は、他の言語でもmapと呼ばれ、キー値を使用して記憶され、非常に速い検索速度を有し、dictは空間で時間を交換する方法である.
    keyは可変オブジェクトでなければなりません.よく使われるkeyは文字列です.
    方法
    解析
    mydict = {"name":"ht","password":"ting"}
    申明dict
    mydict["name"] = "ht2"
    辞書にkeyがnameの要素がある場合は、対応するvalue値を変更します.
    mydict.get("name",-1)
    key=「name」のvalueを取得し、keyが存在しない場合は自分が設定したデータを返します.ここでは-1を設定します.
    mydict.pop("namew",-1)
    要素を削除し、指定したkeyが存在しない場合は、-1を設定したデータを返します.
    if key in mydict:pass
    python 3では、「has_key(key)」の代わりに、keyが辞書にあるかどうかを判断する方法を使用します.
    mydict.items()
    (py 3)ディクショナリキー値の反復可能なオブジェクトを返します.ここでは反復器ではありません.一般的にキー値のループ取得に使用されます.
    from collections import Iterable
    from collections import Iterator
    
    dict01 = {"message": "         ","nextPage": 1,"pageNo": 0,"resultCode": "000","totalPage": 66746}
        if "message" in dict01: #    key    dict  
            print(dict01.get("message"))
        items = dict01.items() #items()
        print(isinstance(items,Iterator)) #        
        print(isinstance(items,Iterable)) #          
        print(items)
    

    スライス
    リスト、tuple、strの一部の要素を取るとスライス操作に使用されます
    構文:[オブジェクト](Object)[インデックス:インデックス:ステップ](Index:Step)
  • *[:5]=>最初のindexは指定されません.デフォルトは0
  • です.
  • *[1:]=>2番目のindexは指定されません.デフォルトは-1
  • です.
  • *[-2:-1]=>負の数を使用できます.最後の要素のindexは-1
  • です.
  • *[1:3]=>デフォルトステップ長は1で、下付き1の要素からデータを取り始めることを示し、下付き3の要素が終わるまで、要素3は結果に含まれないことに注意してください.
  • *[::2]=>ステップ長を2に設定、1要素間隔で値をとることを示すが、2要素が1値
  • をとることはないと理解できる.
    if __name__ == "__main__":
        mylist = [0,1,2,3,4]
        print(mylist[0:2])  # [0, 1]
        print(mylist[0:-1]) # [0, 1, 2, 3]
        print(mylist[::2]) # [0, 2, 4]
    

    json.loads
    使用法:json形式文字列復号をpython辞書オブジェクトに変換する
    import json
    
    if __name__ == "__main__":
        json_str = '{"message": "         ","nextPage": 1,"pageNo": 0,"resultCode": "000","totalPage": 66746}'
        json_ob = json.loads(json_str)
        print(json_ob)
        print(type(json_ob))
    

    eval()
    解釈:文字列strを有効な式として評価し、計算結果構文を返します:eval(source,[globals[,locals])->value、一般的にsourceパラメータを使用すればいいです
    if __name__ == "__main__":
        #  list     list  
        list_str = "[1,2,3]"
        list_rs = eval(list_str)
        print(type(list_rs))
        
        #  tup      tuple  
        tup_str = "(2,3,4)"
        tup_rs=eval(tup_str)
        print(type(tup_rs))
        
        #  dict      dict  
        dict_str = "{'name':'ht','pass':'123'}"
        dict_rs = eval(dict_str)
        print(type(dict_rs))
        
        #  str               
        str_and = "1+2"
        print(eval(str_and))
    
    

    isinstance(value,(dict,list))
    説明:タイプ判定、valueのタイプがdictとlistのいずれかに属するかどうかを判定し、もしそうであればTrueを返し、そうでなければFalseを返す
    if __name__ == "__main__":
        print(isinstance([1,2,3],list))
        print(isinstance([1,2,3],(list,tuple)))
    

    set()集合
    説明:集合はdictと比較的に知り合いであり、keyの集合でもあるがvalueは存在せず、keyは繰り返すことができないため、setでは、繰り返すkeyは存在しない.setはdictと同様に可変要素を入れてはいけません.2つの可変オブジェクトが等しいかどうかを判断できないため、set内部に「重複要素がない」ことを保証できません.
    方法
    解析
    s = set()
    空のsetオブジェクトを作成する
    s = set([1,2,3,2])
    提供された反復可能なオブジェクトに基づいてsetを作成します.ここではリスト、tuple、などです.
    s.add(5)
    setに要素を追加
    s.remove(key)
    要素の削除
    s.issubset(t)
    集合の包含関係は、sの各要素がtにあり、そうでなければTrueを返し、そうでなければFalseを返すことを意味する.