ゼロからプログラミングを学ぶ(5)--pythonデータ型--文字列

4299 ワード

前言
2020年3月から、「シロはゼロからプログラミングを学ぶ」という一連のドキュメントを書き、自分が0から学んだことを記録する計画だ.
  • 第1シリーズ:python、インストール、環境構築、基本構文から、DjangoとFlaskの2つの現在最も熱いwebフレームワークを利用して小さなプロジェクト
  • を完成する計画
  • 第2シリーズ:Go言語を選択するか、Vueを選択するかのいずれかです.js.具体的な状況は未定で、目を拭いて待ちましょう...

  • 基本概念
  • 文字列の場合Pythonで最も一般的なデータ型は、pythonに文字というデータ型がないため、引用符と二重引用符の役割は同じですが、引用符が混用されないことを保証します.
  • 文字列はpythonでは可変タイプであり、すなわち文字列を変更する要素に新しい文字列
  • を作成する必要がある.
  • 文字列は、スライス操作の順序で
  • にアクセスできる独立した文字からなる.
  • Python 3の文字列でUnicodeを使用し、多言語を直接サポートします.UTF-8コード
  • のみを使用することを覚えておいてください.
    きほんそうさ
    文字列の作成と割り当て
    文字列の作成は非常に簡単で、引用符で直接包むこともstr()ファクトリメソッドで作成することもできます.
    In [1]: a="hello world" #      
    In [2]: print(a)
    hello world
    
    
    In [3]: b='hello python' #      
    In [4]: print(b)
    hello python
    
    In [9]: s = str([1,2,3,4])  # str()    
    In [10]: s 
    Out[10]: '[1, 2, 3, 4]'
    

    アクセス文字列の値
    1つ以上のインデックスをカッコで加算して文字を取得
    In [11]: a="hello world"
    In [12]: a
    Out[12]: 'hello world'
    In [13]: a[0]
    Out[13]: 'h'
    
    In [14]: a[1:5]
    Out[14]: 'ello'
    
    In [15]: a[6:]
    Out[15]: 'world'
    

    文字列の変更
    前述したように、文字列は変更不可能なシーケンスデータ型であり、文字列を変更するには新しい変数を新しく作成する必要があります.つまり、メモリに新しいメモリ空間を開いて変数を格納する必要があります.新しい変数の名前は元の変数の名前と同じでも、異なるでも構いません.
    In [16]: a="hello world"
    In [18]: a = a[:6] + 'python'  #  world     python
    In [19]: a
    Out[19]: 'hello python'
    

    文字列の文字の削除&&文字列の削除
    文字列を変更することはできません.同じように削除することはできません.文字列の1つを削除するには、文字列に必要な部分だけを抽出し、新しい文字列に値を割り当てます.文字列全体を削除する操作は、文字列にNULL値またはdel文を割り当てることで操作できます.del文は変数をメモリから削除します.ほとんどの操作ではdel文で操作する必要はありません.pythonにはゴミ回収メカニズムもあり、プログラムコードの実行が終了すると自動的にメモリが解放されます
    In [20]: a
    Out[20]: 'hello python'
    In [21]: a=a[:4] + a[5:] #     
    In [22]: a
    Out[22]: 'hell python'
    
    In [25]: a=''  #          
    In [26]: a
    Out[26]: ''
    
    In [27]: del a  # del    a  ,    a          ,          
    In [28]: a
    ---------------------------------------------------------------------------
    NameError                                 Traceback (most recent call last)
     in 
    ----> 1 a
    
    NameError: name 'a' is not defined
    

    文字列とアクションの割り当て
    シーケンスオペレータスライス
    文字列demoSring='abcd'を例に示した
    次の表、1行目:正のインデックス2行目:文字列内の各文字3行目:負のインデックス
    0
    1
    2
    3
    a
    b
    c
    d
    -4
    -3
    -2
    -1
  • ポジティブインデックスプレゼンテーション
  • In [29]: demoSring='abcd'
    In [30]: len(demoSring) #         
    Out[30]: 4
    
    
    In [31]: demoSring[0]
    Out[31]: 'a'
    In [32]: demoSring[1]
    Out[32]: 'b'
    In [33]: demoSring[0:2] #      ,   0   ,    2   
    Out[33]: 'ab'
    
  • 逆インデックス
  • In [34]: -len(demoSring)
    Out[34]: -4
    
    In [35]: demoSring[-1]
    Out[35]: 'd'
    
    In [36]: demoSring[-2]
    Out[36]: 'c'
    
    In [37]: demoSring[-4:-1]
    Out[37]: 'abc'
    

    スライス操作は、頭を含んで尾を含まないことを覚えておいてください.
    メンバーオペレータ
    メンバーオペレータには、「in」、「not in」を使用して、1つの文字または1つのサブ列が別の文字列に表示されているかどうかを判断し、戻りTrueが表示されている場合はFalseを返さない場合は
    In [38]: 'bc' in 'abcd'
    Out[38]: True
    In [40]: 'e' in 'abcd'
    Out[40]: False
    
    In [41]: 'e' not in 'abcd'
    Out[41]: True
    

    コネクタ
    接続子'+'は、複数の文字列をつなぎ合わせて新しい文字列を取得できます.
    In [42]: a = 'abcd'+'hello'
    In [43]: a
    Out[43]: 'abcdhello'
    

    フォーマットオペレータ
    フォーマットオペレータ%
    In [44]: 'Hello, %s' % 'world'
    Out[44]: 'Hello, world'
    

    一般的なプレースホルダ
    プレースホルダ
    意味
    %d
    整数
    %s
    文字列
    %f
    浮動小数点数
    %x
    16進数
    何を使うべきか分からない場合は、%sを使用します.データ型は文字列に変換されます.
    文字列のプロパティ
    特殊文字列
    1つのスラッシュに1文字を加えると特殊文字を表すことができます.通常、コンソールでよく使われる特殊文字列には「改行」、「t」はtabキーを表し、残りには「0」、「a」、「b」、「v」、「f」、「rなどの特殊文字が印刷されません.公式ドキュメントを表示できます.
    三重引用符
    単一引用符と二重引用符、pythonには三重引用符があり、三重引用符では、改行、タブ、その他の特殊な文字を含む文字列が複数行にまたがることができます.三重引用符は、クラス名または関数にコメントを追加するのによく使用されます.
    文字列の不変性
    文字列は変更できませんが、文字列は同じメモリアドレスでは変更できません.文字列を変更したり変更したりするたびに、新しいメモリスペースが開きます.値は同じですが、メモリ内のアドレスは異なります.
    小結
    文字列はどの言語においても極めて重要なデータ構造であり、pythonにおけるいくつかの重要な特性をしっかり覚え、正確に覚えなければならない.UTF-8コードのみを使用することを忘れないでください.