day_002 Pythonでの文字列操作
8437 ワード
一、文字列
1.文字列の基本知識
要点:単一/二重引用符で囲まれた文字セットは、「56''sdff'#$#dffdf''快適点'' 」などの文字列です.引用符の中の単独の記号、数字、アルファベットなどは文字 と呼ばれます.エスケープ文字:特殊な機能や特殊な意味を持つ文字(固定された文字の前にを付けることによって)を表すために使用できます.例えば、'-----\-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
例:
結果: エスケープを阻止文字列の前にr/Rを加えることでエスケープ を阻止することができる.
例:
結果:
2.Pythonの文字列の文字はUnicode符号化
要点: Unicode符号化:16ビットを使用して1文字を符号化します.符号化の目的は、文字をコンピュータに格納できるようにすることです. UnicodeコードにはASSCIIコードが含まれています.世界のすべての言語と記号を表すことができます.
例:1文字のUnicodeコードord(文字)を取得し、結果は10進数、hex()で16進数に変換できます.
結果:
Unicodeコードを文字例に変換することもできます.Unicodeコードを文字chr(符号化値)に変換します.注意:chr()のパラメータタイプはintです.10進数と16進数でいいですがstrタイプの16進数は間違っています
結果:
3.文字列比較サイズ
要点:文字列はサイズを比較し、最初の文字から1回後に各文字のサイズを比較し、文字が異なるまで比較します. 文字サイズを比較すると、実質的に彼らの額符号化のサイズに比例します.
例:
結果:
二、文字列を取得する文字
Pythonの文字列は実質的に秩序ある文字列である.
1.文字列の長さを取得する:(長さ---文字列内の文字の個数)
要点: len()はシーケンス長を取得する内蔵関数 である.
例:
結果:
2.文字列の単一文字を下付き文字で取得
要点:文字列の各文字は、下付き(インデックス)に対応する.指定した文字は、「abc」、「a」の下付き文字が0または-3、「b」の下付き文字が1または-2、「c」の下付き文字が2または-1など、インデックス値で取得できます. 下付き範囲:0~文字列長-1 インデックスは負の数で、右から左、右の1番目のインデックスは負の数でstring[-1]、2番目のインデックスはstring[-2] で表すこともできます.文字を取得する場合、インデックス値はインデックスの範囲を超えてはいけません.そうしないと、IndexErrorエラー が報告されます.
例:
結果:
3.文字列の一部を取得 string[開始下付き:終了下付き:ステップ]":ステップ"デフォルトを「:1」と書かない string[開始の下付き文字:終了の下付き文字]---開始の下付き文字から終了の下付き文字(終了の下付き文字を除く開始の下付き文字を含む) を取得する.
例:(1)開始と終了の両方に値がある場合は、開始の下付き文字が終了の下付き文字の前(正の数に進む)にあることを要求します.
結果:
(2)下付き文字の省略開始:文字列の最初の文字から下付き文字の終了前(下付き文字の終了を除く)
結果:
(3)終了下付き文字省略:開始下付き文字から文字終了まで
結果:
(4)両方とも省略する:文字列全体の内容を取得する
結果:
(5)ステップの設定
結果:
(6)ステップマイナス
終了:
(7)逆順
結果:
三、文字列演算子
1.+:文字列の結合
要点:では、文字列1+文字列2 などの「+」の両方のタイプが同じであることが要求されています.
例:
結果:
2.*:文字列を繰り返す
要点:形式:文字列*正数 例:
結果:
3.in:
要点:フォーマット:文字列1 in文字列2の役割:文字列1が文字列3にあるかどうかを判断する---はTrueであり、いないのはFalse である.
例:
結果:
4.not in:
要点:フォーマット:文字列1 not in文字列2の役割:文字列1が文字列3にないかどうかを判断する---いないのはTrueであり、False である.
例:
結果:
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桁小数) を制限
例:
結果:
後ろに%が付いていない場合は、この文字列は普通の文字列です.
結果:
四、文字列関連操作方法
文字列関連メソッド汎用フォーマット:文字列.方法()
1.capitalize()
役割:文字の頭文字を大文字にし、頭文字の後の新しい文字列を返し、元の文字列に操作しません(元の文字列を変更しません).例:
結果:
2.center(width, fillchar)
役割:指定した幅widthが中央にある文字列を返します.fillcharは入力された文字で、デフォルトはスペースです.元の文字列を変更しない(元の文字列を変更しない).
例:
結果:
3.強転タイプ
役割:変数のタイプをターゲットデータ型(int、strなど)に変換する
例:
結果:
4.rjust(width, fillchar)
役割:指定した幅widthの右揃えの文字列を返します.fillcharは塗りつぶした文字で、デフォルトはスペースです.元の文字列を変更しない(元の文字列を変更しない).
例:
結果:
5.ljust(width, fillchar)
作用:rjust(width,fillchar)に対して左揃え
例:
結果:
6.isdigit()とisnumeric()
役割:isdigit()とisnumeric()は文字列が数字(intタイプ)の文字列であるか否かを判断するのに用いられるが、isdigit()はアラビア数字(例えば:1,2,3,4)しか判断できず、isnumeric()は漢字数字(大文字と小文字、例えば:一、伍佰)を判断できるが、英語数字(例えば:one,two)は判断できない
例:大文字の漢字数
結果:
小文字の漢字数
結果:
整数アラビア数字
結果:
浮動小数点数
結果:
7.join(seq)
役割:文字列2の各文字の後に文字列1を追加します.
例:
結果:
8.replace(old,new[,max])
役割:文字列のoldをnewで置き換え、[,max]を操作する回数とし、デフォルトではすべてを書き換えません.
例:
結果:
1.文字列の基本知識
要点:
例:
str1 = ' ,
。
,
。'
print(str1)
print(len(str1))
結果:
,
。
,
。
27
例:
print(r'\\')
結果:
\\
2.Pythonの文字列の文字はUnicode符号化
要点:
例: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.文字列比較サイズ
要点:
例:
print('abc' > 'b')
print('a' == 'a')
結果:
False
True
二、文字列を取得する文字
Pythonの文字列は実質的に秩序ある文字列である.
1.文字列の長さを取得する:(長さ---文字列内の文字の個数)
要点:
例:
length = len('i am Mark')
print(length)
結果:
9
2.文字列の単一文字を下付き文字で取得
要点:
例:
str1 = 'abcdefghijk'
a = str1[0]
print(a, type(a))
b = str1[1]
print(b, type(b))
結果:
a
b
3.文字列の一部を取得
例:(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.+:文字列の結合
要点:
例:
str1 = 'hello' + ' ' + 'Python'
print(str1)
結果:
hello Python
2.*:文字列を繰り返す
要点:
str2 = ' '*3
print(str2)
結果:
3.in:
要点:
例:
result1 = 'a' in 'abc'
print(result1)
結果:
True
4.not in:
要点:
例:
result2 = '123' not in 'abc'
print(result2)
結果:
True
5.フォーマット文字列
要点:
例:
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