5.3 Python文字列の詳細な検討

10587 ワード

Pythonの文字列は可変タイプです.つまり、文字列の要素を変更するには、新しい文字列を作成する必要があります.
文字列は独立した文字で構成され、シーケンスでもあり、前節で述べたシーケンスの一般的な操作方法は文字列にも適用されます.
例:
スライス操作によってサブ列に順次アクセスする.
len()によって文字列の長さなどを求める.
inオペレータまたはnot inオペレータにより、文字列に文字が存在するかどうかを判断します.
Pythonには文字というタイプはなく、長さ1の文字列でこの概念を表しています.もちろん、これもサブストリングです.
アクセス文字列の例:

    
    
    
    
  1. aString = 'Hello World!'
  2. print(aString[0])
  3. print(aString[1:5])
  4. print(aString[6:])

出力:
H
ello
World!
文字列の変更方法
変数に値を割り当てる(または値を再割り当てる)ことで、既存の文字列を「更新」することができます.新しい値は、元の値とあまり差がないか、元の列とはまったく異なる可能性があります.例:

    
    
    
    
  1. aString = 'Hello World!'
  2. aString = aString[:6] + 'Python!'
  3. print(aString)
  4. aString = 'different string altogether'
  5. print(aString)

出力:
Hello Python!
different string altogether
文字と文字列の削除方法
もう一度繰り返すと、文字列は可変ではないので、1つの文字列の中の文字だけを削除することはできません.空の文字列を空にするか、不要な部分を取り除いた文字列を組み合わせて新しい列を形成することができます.
「Hello World!」から小文字の「l」を削除するには、次のようにします.

    
    
    
    
  1. aString = 'Hello World!'
  2. aString = aString[:3] + aString[4:]
  3. print(aString)

出力:
Helo World!
空の文字列を割り当てるか、del文を使用して文字列をクリアまたは削除します.ただし、ほとんどのアプリケーションでは、文字列を明示的に削除する必要はありません.この文字列を定義するコードは最終的に終了し、Pythonはこれらの文字列を自動的に解放します.
特殊文字と制御文字
他の高度な言語やスクリプト言語のように、1つの反斜線に1つの文字を加えると、特殊な文字を表すことができます.通常は印刷できない文字です.これは、上記で説明した特殊な文字です.これらの特殊な文字が元の文字列に含まれている場合、エスケープの機能を失います.
改行記号()、tab記号()など、通常使用される特殊文字に加えて、特殊文字:000またはxXXを直接ASCIIコード値で表示することもできます.それぞれの文字の8進数と16進数ASCIIコード値に対応し、以下は10進数、8進数と16進数の0、65、255です.

ASCII
ASCII
ASCII
じっしん
0
65
255
8進法
\000
101
177
16進数
x00
x41
xFF
特殊文字は、反スラッシュエスケープを含む普通の文字のようにPythonの文字列に格納できます.
C文字列とのもう一つの違いは、Pythonの文字列がNUL(000)を終端としているわけではなく、NULは他の反スラッシュエスケープ文字と変わらないことです.実際には、1つの文字列にNUL文字だけでなく、1回以上も文字列の任意の位置に現れることができます.次の表に、ほとんどのPythonバージョンでサポートされているエスケープ文字を示します.
前述したように、ハイフネーションを使用して1行の内容を次の行に持続させるように、特殊文字を明示的に8進または16進のASCIIコードを定義することで定義することができ、合法的なASCIIコードの値範囲は0から255(8進は0177、16進は0 XFF)である.
スラッシュの先頭にあるエスケープ文字
X
8進法
じっしん
16進数
文字
説明
\0
000
0
0x00
Nul
空の文字Nul
a
007
7
0x07
BEL
ベル文字
010
8
0x08
BS
チェックアウト
 
011
9
0x09
HT
よこほうこうタブ
 
012
10
0x0A
LF
折り返し
v
013
11
0x0B
VT
たてタブ
f
014
12
0x0D
FF
ページをかえる
 
015
13
0x0D
CR
リターンマッチ
e
033
27
0x1B
ESC
エスケープ
"
042
34
0x22
"
二重引用符
'
047
39
0x27
'
一重引用符
\
134
92
0x5C
 
ぎゃくスラッシュ
説明:
OOO:8進数値(範囲は000~0177);
xXX:xヘッドの16進数値(範囲は0 x 00~0 xFF);
:ハイフンで、ローと次のローの内容を接続します.
文字を制御する1つの役割は文字列の中のデリミタとして使用され、データベースやwebアプリケーションでは、多くの印刷可能な文字がデータ項目に使用されることが許可されています.つまり、印刷可能な文字はデリミタに適していません.
印刷可能な文字列、例えばコロン(:)でデリミタを作成すると、1つの文字がデータなのかデリミタなのかを見分けるのが難しくなり、データ・アイテムに使用できる文字の数を制限します.これはあなたが望んでいるものではありません.
1つの一般的な解決策は、デリミタとして、頻繁に使用されない印刷不可能なASCIIコード値を使用することであり、非常に完璧なデリミタであり、これにより、コロンのような印刷可能な文字がデータ項目に使用されるように解放される.