python学習ノート3-文字列

3743 ワード

1.Pythonの文字列は、str[i]で文字列の各文字を返すシーケンスです.
iが0または正数の場合は、前から後ろのi+1番目の文字である.iが負数の場合は、最後から-i番目の文字です.
文字列全体を巡回するには、文字列の長さを計算してリサイクルする必要がなく、for文を簡単に使用できます.
for char in string:
     print char

2.string[m:n:s],sはステップ長が0ではなく,取り出したスライスはmを含みnを含まない.m 0の場合、文字列が下付きmから下付きn-1まで続く場合、s文字ごとに接合されたスライスをとる.m>nかつs<0の場合、下付きmから下付きn+1まで、−s文字毎に1つずつ接合されたスライスをとる.その他の場合は、長さが0の空の文字列です.s>0の場合、mのデフォルトは最初の文字から始まり、nのデフォルトは最後の文字までです.s<0の場合は逆である.sデフォルトステップ長はデフォルトで1です.
例えば、s="abcd"であれば、s[1]、s[1:2]、s[-3:-4,-1]はいずれも"b"である
文字列が返信されているかどうかを判断するのも簡単です
def is_palindrome(s):
    if s == s[::-1]:
        return True
    else:
        return False

3.文字列が作成されると、読み取り専用の状態になり、変更できません.修正したい場合は、スライスのコピーをしてからつなぎ合わせるしかありません.文字列自体の方法でもstring.upper()もフル大文字のコピーを再生成します.
4.文字列間の比較は、配列順序(asciiコードテーブルの順序、先頭文字から比較)に従い、前後に並ぶよりも前に並ぶ.
たとえば、abc/a/Abc/@/3/#
5.Pythonにはcharタイプの変数がなく、Cのように1文字と1つの整数を直接判断することはできません.例えば「a'>65」とは言えません.しかし、chr(n)とord(str)を使用してunicodeの文字と数字を変換することができます.chr(97)は'a',ord('a')は97であった. 
6.一般的な文字列メソッド:
(1)処理されたコピー:
  • string.Capitalize()#最初の文字がアルファベットの場合、最初の文字が大文字で残りが小文字のコピーを返し、最初の文字がアルファベットでない場合、アルファベットの文字はすべて小文字
  • になります.
  • string.title()は、アルファベット以外の文字で区切られたすべてのアルファベットの大文字と小文字のコピーを返します.たとえば、「8」cATS@hOME「.title()は戻ります」8Cats@Home"
  • string.upper()#は、すべてのアルファベットの大文字のコピー
  • を返します.
  • string.lower()は、すべてのアルファベット小文字のコピー
  • を返します.
  • string.replace(t,u,n)#は、前のn個のu文字をtに変換したコピーを返し、nデフォルトでは
  • に全変換する
  • string.strip(chars)#は、文字列の開始と終了がcharsに含まれる文字を削除した後のコピーを返します.最初のstringだけを取り除きたいなら.lstrip(chars)は、終わりを取り除くstring.rstrip(chars)、charsのデフォルトは空白文字
  • を削除します.
  • string.split(t,n)#は文字列をtからn回分割してリストに戻り、tは1文字でも文字列でもよいし、分割後tは削除され、nはデフォルトではすべてのtで分割され、tはデフォルトでは空白文字で
  • に分割される.
  • string.join(seq)#は、リストseqの各項目をstringで全体に接続する文字列
  • を返す
    (2)検索
  • string.count(t,start,end)#はstring[start:end]のtの数を返します.startとendは同時にデフォルトにするか、end
  • のみデフォルトにするか
  • string.find(t,start,end)#はstring[start:end]で見つかった最初のtがstringで始まる位置を返し、スライスで見つからない場合は-1を返します.string.rfind(t,start,end)はstring[start:end]の最後のtのstringにおける開始位置を返す.デフォルトは上
  • string.index(t,start,end)#作用とstring.find(t,start,end)はstringを含む同じである.rindex(t,start,end)は、見つからないと異常を返すという違いがあります.デフォルトは上
  • string.startswith(t,start,end)#string[start:end]がtで始まると真であり、そうでないと偽である.デフォルトは上
  • string.endswith(t,start,end)#string[start:end]がtで終わると真であり、そうでないと偽である.デフォルトは上
  • (3)判断
  • string.isalnum()#stringでアルファベットと数字がすべてであれば真、そうでなければ偽
  • string.isalpha()#stringでアルファベットだらけであれば真、そうでなければ偽
  • string.isupper()stringにアルファベットがあり、すべて大文字が真である場合、偽
  • である
  • string.islower()stringにはアルファベットがあり、すべて小文字が真である.そうしないと偽の
  • である.
  • string.isspace()#stringのすべての文字は空白文字で真であり、そうでなければ偽
  • である.
  • string.istitle()stringにはアルファベットがあり、非アルファベットで区切られたすべてのアルファベットは大文字で、残りは小文字で、真です.そうでなければ偽物です.例えば、「8」Cats@Home「真実」8Cats@home"偽
  • string.isdigit()stringではbyte数字またはUnicode数字またはUnicode文字列で表される各言語の数字のみが真であり、そうでなければ偽である.例えば、「10086」である.isdigit()と"N{bengali digit one}0086".isdigit()とb"10086".isdigitはすべて本当で、“two”.isdigit()と「3.14159」.isdigit()は偽
  • string.isdecimal()stringでは、Unicode数字またはUnicode文字列で表される各言語の数字だけが真であり、そうでなければ偽である.b"10086".isdecimal()に異常が発生します
  • string.isnumeric()#Unicode数字や文字列が表す各言語の数字のほか、漢字数字の文字列が真であると判断することもできます(他の言語では打てないので試してみることはできません).例えば、「一零八陸」である.isnumeric()は真
  • #最後の3つの数字を判断する関数で文字列が整数または浮動小数点数に変換できるかどうかを判断するのは不可能なようです.の
    (4)位置合わせ
  • string.zfill(n)#stringの長さがn未満の場合、返されるコピーは、n
  • に揃えるように、開始箇所で0を補う.
  • string.center(n,c)#stringの長さがn未満の場合、返されるコピーは中間に揃え、両側にcを補う.cは1文字のみ、cがデフォルトの場合は
  • string.ljust(n,c)#stringの長さがn未満の場合、返されるコピーは左に揃え、後にcを補う.c同上
  • string.rjust(n,c)#同上右揃え