Python 3学習日記Day-1

3806 ワード

NOTE:文章の中のコードのインデントはどうしたらいいか分からないので、直接貼り付けて使うと間違いが報告されます
ラーニングアドレス
Pythonベース
  • Pythonは大文字と小文字に敏感な
  • です
  • インデントは文法の内容を表し、4つのスペースのインデントを使用するので、コードを貼り付けるときにインデントが正しいかどうかに注意してください.
  • #冒頭の文は注釈
  • です.
  • データ型
  • 整数int
  • 浮動小数点数(小数)float
  • 文字列strを単一引用符または二重引用符で囲む
  • ブール値boolTrueFalseの2つの値しかなく、大文字と小文字の
  • に注意してください.
  • Null値None
  • リストlist a=[]vsメタグループtuple a=()
  • 辞書dic a={key:value}
  • setはkeyのセットですが、value a=set(list)
  • は格納されません.
  • 符号化
  • 文字列str Unicode符号化を使用し、多言語
  • をサポートする.
  • strとbytesが互いに変換する場合、特別な需要がなければUTF-8符号化
  • のみを使用する.
  • 常用プレースホルダは以下の通りである%d整数%f浮動小数点数%s文字列%x 16進整数note:何を使うか分からないが、%sは永遠に機能し、すべてのタイプを文字列
  • に変換する.
  • 条件判断
  • if a > 2:
        xxxx
    elif a > 1:
        sssss
    else:
        dddd
    
  • サイクル
  • forサイクル
  • sum = 0
    for x in range(101): 
        sum = sum + x
    print(sum)
    
  • whileサイクル
  • sum = 0
    n = 99
    while n > 0: 
        sum = sum + n 
        n = n - 2
    print(sum)
    
  • 定義関数
  • def function_name():
        pass
        return xx 
    

    note:関数が返す多値はtupleです.
    関数を定義するには、関数名とパラメータの個数を決定する必要があります.必要であれば、パラメータのデータ型を先にチェックして、関数体の内部をreturnでいつでも関数結果を返すことができます.関数の実行が完了してもreturn文がない場合、自動return None関数は複数の値を同時に返すことができますが、実はtupleです.
  • 関数のパラメータ
  • 位置パラメータ(最も単純で最も基礎的なパラメータ)
  • def test(x): 
       pass
    
  • デフォルトパラメータ
  • def test(x,n=2): 
       pass
    

    note:デフォルトパラメータは可変オブジェクトを指す必要があります!
  • 可変パラメータ*args(入力パラメータの個数は可変であり、0個であってもよい)可変パラメータは、関数呼び出しにおいてtuple
  • として自動的に組み立てる.
    def test(*numbers): 
       for x in numbers:
           pass
    

    note:上記numbersはtupleを受信しており、listまたはtupleがすでに存在する場合は、このようにすることができます.
    >>> nums = [1,2,3]
    >>> test(*nums)
    
  • キーワードパラメータ**kw(パラメータ名を含む複数のパラメータが入力)キーワードパラメータは、関数内部で自動的に1つのdict
  • に組み立てる.
    def person(name, age, **kw):
        print('name:', name, 'age:', age, 'other:', kw)
    

    note:dictが1つあれば、そうすることができます.
    >>>extra = {'city': 'Beijing', 'job': 'Engineer'}
    >>>person('Jack', 24, **extra)
    name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
    
  • 名前付きキーワードパラメータ
  • def person(name, age, *, city, job):
        print(name, age, city, job)
    

    命名キーワードパラメータには特殊な区切り記号*が必要であり、後のパラメータは命名キーワードパラメータと見なされ、*がなければPythonは位置パラメータか命名キーワードパラメータかを判断できないが、可変パラメータがあれば*は必要ない
    def person(name, age, *args, city, job):
        print(name, age, args, city, job)
    

    キーワードパラメータを呼び出すときはパラメータ名を入力する必要があります.そうしないと、キーワードパラメータにデフォルト値が入力されます.
    def person(name, age, *, city='Beijing', job):
        print(name, age, city, job)
    
  • パラメータの組み合わせ上記5種類のパラメータを組み合わせて使用することができ、パラメータ定義順序は必須パラメータ、デフォルトパラメータ、可変パラメータ、ネーミングキーワードパラメータ、キーワードパラメータ
  • である必要がある.
    def f1(a, b, c=0, *args, **kw):
        print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
    def f2(a, b, c=0, *, d, **kw):
        print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)
    
  • 再帰関数関数1つの関数が関数の内部で自分を呼び出す場合、この関数は再帰関数
  • である.
  • 再帰関数を使用するスタックオーバーフロー防止
  • に注意
  • スタックオーバーフローを解決する方法は、テール再帰最適化によって、テール再帰とサイクルの効果は同じBUTであり、Python標準の解釈器はテール再帰に対して最適化されず、どの再帰関数にもスタックオーバーフローの問題がある