Pythonの文字列の例解説

8884 ワード

以前は可変ではないシーケンスを学んだことがあります。元グループといいます。今日は検討した文字列も可変ではないシーケンスです。
1.文字列の作成
一つの概念:文字列の常駐メカニズム
文字列の常駐メカニズムは何ですか?
同じ可変文字列だけを保持する方法で、異なる値は文字列の常駐池に保存され、pythonの常駐機構は同じ文字列に対してコピーだけを保持し、その後同じ文字列を作成する場合、新しい空間を開くことなく、新しい変数にその文字列の住所を再割り当てするという意味です。
1)文字列の定義

#   :     
#     :2021/4/4/0004 6s
a='itlaoxin'
b="itlaoxin"
c='''itlaoxiin'''
print(a,b,c,id(a),id(b),id(c))
出力結果
在这里插入图片描述
IDは全部同じです。
メモリの中に一つだけあります。
いくつかの注意事項:
相互作用モードでは、常駐機構の状況を実現することができる。
  • 文字列の長さが0または1の場合
  • が識別子に適合する文字列
  • 文字列は、実行時ではなくコンパイル時のみ存在します。
  • (-5,256)間の整数数字
  • 在这里插入图片描述 
    2.文字列の常用動作
    文字列の操作については、文字列を文字に関するリストとして見ることができます。
    1)クエリー操作
  •  index()検索文字列substrが最初に発生した位置は、検索されたサブストリングが存在しない場合、例外
  • をスローします。
  • ridex()検索文字列substrの最後の問題が存在しない場合、異常
  • を報告します。
  • find()サブストリングの第1回の出現の位置を検索して、戻り-1
  • が存在しません。
  • rfindサブストリップの最後の出現の位置を検索します。リターンが存在しない場合は-1
  • を返します。
    
    #   :     
    #     :2021/4/4/0004 6s
    s='hello,world'
    print(s.index('l')) #2
    print(s.find('l')) #2
    print(s.rfind('l')) #9
    print(s.rindex('l')) #9
    ここではfindやrfindを使うことを勧めます。異常を報告しないからです。
    2)文字列の常用動作
     a)大文字小文字変換
  • up()文字列のすべての文字を大文字に変換する(新しい文字列オブジェクトが生成される)
  • 
    #   :     
    #     :2021/4/4/0004 6s
    s="hello,ITlaoxin"
    a=s.upper()
    print(s)
    print(a)
  • lower()は文字列のすべての文字を小文字
  • に変換します。
    
    #   :     
    #     :2021/4/4/0004 6s
    s="hello,ITlaoxin"
    a=s.lower()
    print(s)
    print(a)
    出力結果:
    ハロー、ITlaoxin
    ハロー、itlaoxin
    swapcase()文字列のすべての大文字を小文字に変換し、すべての小文字を大文字に変換します。
    
    #   :     
    #     :2021/4/4/0004 6s
    s="hello,ITlaoxin"
    a=s.swapcase()
    print(a,id(a))
    print(s,id(s))
  • capitalize()は、最初の文字を大文字に変換し、残りの文字を小文字に変換する
  • tilele()は、各単語の最初の文字を大文字に変換し、各単語の残りの文字を小文字に変換する
  • 
    #   :     
    #     :2021/4/4/0004 6s
    s="hello,ITlaoxin"
    a=s.title()
    print(a)
    b)文字列の内容の配置操作
  • センター()を中央に
  • を配置します。
    
    #   :     
    #     :2021/4/4/0004 6s
    s="hello,ITlaoxin"
    print(s.center(20,'*'))
    在这里插入图片描述
    全部で14文字です。定義は20文字、左右各3文字です。
  • ljust()左揃え
  • 
    #   :     
    #     :2021/4/4/0004 6s
    s="hello,ITlaoxin"
    print(s.ljust(20,"*"))
    在这里插入图片描述
    *を書かないなら、デフォルトはスペースです。
  • rjust右揃え
  • 
    #   :     
    #     :2021/4/4/0004 6s
    s="hello,ITlaoxin"
    print(s.rjust(20,"*"))
    在这里插入图片描述
  • zfill右揃え
  • この方法は0で塗りつぶします。
    
    #   :     
    #     :2021/4/4/0004 6s
    s="hello,ITlaoxin"
    print(s.zfill(20))
    在这里插入图片描述
    c)文字列の分割
  •  スプリット()分割は、左から始まり、デフォルトの分割子はスペースで、分割後はリスト
  • です。
    
    #   :     
    #     :2021/4/4/0004 6s
    s="hello,ITlaoxin"
    lst=s.split()
    print(lst)
    出力結果:
    私たちはセパレータを指定できます。sep=|の形を使います。
    
    #   :     
    #     :2021/4/4/0004 6s
    s="hello|ITlaoxin|gaosh"
    lst=s.split(sep='|')
    print(lst)
    出力結果
    [hello,ITlaoxin]
    この場所をデフォルトのスペースで使うと、どのような結果になりますか?
    
    #   :     
    #     :2021/4/4/0004 6s
    s="hello|ITlaoxin|gaosh"
    lst=s.split()
    print(lst)
    結果
    ['hello𞓜ITlaoxin gaosh']
    この文字列にはスペースがないので、彼は元素のリストです。
    
    #   :     
    #     :2021/4/4/0004 6s
    s="hello|ITlaoxin|gaosh"
    lst=s.split(sep='|',maxsplit=1)
    print(lst)
    結果:
    ['hello'、'ITlaoxin gaosh']
    ここは一回だけ分割しました。
  • RSplit()は、文字の右から分割され、デフォルトの区切り文字はスペースであり、戻り値はリスト
  • である。
    maxsplitは最大分割回数を指定できます。
    これはsplitの使い方と同じです。ただrsplistは右から分割し、splistは左から分割します。
    
    #   :     
    #     :2021/4/4/0004 6s
    s="hello|ITlaoxin|gaosh"
    lst=s.split(sep='|',maxsplit=1)
    print(lst)
    
    lst1=s.rsplit(sep='|',maxsplit=1)
    print(lst1)
    結果は図の通りです。
    在这里插入图片描述
    d)文字列の判断方法
  • isidentifer()は、指定された文字列が正当な識別子
  • であるかどうかを判断する。
  • isspace()は、指定された文字列がすべて空白文字から構成されているかどうかを判断する(車に戻り、改行、水平方向のタブを指す)
  • issalpha()は文字列が全部アルファベットから構成されているかどうかを判断する
  • isdecimal()指定文字列が全部10進数構成かどうか判断する
  • isnumeric()判断で指定された文字列は全部数字から構成されています。
  • isalnumは、指定された文字列がすべてアルファベットと数字から構成されているかどうかを判断する
  • 
    #   :     
    #     :2021/4/4/0004 6s
    s='hello,world,python'
    print('1',s.isidentifier())
    print('2','hello'.isidentifier())
    print('3','\t'.isidentifier())
    print('4','abc'.isspace())
    print('5','abc'.isalpha())
    print('6','1'.isspace())
    print('7','123'.isnumeric())
    print('8','abc123'.isalnum())
    print('9','123abc!'.isalnum())
    e)文字列の他の操作文字列の代替replace()
    
    #   :     
    #     :2021/4/4/0004 6s
    s='hello,world,python'
    print(s.replace('python','itlaoxin'))
    s1='hello,python,python ,python'
    print(s1.replace('python','itlaoxin',2))
    結果:
    ハロー、world、itlaoxin
    hello,itlaoxin,itlaoxin,python
    文字列のマージジョン()
    
    #   :     
    #     :2021/4/4/0004 6s
    lst=['hello','java','python']
    print('|'.join(lst))
    結果:hello java𞓜python
    f)文字列の比較
    演算子を使用します。>=<=====!=
    
    #   :     
    #     :2021/4/4/0004 6s
    print('1','itlaoxin'>'laoxin')
    print('2','itlaoxin'>'itlaox')
    結果:
     False
     True
    最初の文字が違ったら、元の値ord()を比較します。
    
    #   :     
    #     :2021/4/4/0004 6s
    print('1','itlaoxin'>'laoxin')
    print('2','itlaoxin'>'itlaox')
    print('3','python'>'java')
    ##    
    print(ord('p'),ord('j'))
    在这里插入图片描述
    第三は112と106の比較に相当する。
    g)文字列のスライス
    文字列は可変ではありません。添削調査の操作がないので、スライスは新しいオブジェクトができます。
    
    #   :     
    #     :2021/4/4/0004 6s
    a='hello,world,itlaoxin'
    print(a[:5])
    出力結果:
    ハロー
    開始位置を書かないとindex 0から切ります。
    
    #   :     
    #     :2021/4/4/0004 6s
    a='hello,world,itlaoxin'
    print(a[6:]) #world,itlaoxin
    終了位置が指定されていません。最後まで切ります。
    ステップは指定ステップサイズです
    
    #   :     
    #     :2021/4/4/0004 6s
    a='hello,world,itlaoxin'
    print(a[1:8:2]) #el,o
    
    #   :     
    #     :2021/4/4/0004 6s
    a='hello,world,itlaoxin'
    print(a[1:8:2])
    print(a[::2]) #hlowrdiloi
    h)文字列の書式設定
    なぜ文字列をフォーマットしますか?
    文字列のつなぎ合わせは新しいIdを生み、スペースが浪費されます。この時は文字列のフォーマットを使う必要があります。
    文字列を書式設定する2つの方法:
    %をプレースホルダとします
    
    #   :     
    #     :2021/4/4/0004 6s
    #     %
    
    name='     '
    age=40
    print('  %s,  %d  '%(name,age))
    {}プレースホルダを作る
    format()メソッドに使うには
    
    #   :     
    #     :2021/4/4/0004 6s
    #     %
    
    name='     '
    age='40'
    print('  {0},  {1}  '.format(name,age))
    これ以外にも精読と幅を表すことができる。
    
    #   :     
    #     :2021/4/4/0004 6s
    print('%d'% 99)
    
    print('%10d'% 99)
    ここの10は幅です。
    精度:
    3桁の小数を保留する
    
    #   :     
    #     :2021/4/4/0004 6s
    print('%.3f' % 3.11516)
    混合使用:
    
    #   :     
    #     :2021/4/4/0004 6s
    print('%10.3f' % 3.11516)
    %10.3 f
    全体の幅は10で、小数点は3桁残します。
    締め括りをつける
    今までのデータタイプの基本的な操作は全部紹介しました。これらは全部基礎として計算されます。これから関数の章に入ります。
    ここでPythonの文字列の例について説明した文章を紹介します。Pythonに関する文字列の内容は以前の文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。