day_002 Pythonでの文字列操作

8437 ワード

一、文字列
1.文字列の基本知識
要点:
  • 単一/二重引用符で囲まれた文字セットは、「56''sdff'#$#dffdf''快適点''
  • 」などの文字列です.
  • 引用符の中の単独の記号、数字、アルファベットなどは文字
  • と呼ばれます.
  • エスケープ文字:特殊な機能や特殊な意味を持つ文字(固定された文字の前にを付けることによって)を表すために使用できます.例えば、'-----\-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    例:
    str1 = '     ,


    。' print(str1) print(len(str1))

    結果:
         ,
         。
         ,
         。
    27
    
  • エスケープを阻止文字列の前にr/Rを加えることでエスケープ
  • を阻止することができる.
    例:
    print(r'\\')
    

    結果:
    \\
    

    2.Pythonの文字列の文字はUnicode符号化
    要点:
  • Unicode符号化:16ビットを使用して1文字を符号化します.符号化の目的は、文字をコンピュータに格納できるようにすることです.
  • UnicodeコードにはASSCIIコードが含まれています.世界のすべての言語と記号を表すことができます.

  • 例:1文字のUnicodeコードord(文字)を取得し、結果は10進数、hex()で16進数に変換できます.
    name = '   '
    list1 = []
    for word in name:
        print('    :', ord(word))
        print('     :', hex(ord(word)))
        list1.append(ord(word))
    
    print(list1)
    

    結果:
        : 25105
         : 0x6211
        : 30340
         : 0x7684
        : 22825
         : 0x5929
    [25105, 30340, 22825]
    

    Unicodeコードを文字例に変換することもできます.Unicodeコードを文字chr(符号化値)に変換します.注意:chr()のパラメータタイプはintです.10進数と16進数でいいですがstrタイプの16進数は間違っています
    for num in list1:
        print(num, type(num))
        print(chr(num))
    
    print(chr(0x4E00))
    

    結果:
    25105 
     
    30340 
     
    22825 
     
     
    

    3.文字列比較サイズ
    要点:
  • 文字列はサイズを比較し、最初の文字から1回後に各文字のサイズを比較し、文字が異なるまで比較します.
  • 文字サイズを比較すると、実質的に彼らの額符号化のサイズに比例します.

  • 例:
    print('abc' > 'b')
    print('a' == 'a')
    

    結果:
    False
    True
    

    二、文字列を取得する文字
    Pythonの文字列は実質的に秩序ある文字列である.
    1.文字列の長さを取得する:(長さ---文字列内の文字の個数)
    要点:
  • len()はシーケンス長を取得する内蔵関数
  • である.
    例:
    length = len('i am Mark')
    print(length)
    

    結果:
    9
    

    2.文字列の単一文字を下付き文字で取得
    要点:
  • 文字列の各文字は、下付き(インデックス)に対応する.指定した文字は、「abc」、「a」の下付き文字が0または-3、「b」の下付き文字が1または-2、「c」の下付き文字が2または-1など、インデックス値で取得できます.
  • 下付き範囲:0~文字列長-1
  • インデックスは負の数で、右から左、右の1番目のインデックスは負の数でstring[-1]、2番目のインデックスはstring[-2]
  • で表すこともできます.
  • 文字を取得する場合、インデックス値はインデックスの範囲を超えてはいけません.そうしないと、IndexErrorエラー
  • が報告されます.
    例:
    str1 = 'abcdefghijk'
    a = str1[0]
    print(a, type(a))
    b = str1[1]
    print(b, type(b))
    

    結果:
    a 
    b 
    

    3.文字列の一部を取得
  • string[開始下付き:終了下付き:ステップ]":ステップ"デフォルトを「:1」と書かない
  • string[開始の下付き文字:終了の下付き文字]---開始の下付き文字から終了の下付き文字(終了の下付き文字を除く開始の下付き文字を含む)
  • を取得する.
    例:(1)開始と終了の両方に値がある場合は、開始の下付き文字が終了の下付き文字の前(正の数に進む)にあることを要求します.
    #  
    str3 = 'hello Python'
    python = str3[6:12]
    print(python)
    
    #  
    python = str3[-6:12]
    print(python)
    

    結果:
    Python
    Python
    

    (2)下付き文字の省略開始:文字列の最初の文字から下付き文字の終了前(下付き文字の終了を除く)
    python = str3[:4]
    print(python)
    

    結果:
    hell
    

    (3)終了下付き文字省略:開始下付き文字から文字終了まで
    python = str3[4:]
    print(python)
    

    結果:
    o Python
    

    (4)両方とも省略する:文字列全体の内容を取得する
    python = str3[:]
    print(python)
    

    結果:
    hello Python
    

    (5)ステップの設定
    python = str3[::2]
    print(python)
    

    結果:
    hloPto
    

    (6)ステップマイナス
    print(str3[3:1:-1])
    

    終了:
    ll
    

    (7)逆順
    print(str3[::-1])
    

    結果:
    nohtyP olleh
    

    三、文字列演算子
    1.+:文字列の結合
    要点:
  • では、文字列1+文字列2
  • などの「+」の両方のタイプが同じであることが要求されています.
    例:
    str1 = 'hello' + ' ' + 'Python'
    print(str1)
    

    結果:
    hello Python
    

    2.*:文字列を繰り返す
    要点:
  • 形式:文字列*正数
  • 例:
    str2 = ' '*3
    print(str2)
    

    結果:
       
    

    3.in:
    要点:
  • フォーマット:文字列1 in文字列2の役割:文字列1が文字列3にあるかどうかを判断する---はTrueであり、いないのはFalse
  • である.
    例:
    result1 = 'a' in 'abc'
    print(result1)
    

    結果:
    True
    

    4.not in:
    要点:
  • フォーマット:文字列1 not in文字列2の役割:文字列1が文字列3にないかどうかを判断する---いないのはTrueであり、False
  • である.
    例:
    result2 = '123' not in 'abc'
    print(result2)
    

    結果:
    True
    

    5.フォーマット文字列
    要点:
  • 形式:'文字列1プレースホルダ1文字列2プレースホルダ2'%(値1、値2)
  • 常用フォーマット文字列:%s---文字列プレースホルダ(フォーマット)%d---整数プレースホルダ(フォーマット)%f---浮動小数点数プレースホルダ(フォーマット)%c---文字プレースホルダ(Pythonでは長さ1の文字列)(フォーマット)%u-----符号なし整形%x-----符号なし十六進数(小文字)%X-----符号なし十六進数(大文字)%e-----浮動小数点数%E-----同%e%g-----%fと%eの略記%G-----%fと%Eの略記%Eを科学カウント法でフォーマット.nf------n値を使用して小数点以下額面小数の桁数(デフォルト6桁小数)
  • を制限
    例:
    str3 = 'abc%sABC%d'%('>', 234)
    print(str3)
    
    str4 = '%s-%d-%f-%c-%c'%('str', 12, 12.5, 'c',99)
    print(str4)
    
    str5 = '  :%.2f '%(100)
    print(str5)
    

    結果:
    abc>ABC234
    str-12-12.500000-c-c
      :100.00 
    

    後ろに%が付いていない場合は、この文字列は普通の文字列です.
    str6 = '  :%.2f '
    print(str6)
    

    結果:
      :%.2f 
    

    四、文字列関連操作方法
    文字列関連メソッド汎用フォーマット:文字列.方法()
    1.capitalize()
    役割:文字の頭文字を大文字にし、頭文字の後の新しい文字列を返し、元の文字列に操作しません(元の文字列を変更しません).例:
    str1 = 'abc'
    str2 = str1.capitalize()
    print(str1)
    print(str1.capitalize())
    print(str2)
    

    結果:
    abc
    Abc
    Abc
    

    2.center(width, fillchar)
    役割:指定した幅widthが中央にある文字列を返します.fillcharは入力された文字で、デフォルトはスペースです.元の文字列を変更しない(元の文字列を変更しない).
    例:
    str3 = str1.center(11, '-')
    print(str3)
    print(len(str3))
    

    結果:
    ----abc----
    11
    

    3.強転タイプ
    役割:変数のタイプをターゲットデータ型(int、strなど)に変換する
    例:
    str4 = 123
    str5 = str(str4)
    print(str4, type(str4))
    print(str5, type(str5))
    

    結果:
    123 
    123 
    

    4.rjust(width, fillchar)
    役割:指定した幅widthの右揃えの文字列を返します.fillcharは塗りつぶした文字で、デフォルトはスペースです.元の文字列を変更しない(元の文字列を変更しない).
    例:
    number = 9
    num = str(number).rjust(3,'0')
    stu_id = '1805' + num
    print(number)
    print(num)
    print(stu_id)
    

    結果:
    9
    009
    1805009
    

    5.ljust(width, fillchar)
    作用:rjust(width,fillchar)に対して左揃え
    例:
    u_id = '123.1'
    u_id_l = u_id.ljust(5,'x')
    print(u_id)
    print(u_id_l)
    

    結果:
    231
    231xx
    

    6.isdigit()とisnumeric()
    役割:isdigit()とisnumeric()は文字列が数字(intタイプ)の文字列であるか否かを判断するのに用いられるが、isdigit()はアラビア数字(例えば:1,2,3,4)しか判断できず、isnumeric()は漢字数字(大文字と小文字、例えば:一、伍佰)を判断できるが、英語数字(例えば:one,two)は判断できない
    例:大文字の漢字数
    u_id = '  '
    print(u_id.isdigit())
    print(u_id.isnumeric())
    

    結果:
    False
    True
    

    小文字の漢字数
    u_id = '   '
    print(u_id.isdigit())
    print(u_id.isnumeric())
    

    結果:
    False
    True
    

    整数アラビア数字
    u_id = '120'
    print(u_id.isdigit())
    print(u_id.isnumeric())
    

    結果:
    True
    True
    

    浮動小数点数
    u_id = '120.012'
    print(u_id.isdigit())
    print(u_id.isnumeric())
    

    結果:
    False
    False
    

    7.join(seq)
    役割:文字列2の各文字の後に文字列1を追加します.
    例:
    strs = 'abc'
    strs2 = strs.join(u_id)
    print(strs2)
    

    結果:
    1abc2abc0abc.abc0abc1abc2
    

    8.replace(old,new[,max])
    役割:文字列のoldをnewで置き換え、[,max]を操作する回数とし、デフォルトではすべてを書き換えません.
    例:
    string1 = '  jkj jkj jkj  '
    print(string1.replace(' ', ''))
    

    結果:
    jkjjkjjkj