Pythonの基本入門チュート...login
Pythonの基本入門チュートリアル
著者:php.cn  更新時間:2022-04-18 16:14:50

Python 文字列


String は、Python で最も一般的に使用されるデータ型です。引用符 (' または ") を使用して文字列を作成できます。

文字列の作成は、変数に値を代入するのと同じくらい簡単です。例:

var1 = 'Hello World!'
var2 = "Python php"

Python は文字列内の値にアクセスします

Python は単一の文字型もサポートしません。

Python は次のように文字列をインターセプトするために角括弧を使用できます。 :

#!/usr/bin/python

var1 = 'Hello World!'
var2 = "Python php"

print "var1[0]: ", var1[0]
print "var2[1 : 5]: ", var2[1:5]

上記例の実行結果:

var1[0]: H
var2[1:5]: ytho

Pythonの文字列更新

あなた次の例のように、既存の文字列を変更して別の変数に割り当てることができます:

#!/usr/bin/python
# -*-coding: UTF-8 -*-

var1 = 'Hello World ! '

print "Update String :- ", var1[:6] + 'php!'

上記例の実行結果

Update String :- Hello php!

Pythonエスケープ文字

とき特殊文字は文字内で使用する必要があり、次の表に示すように、Python はバックスラッシュ () を使用して文字をエスケープします。

行継続文字'"abe

Python 文字列演算子

次の表では、インスタンス変数 a の値は文字列「Hello」、変数 b の値は「Python」です。

+
\バックスラッシュ記号
一重引用符
二重引用符
リング
Backspace (バックスペース)
逃げる
文字列連結 繰り返し出力文字列インデックスを通じて文字列内の文字を取得e[ : ]ellinH が a inM が ar/Rprint r'n'
a + b 出力結果: HelloPython*
a*2 出力結果: HelloHello[]
a [1] 出力結果
文字列の一部をインターセプトa[1:4] 出力結果
メンバー演算子 - if string文字列に指定された文字 出力に含まれている場合に True を返します。 結果 1
にありません。 メンバー演算子 - 文字列に指定された文字 に含まれていない場合に True を返します。 result 1
元の文字列 - 元の文字列: すべての文字列は、特殊文字や印刷不可能な文字をエスケープせずに文字通り使用されます。 生の文字列の構文は通常の文字列とほぼ同じですが、文字列の最初の引用符の前に文字「r」(大文字でも小文字でも構いません)が付いている点が異なります。 はnを出力し、print R'n'はnを出力します
%フォーマット文字列次の章を参照してください

例は次のとおりです:

#!/usr/bin/python
# -*-coding: UTF-8 -*-

a = "Hello"
b = "Python"

print "a + b 出力結果:", a + b
print "a * 2 出力結果:", a * 2
print "a[1] 出力結果:", a[1]
print "a[1:4] 出力結果:", a[1:4]

if( "H" in a) :
print "H は変数 a にあります"
else :
print "H は変数 a にありません"

if( "M" not in a) :
Print "M is not in variable a"
else :
print "M is in variable a"

print r'n'
print R'n'

上記プログラムの実行結果は、 :

a + b 出力結果: HelloPython
a * 2 出力結果: HelloHello
a[1] 出力結果: e
a[1:4] 出力結果: ell
H は変数 a にあります
M はありません変数 a
n
n

Python 文字列の書式設定

Python は、書式設定された文字列の出力をサポートしています。これには非常に複雑な式が含まれる場合がありますが、最も基本的な使用法は、文字列フォーマット文字 %s を使用して文字列に値を挿入することです。

Python では、文字列の書式設定には C の sprintf 関数と同じ構文が使用されます。

次の例:

#!/usr/bin/python

print "My name is %s andweight is %d kg!" % ('Zara', 21)

上の例:

私の名前は Zara で、体重は 21 kg です!

Python 文字列書式設定記号:


文字 説明
%c フォーマット文字とその ASCII コード
%s フォーマット文字列
% d 整数の形式
%u 符号なし整数の形式
%o 符号なし8進数の形式
%x 符号なし 16 進数の形式
%X 符号なし 16 進数 (大文字) をフォーマットします。
%f 浮動小数点数をフォーマットします。小数点以下の精度を指定できます。
scientific表記法のフローティングポイント数値 %f と %e の略語
%G %f と %E の略語
%p 変数のアドレスを 16 進数でフォーマットします

フォーマット演算子補助コマンド:

シンボル 関数
*幅または小数点精度を定義します
-は左揃えに使用されます
+正の数値の前にプラス記号( + )を表示します
< ;sp>正の数値の前にスペースを表示します
#8 進数の前にゼロ (「0」) を表示し、16 進数の前に「0x」または「0X」を表示します (「x」または「 X')
0 表示される数字はデフォルトのスペースの代わりに「0」で埋められます
% '%%' は単一の '%' を出力します
(var)マップ変数 (辞書パラメーター)
m.n.m は表示の最小合計幅、n は小数点以下の桁数 (使用可能な場合)

Python 三重引用符

Python の三重引用符は複雑な文字列をコピーできます:

Python 三重引用符を使用すると、文字列を複数行にまたがることができ、文字列には改行、タブ、その他の文字特殊文字を含めることができます。

三重引用符の構文は、連続する一重引用符または二重引用符のペアです (通常はペアで使用されます)。

>>> こんにちは = '''こんにちは
'''
>>> こんにちは # repr()
'hinthere'
>>> こんにちは # str()こんにちは
そこ
三重引用符を使用すると、プログラマーを引用符と特殊な文字列の泥沼から解放し、いわゆる WYSIWYG (What You See Is What You Get) 形式の小さな文字列を常に保持できます。

典型的な使用例は、HTML または SQL の一部が必要な場合で、文字列の組み合わせを使用する場合、特殊な文字列のエスケープは非常に面倒になります。

errHTML = ''
<HTML><HEAD><TITLE>
Friends CGI Demo</TITLE></HEAD>
<BODY><H3>エラー</H3>
< ;B>%s</B><P>
<FORM><INPUT TYPE=button VALUE=Back
ONCLICK="window.history.back()"></FORM>
< / BODY></HTML>
'''
cursor.execute('''
CREATE TABLE users (
login VARCHAR(8),
uid INTEGER,
prid INTEGER)
''')

Unicode 文字列

Python で Unicode 文字列を定義するのは、通常の文字列を定義するのと同じくらい簡単です:

>>> u'Hello World !'
u'Hello World !'
引用符の前に小文字を付ける「u」は、こ​​こで作成されるのが Unicode 文字列であることを意味します。特殊文字を含める場合は、Python の Unicode-Escape エンコーディングを使用できます。次の例に示すように:

>>> u'Hellou0020World !'
u'Hello World !'

置き換えられた u0020 識別子は、エンコード値 0x0020 の Unicode 文字 (スペース文字) を指定された位置に挿入することを意味します。


Python の組み込み文字列関数

String メソッドは、Python1.6 から 2.0 まで徐々に追加されました。これらは Jython にも追加されました。

これらのメソッドは、文字列モジュールのほとんどのメソッドを実装しています。次の表に、組み込み文字列で現在サポートされているメソッドを示します。すべてのメソッドには Unicode のサポートが含まれており、一部のメソッドは Unicode 専用です。

return文字列内の str の出現数。beg または end を指定すると、指定された範囲内の str の出現数が返されます。 エラーが発生した場合は、ValueError 例外が発生します。エラーが「ignore」または「replace」を指定しない限り、デフォルトで報告されますstring.encode(encoding='UTF-8',errors= 'strict')string.endswith(obj , beg=0, end=len(string)) 文字列がobjで終わるかどうかを確認します。begまたはendが指定されている場合は、指定された範囲がobjで終わるかどうかを確認します。そうであればTrueを返し、それ以外の場合はFalseを返します。string.expandtabs(tabsize) =8)string.find(str, beg=0, end=len(string))string.index(str, beg=0, end=len(string))を返しますstring.isalpha()string.isdecimal() find() 関数ですが、右から開始します。 は、index() に似ていますが、右から開始します。 .元の文字列を右揃えにし、length width までスペースを埋め込んだ新しい文字列を返します partition() 関数に似ていますが、右から始まります。
メソッド説明

string.capitalize()

文字列の最初の文字を大文字にします

string.center(width)

で指定されたエンコード形式で文字列をエンコードしますエラーが発生した場合、エラーで 'ignore' または 'replace' が指定されていない限り、デフォルトで ValueError 例外が報告されます

文字列内のタブ記号をスペースに変換します。タブ記号のデフォルトのスペース数は 8 です。

stringにstrが含まれるかどうかを確認する begとendを範囲指定した場合、それが含まれるかどうかを確認します。指定された範囲内で、開始インデックス値を返す場合は、-1

find() メソッドと同じですが、str が string にない場合に例外が報告される点が異なります。

string.isalnum()

string に少なくとも 1 つの文字があり、すべての文字が文字である場合または数字の場合は True を返し、それ以外の場合は False を返します

string に少なくとも 1 つの文字があり、すべての文字が文字の場合は True を返し、

それ以外の場合は False を返します

文字列に 10 進数のみが含まれる場合は True を返し、それ以外の場合は False を返します。

文字列に数字のみが含まれている場合は True を返し、それ以外の場合は False を返します。

string.is lower()

文字列に少なくとも 1 つの大文字と小文字を区別する文字が含まれており、そのすべて (大文字と小文字を区別する) 文字が含まれている場合は、すべて小文字の場合は True を返し、それ以外の場合は False を返します

string.isnumeric()

文字列に数字のみが含まれている場合は True を返し、それ以外の場合は False を返します

string .isspace()

文字列にスペースのみが含まれている場合は True を返し、それ以外の場合は False を返します。

string.istitle()

文字列にタイトルが付いている場合 (title() を参照)は True を返し、それ以外の場合は False を返します

string.isupper()

文字列に少なくとも 1 つの大文字と小文字を区別する文字が含まれており、これらの (大文字と小文字を区別する) 文字がすべて大文字の場合は True を返し、それ以外の場合は False を返します

string.join(seq)

stringを区切り文字として使用し、seq内のすべての要素(文字列表現)を新しい文字列に結合します

string.ljust(width)

を返します元の文字列を左揃えにして長さの幅までスペースを埋め込んだ新しい文字列

string. lower()

文字列を変換します 内のすべての大文字は小文字になります。

string.lstrip( )

文字列の左側のスペースを切り詰めます

string.maketrans(intab, outtab])

maketrans() このメソッドは、文字マッピングの変換テーブルを作成するために使用されます。 2 つのパラメータを受け入れる最も単純な呼び出しメソッドです。最初のパラメータは変換する必要がある文字を表す文字列で、2 番目のパラメータも変換のターゲットを表す文字列です。

max(str)

文字列str内の最大の文字を返します。

min(str)

文字列str内の最小の文字を返します。

string.partition(str)

は、strが出現する最初の位置から開始して、文字列を3つの要素に分割します。タプル (string_pre_str, str, string_post_str)、string に str が含まれていない場合、string_pre_str == string.

string.replace(str1, str2, num=string.count(str1))

string の str1 を str2 に置き換えます。 num が指定されている場合、置換は num 回を超えません。

string.rindex(str, beg=0,end=len(string))

string.rjust(width)

string.rpartition(str)

string.rstrip()

文字列 string の末尾のスペースを削除します。

string.split(str="", num=string.count(str))

区切り文字として str を使用します。 if 文字列をスライスします num が指定された値の場合、num 個の部分文字列のみが分割されます

string.splitlines(num=string.count('n'))

行で区切られ、リストを返します各行を要素として含み、num が指定されている場合、num 行だけがスライスされます。

string.startswith(obj, beg=0,end=len(string))

文字列がobj で始まる場合、そうであれば True を返し、それ以外の場合は False を返します。 begとendに値を指定した場合は指定範囲内をチェック

string.strip([obj])

stringに対してlstrip()とrstrip()を実行

string .swapcase()

文字列の大文字と小文字を反転します

string.title()

「タイトル付き」文字列を返します。つまり、すべての単語が大文字で始まり、残りの文字が返されます。すべて小文字です (istitle() を参照)

string.translate(str, del="")

str で指定されたテーブルに従って string の文字を変換します (256 文字を含む)。

フィルターで除外する文字をdelパラメータに入れます

string.upper()

string内の小文字を大文字に変換します

string.zfill(width)

width の長さの文字列を返します。元の文字列は右揃えで前に 0 が埋め込まれます。このメソッドは Unicode オブジェクトに対してのみ存在します。