Pythonの基盤を統合する(2)

Pythonの基盤を統合する(2)
Python文字列

文字列はPythonの組み込みオブジェクトであり、テキストベースの情報を格納および表現するために使用されます。 「PythonIntroduction」の研究を通じて、文字列の次の特性を理解し、習得しました。

1、 文字列は定数です

数字と同じように、文字列も定数であり、その値はそれ自体であるため、文字通りの定数でもあります。言い換えれば、それが何であるか、それが何であるかを確認し、(その場で)変更することはできません。

例えば:

‘abc’

‘abc’

2、 文字列はシーケンスタイプの定数です

文字列の名前に「文字列」が含まれている理由は、一般的に複数の文字が含まれていることを理解できます。ほとんどの場合、複数の文字または複数の文字で構成されている可能性があります。ただし、これらの「複数の文字」が「文字列化」されると、独立した文字列定数を構成します。コンピュータのメモリでは、それは小さなストレージスペースのように見え、格納されている情報をその場で変更することはできません。

変更できないため、文字シーケンスが固定されているため、シーケンスタイプのデータにもなります。他のシーケンスデータと同様に、シーケンスのシーケンス(インデックスインデックス)、インデックス値(指定された位置の文字インデックス[n])、およびシーケンスの長さ(len)があります。

例えば:

‘abc’[0]

‘a’

len(‘abc’)

3

3、 文字列は、値を持つ定数として変数に割り当てることができます

文字列は定数であるため、変数に割り当てることができ、変数にその値があります。文字列が変数に割り当てられると、コンピューターのメモリ内で、参照が実際に変数に追加され、この参照はメモリ空間内の文字列のストレージ領域を指します。

例えば:

x = ‘abc’

x

‘abc’

大丈夫、

文字列に関するこれらの常識を確認した後、

今日は文字列の操作に焦点を当てます。

Pythonは、多数の組み込み関数(メソッド)を提供します。

必要に応じて文字列を処理する必要がある場合に便利です。

一手で簡単にできます。

これは、Pythonプログラミングの実用的なアプリケーションでもあります。

精通し、習得する必要がある多くの基本的な知識とスキルに遭遇します。

1、 文字列サイズ操作

(1)ケース変換

str.lower()#str文字列の小文字の形式を返します。

str.upper()#str文字列の大文字の形式を返します。

PS:この新しく生成された文字列は、元のメモリアドレスへの参照を追加しませんが、メモリセグメントを再生成することに注意してください。

例えば:

' aBcDeF'.lower()

' abcdef'

' aBcDeF'.upper()

' ABCDEF'

(2)こぶ変換

**str.title()#**すべての単語の最初の文字が大文字で他の文字が小文字の新しい文字列を返します

str.capitalize()#最初の文字を大文字にし、他の文字をすべて小文字にして新しい文字列を返します

例えば:

print('ab XY'.title())

Ab Xy

print('abc DE'.capitalize())

Abc de

(3)ケースの逆転

str.swapcase()#すべての文字列は大文字と小文字が変換されます(大文字->小文字、小文字->大文字)

例えば:

print('abc XYZ'.swapcase())

ABC xyz

2、 文字列判定操作

(1)文字列が数字、文字、文字、または数字のいずれであるかを判別します

str.isnumeric()#文字列が数値(小数点なし)であるかどうかを判別します

str.isalpha()#文字列が文字かどうかを判断します

str.isalnum()#文字列が文字と数字の混合であるかどうかを判別します(他の文字を除く)

例えば:

>>> print('34'.isnumeric())

True

print('abc'.isalpha())

True

print('a34'.isalnum())

True

(2)文字列または最初の文字が大文字か小文字かを判別します

str.islower()#文字列は大文字ですか?

str.isupper()#文字列は小文字ですか?

str.istitle()#文字列の各単語の最初の文字は大文字で、他の文字は小文字ですか?

PS:文字列strには、少なくとも1つの文字列文字(純粋な数字ではないなど)が含まれている必要があります。含まれていない場合、Falseが返されます。

例えば:

print('a34'.islower())

True

print('AB'.isupper())

True

print('Aa'.isupper())

False

print('Aa Bc'.istitle())

True

print('Aa_Bc'.istitle())

True

print('Aa bc'.istitle())

False

print('Aa_bc'.istitle())

False

print('Aa BC'.istitle())

False

(3)文字列が空で、印刷可能であり、識別子定義規則に準拠しているかどうかを判断します

str.isspace()#文字列が空白かどうか(スペース、タブ、新行など)

str.isprintable()#文字列が印刷可能かどうか

str.isidentifier()#文字列が識別子定義ルールを満たしているかどうか

例えば:

(1)空白かどうかを確認します。空白と見なされる文字はありません。

print(' '.isspace())

True

print(' \t'.isspace())

True

print('\n'.isspace())

True

print(''.isspace())

False

print('abc'.isspace())

False

(2)それが印刷可能な文字であるかどうかを判別します。

print('\n'.isprintable())

False

print('\t'.isprintable())

False

print('acd'.isprintable())

True

print(' '.isprintable())

True

print(''.isprintable())

True

(3)識別子定義ルールが満たされているかどうかを判断します。文字または下線でのみ開始でき、数字、文字、下線以外の文字を含めることはできません。

print('abc'.isidentifier())

True

print('2abc'.isidentifier())

False

print('abc2'.isidentifier())

True

print('_abc2'.isidentifier())

True

print('_abc_2'.isidentifier())

True

print('_Abc_2'.isidentifier())

True

print('Abc_2'.isidentifier())

True

3、 充填操作

(1)ストリングは(両側に)中央に配置され、塗りつぶされます

str.center(width[, fillchar])

文字列は中央に配置され、文字列全体の長さが幅で指定されたサイズに達するように、左側と右側が塗りつぶし文字で埋められます。

fillcharのデフォルトはスペースです。

幅が文字列の長さよりも小さい場合、それを埋めることはできず、文字列自体が直接返され、新しい文字列オブジェクトは作成されません。

例:文字列を下線で塗りつぶして中央に配置します

print('abc'.center(5,'_'))

_ ab_

print('abc'.center(6,'_'))

__ abc_

(2)文字列は左右で、反対側に塗りつぶされます

str.ljust(width[, fchar])

fcharを使用して文字列の右側を塗りつぶし、全長の幅を作成します。

str.rjust(width[, fchar])

fcharを使用して文字列の左側を埋め、全長を幅にします。

PS:fcharを指定しない場合、デフォルトでスペースで埋められます。幅が文字列の長さ以下の場合、それを埋めることはできず、元の文字列が直接返され、新しい文字列オブジェクトは作成されません。

例えば:

print('xyz'.ljust(5,'_'))

xyz__

print('xyz'.rjust(5,'_'))

__ xyz

(3)ゼロで埋める

str.zfill(width)

例えば:

print('abc'.zfill(5))

00 abc

print('-abc'.zfill(5))

print('+abc'.zfill(5))

+0 abc

print('42'.zfill(5))

00042

4、 文字列のサブ文字列検索

(1)文字列内のサブ文字列の出現回数を返します

str.count(sub[, start[, end]])

PS:インデックス番号を使用して、計算を開始する場所(開始)と計算を終了する場所(終了)を指定できます。デフォルトのインデックスは、終了境界を除いて0から計算されます。

例えば:

print('aaxyzaabbcaa'.count('aa'))

3

(2)文字列が開始または終了する文字を決定します

str.startswith(fix[, start[, end]])

文字列がfixで始まるかどうかを判断します

str.endswith(fix[, start[, end]])

文字列が修正で終わるかどうかを判断します

例:修正が通常の文字列である場合

print('abcxyz'.startswith('abc'))

True

誤り、検索範囲はインデックス4から開始するように制限されているため

print('abcxyz'.endswith('xyz',4))

False

検索範囲が「abcxy」であるため、False

print('abcxyz'.endswith('xyz',0,5))

False

**fixがタプルの場合、タプル内のいずれかの要素がendswithの条件を満たす限り、Trueを返します。 ****

タプルの「xyz」は条件を満たす

print('abcxyz'.endswith(('ab','xyz')))

True

タプルの「ab」も「xy」も条件を満たしていません

print('abcxyz'.endswith(('ab','xy')))

False

(3)検索文字列に特定の部分文字列が含まれているかどうか

str.find(sub[, start[, end]])

str.rfind(sub[, start[, end]])

str.index(sub[, start[, end]])

str.rindex(sub[, start[, end]])

find()は、文字列にsubstring subが含まれているかどうかを検索し、含まれている場合はsubのインデックス位置を返し、含まれていない場合は「-1」を返します。検索の開始位置と終了位置を指定できます。

rfind()は、検索された右端のサブストリングの位置を返します。サブストリングが1つだけ、または見つからない場合は、find()と同等です。

index()はfind()と同じですが、唯一の違いは、サブストリングが見つからない場合、ValueErrorがスローされることです。

例えば:

' abcxyzXY'.find('xy')

3

' abcxyzXY'.find('xy',4)

-1

' xyzabcabc'.rfind('bc')

7

**in演算子を使用して、文字列にサブ文字列subが含まれているかどうかを判別できます。これは、インデックス位置ではなく、ブール値を返します。 ****

' xy' in 'abxycd'

True

' xyz' in 'abxycd'

False

5、 交換操作

(1)文字列の古いサブ文字列を新しい文字列に置き換えます

str.replace(old, new[, count])

PS:カウントが指定されている場合、最初のカウントの古いサブストリングのみが置き換えられることを意味します。 substring oldがstrで見つからない場合、それを置き換えることはできず、新しい文字列オブジェクトを作成せずに元の文字列が直接返されます。

' abcxyzoxy'.replace('xy','XY')

‘abcXYzoXY’

' abcxyzoxy'.replace('xy','XY',1)

‘abcXYzoxy’

' abcxyzoxy'.replace('mn','XY',1)

‘abcxyzoxy’

(2)文字列マッピング変換(単純な暗号化方法として理解できます)

str.translate(table)

static str.maketrans(x[, y[, z]])

str.maketrans()は、文字から文字へのマッピングテーブルを生成し、translate(table)を使用して文字列内の各文字をマッピングします。

たとえば、「I love you」の単純な暗号化を行い、一部の文字を数字に置き換えて、変換された文の意味が他の人にわからないようにします。

ステップ1:マッピングテーブルを作成する

maketrans()はマッピングテーブルを生成します

in_str='abcxyzlij'

out_str='123456789'

map_table=str.maketrans(in_str,out_str)

ステップ2:マッピングテーブルを使用してマッピング(暗号化)を実装する

translate()を使用してマップします

mylove = 'I love you'

result = mylove.translate(map_table)

print(result)

I 7ove 5ou

PS:maketrans(x [、y [、z]])のxとyは両方とも文字列であり、長さは等しくなければなりません。 maketrans(x [、y [、z]])に3番目のパラメーターzが指定されている場合、このパラメーター文字列の各文字はNoneにマップされます。

例えば:

in_str='abcxyz'

out_str='123456'

map_table=str.maketrans(in_str,out_str,'ar')

mylove='How are you'

result=mylove.translate(map_table)

print(result)

How e 5ou

6、 文字列分割操作

(1)トリプルに分割

str.partition(sep)

str.rpartition(sep)

文字列内のサブ文字列sepを検索し、文字列をsepから分割して、最後に3つの要素を含むタプルを返します。sepの左側はタプルの最初の要素であり、sep自体はタプルの2番目の要素です。要素、sepの右側は、タプルの3番目の要素です。

partition(sep)は左側の最初のsepから分割され、rpartition(sep)は右側の最初のsepから分割されます。

sepが見つからない場合、返される3要素タプルの2つの要素は空です。 partition()は最後の2つの要素が空であり、rpartition()は最初の2つの要素が空です。

例えば:

print('abcxyzxyzopq'.partition('xy'))

(' abc', 'xy', 'zxyzopq')

print('abcxyzxyzopq'.rpartition('xy'))

(' abcxyz', 'xy', 'zopq')

(2)文字列を分割してリストを生成する

str.split(sep=None, maxsplit=-1)

str.rsplit(sep=None, maxsplit=-1)

str.splitlines([keepends=True])

split()は文字列をsepに従って分割し、maxsplitは分割数を指定するために使用されます。maxsplitが指定されていないか、指定された値が「-1」の場合、左から右に検索し、検索が完了するまでsepに遭遇するたびに分割しますストリング。

sepを指定しない場合、またはNoneを指定する場合は、セグメンテーションアルゴリズムを変更します。スペースを区切り文字として使用し、連続するスペースを1つのスペースに圧縮します。

**rsplit()とsplit()は同じですが、右から左に検索します。 ****

**splitlines()は、特にnewlineを分割するために使用されます。 split( '\ n')やsplit( '\ r \ n')に少し似ていますが、違います。 ****

'1,2,3'. split(',')

['1', '2', '3']

'1,2,3'. split(',',1)

['1', '2,3'] # 1回だけ分割

'1,2,,3'. split(',')

['1', '2', '', '3'] # 連続するセパレーターを圧縮しません

'< hello><>'.split('<')

['', ' hello>', '>', 'world>']

'< hello><>'.split('<>')

['< hello>', '']

'1 2 3'. split()#sepが指定されていない場合

['1', '2', '3']

'1 2 3'. split(maxsplit=1)

['1', '2 3']

' 1 2 3 '. split()

['1', '2', '3']

' 1 2 3 \ n'.split()

['1', '2', '3']

sepをスペース、タブ、またはnewlineとして明示的に指定する場合

' 1 2 3 \ n'.split(' ')

['', '1', '', '2', '', '3', '', '\ n']

' 1 2 3 \ n'.split('\t')

[' 1 2 3 \ n']

' 1 2\ n3 \n'.split('\n')

[' 1 2', '3 ', ''] # リストの最後の項目に注意してください」

''. split('\n')

['']

' ab c\n\nde fg\rkl\r\n'.splitlines()

[' ab c', '', 'de fg', 'kl']

' ab c\n\nde fg\rkl\r\n'.splitlines(keepends=True)

[' ab c\n', '\n', 'de fg\r', 'kl\r\n']

split()とsplitlines()を比較してください:

split()

''. split('\n')

[''] # 分割するニューラインがないため

' One line\n'.split('\n')

[' One line', '']

splitlines()

"". splitlines()

[] # 分割するニューラインがないため

' Two lines\n'.splitlines()

[' Two lines']

7、 参加操作

str.join(iterable)

str文字列を使用して、反復可能オブジェクト(反復可能)内の文字列を連結します。

すべての反復可能オブジェクトは文字列タイプである必要があることに注意してください。そうでない場合、エラーが報告されます。

まだpythonの初心者で、反復可能性が何であるかわからないが、joinの特定の構文を確認したい場合は、一時的に次のように理解できます:文字列文字列、リストリスト、タプルタプル、辞書dict、セットセット。

例えば:

ストリング

X1='python'

'_'. join(X1)

' p_y_t_h_o_n'

タプル

X2=('1','2','3')

'_'. join(X2)

'1_2_3'

**セットする。 **コレクションが故障していることに注意してください。

X3={'p','y','t','h','o','n'}

'_'. join(X3)

' n_o_p_h_y_t'

リスト

X4=['py','th','o','n']

'_'. join(X4)

' py_th_o_n'

辞書

X5={'name':"malongshuai",'gender':'male','from':'China','age':18}

'_'. join(X5)

' name_gender_from_age'

反復に関与するiterableの部分は文字列タイプである必要があり、数値やその他のタイプを含めることはできません。

8、 トリミング操作

左側、右側、左側、右側のチャーを削除します。 charsが指定されていないか、Noneが指定されている場合、空白(スペース、タブ、ニューライン)はデフォルトで削除されます。

str.strip([chars])

str.lstrip([chars])

str.rstrip([chars])

注意すべき唯一のことは、charsは複数の文字のシーケンスである可能性があるということです。削除すると、このシーケンスのすべての文字が削除されます。

**例:単一の文字または空白を削除します。 ****

' abcde '.strip()

' abcde'

print('www.example.com'.lstrip('cmowz.'))

example.com

Recommended Posts

Pythonの基盤を統合する(2)
Python(7)の基盤を統合する
Python(6)の基盤を統合する
Pythonの基盤を統合する(3)
2.3Python言語の基盤
pythonはゲームという言葉を推測します
Ubuntuは最新のPython3をインストールします。
「Pythonの基盤を統合する」(1)
Pythonは推測ゲームを実現します
Python拡張機能の違い
Pythonは実店舗のゲームを実装しています
pythonでのwheelの使用法
Pythonがメール機能を実装する方法
pythonはどのように環境を変えますか
Pythonは単にスネークゲームを実装します
Pythonは中国語の4つの車輪を処理します
Python3はシングルトンデザインパターンを実装しています
pythonプログラムを保存する方法
地主取引のPythonシミュレーション
Pythonの用途は何ですか
Pythonの数字は何ですか?
Pythonは最も急な降下方法を実装します
Pythonのモジュールについて話す
Python文字列プーリングの前提
Python3.8の新機能の秘密
Pythonがタイマー機能を実装する方法
pythonモジュールを表示する方法
Pythonは航空機戦争プロジェクトを実装します
Pythonの父がMicrosoftに加わる
python accesshdfsの操作
pythonでのタプルの使用法
pythonを実行するメソッドを終了します
Ubuntuに最新のPython3.6バージョンをインストールします
pythonでのrbの意味を理解する
Pythonはスタックの構造を実装できますか?
Pythonがswitchステートメントをサポートしないのはなぜですか?
pythonの必須パラメーターは何ですか
pythonはどのように計算速度を向上させますか
pythonの下部にあるロジスティック回帰
Python3クローラーでのAjaxの使用
PythonはTowerofHanoiゲームを解決します
パスワードの強度を判断するためのPython文字列
pythonの複数のバージョンの競合を解決します
python変数の範囲は何ですか
プログラミングの基礎なしでpythonを学ぶことはできますか
Pythonは分数シーケンスの合計を実装します
Pythonの基礎を学ぶ2日間
pythonのid関数は何ですか
Pythonの基本的な実際の戦闘-年齢ゲームを推測する
python3のピップパスはどこにありますか
pythonは勾配メソッドを実装しますpython最速の降下メソッド
Pythonはjsonモジュールをどのように処理しますか
python言語の利点は何ですか
pythonインスタンス化オブジェクトの特定のメソッド
Pythonがswitchステートメントをサポートしないのはなぜですか?
Python初心者はライブラリの使い方を学びます
python3はマスク描画の機能を実現します
Pythonタイムモジュールを学ぶ方法
python開発の見通しは何ですか
Pythonは貪欲なヘビの二重の戦いを実現します
pythonの関数本体は何ですか