Python文字列:Pythonで最も人気のあるデータ型の1つ
文字列は、Pythonで最も人気のあるデータ型の1つです。文字列は、高レベルでは、文字のシーケンスで構成されるオブジェクトです。文字は記号です。たとえば、英語のアルファベットは26文字です。
Python文字列は、作成と操作が簡単です。あなたはすぐにそうすることを今すぐ学び始めることができます。この記事では、Pythonの文字列、それらがどのように機能するか、およびそれらで使用される一般的な操作について説明します。
Pythonの文字列とは何ですか?
Pythonで文字列を作成するには、文字を引用符で囲みます。これは、一重引用符(‘)または二重引用符(“)にすることができます。文字列を変数に割り当てて開始および宣言します:
doubleQuoteString = "I'm a string" singleQuoteString = 'I\'m a string' # needs escaped single quote to treat it as a string value as opposed to end of input.
注意:一重引用符で囲まれた文字列内でアポストロフィを使用する必要がある場合は、「\」でエスケープする必要があります。これにより、引用符は文字列の終わりではなく、文字列の一部として扱われます。
Docstringsと複数行の文字列
Docstringsは、Pythonの別の種類の文字列です。これらは三重引用符(“””)で囲まれ、関数またはクラスの最初の行で複数行のコメントとして扱われます。
def printString(str): ''' takes in a string and prints it to the console ''' print(str)
docstringは、コードブロックの目的が何であるかを説明します。ロジックでdocstringを使用したい場合は、docstringを変数に割り当てることができます。変数に割り当てられている場合、docstringは複数行の文字列になります。
multiline = ''' I'm a multi-line string that can be assigned to a variable. The format follows exactly the way YOU input it. ''' print(multiline)
複数行の文字列は、三重引用符内のフォーマットに従います。変数の割り当てがないと、文字列はコメントとして扱われ、スキップされます。
生の文字列
Pythonは、生の文字列と呼ばれる概念を使用します。この概念は、文字列内のすべてを記述した方法で処理します。特に、バックスラッシュはエスケープシーケンスとして使用されません。比較は次のとおりです。
参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。
平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。
notRaw = "I'm a not a raw string, and escape chars DO matter \n\r\t\b\a" rawString = r"I'm a raw string, where escape chars don't matter \n\r\t\b\a" print(notRaw) # I'm not a raw string, and escape chars DO matter. print(rawString) # I'm a raw string, where escape chars don't matter \n\r\t\b\a
生の文字列は、文字rが前に付いた通常の文字列で表されます:
r「これは生の文字列です」
ある種の特別なエスケープされたシーケンスを示さないようにバックスラッシュが必要な場合は、生の文字列を使用してください。
文字列内のUnicode文字
Unicodeは、任意の言語で使用されるすべての文字に独自のコードを割り当てることを目的とした文字仕様です。ほとんどのドキュメントでは、Unicode値は次のように表されます。
U +
U + 2661は、使用可能なUnicode文字の1つのタイプの例です。世界のすべての言語を表す何万もの文字から選択できます。
Python3でのUnicodeの記述
Python 3でUnicode文字を作成するには、\ uで始まり、文字に割り当てられたコード(「+」の後に続く数字)で終わる通常の文字列でエスケープシーケンスを使用します。
unicodeString = '\u2661' print(unicodeString) # ♡
行に必要な数のUnicode文字をチェーンできます。
通常の文字列でUnicodeを使用するこのプロセスは、Python 2から更新されています。古いバージョンでは、u’\u<unicode number here>’
で始まる個別のUnicode文字列が必要でした。 Python2はASCII値とUnicode値を使用していたため。
文字列の値にアクセスする方法
Pythonで文字列の値にアクセスするには、角かっこを使用します。文字列は、他のプログラミング言語と同様にゼロベースです。これは、文字列の最初の文字が0番目のインデックスから始まることを意味します。
hello = "hello world" print(hello[4]) # o
helloで4番目のインデックスを印刷すると、コンソールに「o」が出力されます。文字列の一部ではないインデックスにアクセスしようとすると、IndexError: string index out of range
が表示されます。 。このエラーは、使用しているインデックスの数よりも多いまたは少ないインデックスにアクセスしようとしていることを意味します。
注: CやJavaなどのプログラミング言語を使用している場合は、独自のデータ型を持つ文字に慣れています。これはPythonには当てはまりません。個々の文字は、長さが1の部分文字列として扱われるだけです。 |
文字列内の複数の文字へのアクセス
文字列スライスを使用して、文字列内の複数の文字に一度にアクセスします。構文は次のとおりです。
string_name[first_index? : another_index?]
最後のインデックスは包括的ではありません。 Hello[1:3]
前の例では、el
を返します ell
ではありません 。
Pythonでのスライスの興味深い点は、スライスにインデックス値が必要ないことです。
Pythonで文字列をスライスする一般的な方法は次のとおりです。
-
string_name[:]
角かっこ内にコロンを使用すると、文字列全体がスライスされてコピーが作成されます。
hello = "hello world" copy = hello[:] + " ⇐ whole string" print(copy) # hello world ⇐ whole string
-
string_name[first_index:]
角かっこ内を空のままにしておくと、最後のインデックス値がわからなくても、文字列内のインデックスから最後までスライスできます。
hello = "hello world" copy = hello[2:] + " ⇐ An index to end of string" print(copy) # llo world ⇐ An index to end of string
-
string_name[:second_index]
最初から別のインデックスへのスライスは、最初のインデックスが括弧内に入る場所を空のままにしておくことによって行われます。
hello = "hello world" copy = hello[:7] + " ⇐ beginning to index inside of string" print(copy) # hello w ⇐ beginning to index inside of string
-
string_name[first_index:second_index]
スライスする特定のインデックスが2つある場合、sliceメソッドは包括的ではないことに注意してください。したがって、インデックス1からインデックス6までの文字列が必要な場合は、実際にはhello[1:7]
としてフォーマットする必要があります。 。
hello = "hello world" copy = hello[1:7] + " ⇐ first index to another index" print(copy) # ello w ⇐ beginning to another index inside of string
負の数も使用できます:
hello = "hello world" copy = hello[-7:-2] + " ⇐ negative indexes" print(copy) # o wor ⇐ negative indexes
文字列を操作したいが、元の文字列を変更したくない場合は、文字列スライスを使用すると便利です。選択したインデックスのメモリに独自のコピーを作成するため、元の文字列を変更せずにインデックスを更新できます。
Pythonで文字列をループする方法
Pythonでは、配列を処理するのとほとんど同じ方法で文字列を処理します。 for…in構文を使用して配列の場合と同じように文字列をループできます:
#for...in syntax for <index> in <string>: #do logic here #example word = "career karma" for letter in word: print(letter) #prints each individual letter on each iteration
「letter」を
文字列の長さを見つける方法
文字列の長さを見つけるには、len()
を使用します 方法。
lenExample = "The quick brown fox jumps over the lazy dog." print(len(lenExample))
コードの他の場所でlenキーワードを使用しないでください。インタプリタは関数を名前付き変数と混同します。
「in」と「notin」の使用方法
Python文字列に含まれるキーワードと含まれないキーワードを使用して、文字列に何かが含まれているかどうかを確認できます。
checkString = "Career Karma will help you make a career switch to the tech industry"
checkStringは、次の2つの例で使用する文字列です。
での使用
in
キーワードを使用して、検索語が変数に割り当てられた文字列に含まれているかどうかをPythonインタープリターに通知することにより、文字列に何かが含まれているかどうかをテストできます。
print("tech" in checkString) # True
Pythonは読みやすいので、学ぶのに望ましい言語です。ここでの構文は、基本的に、他の人に質問した場合にその質問をする方法です。
Q:「checkStringの「tech」はありますか?」 (checkStringの「tech」)
(文字列をスキャン)
A:「はい、そうです。」 (真)
使用しない
not in
キーフレーズは、文字列に何かが含まれていないかどうかをテストします。これは心を包み込むのを混乱させる可能性があるので、注意してください。ここで、何かが文字列に含まれていないかどうかを尋ねると、文字列に含まれていない場合は「True」を返し、文字列に含まれている場合は「False」を返します。
print("tech" not in checkString) # False
別の個人と話している場合、この構文を読み取る方法は次のとおりです。
Q:「「tech」はcheckStringに含まれていませんか?」 (checkStringにない「tech」)
(文字列をスキャン)
A:「いいえ。 「tech」という単語はcheckStringにあります」(False)
文字列の構成を変更できますか?
Pythonの文字列は不変です。文字列を構成する文字は、最初の割り当てが行われた後、何らかの方法で変更または変更することはできません。
delString = "Can we delete this or change this?" delString[2] = "b" print(delString)
このコードをPythonインタープリターで実行してみてください。結果として生じるエラーは次のとおりです。
Traceback (most recent call last): File "main.py", line no., in <module> delString[2] = "b" TypeError: 'str' object does not support item assignment
ここでのTypeErrorは、Pythonの文字列では文字の再割り当てが許可されていないことを示しています。個々の文字を再割り当てする場合は、作成する新しい文字列に文字列全体を再割り当てする必要があります。
delString = delString[:2] + "b" + delString[3:] print(delString)
ここでのコードは、delString[2] = “b”
で意図したことを実行する正しい方法です。 コード行。文字列オブジェクトを変更するには、全体を再割り当てする必要があります。
これは、文字列内の1文字を削除できないことも意味します。ただし、del
を使用して文字列全体を削除することはできます キーワード。
del delString print(delString) #this will return an error or the linter will catch as being undefined
人気のある文字列メソッド
Python文字列に関連するいくつかのメソッドがあります。最新のリストについては、Pythonのドキュメントをご覧ください。
最も一般的な方法のいくつかを次に示します。 testString
は、ほとんどのメソッドを示すために使用されるサンプル文字列です。
testString = "this is a test string."
Capitalize()
Capitalizeメソッドは、文字列の最初の文字を大文字にします:
capitalized = testString.capitalize() print(capitalized) # This is a test string
find()
この組み込みメソッドは、渡された引数が始まる場所のインデックスを返します。見つからない場合は-1を返します。
found = testString.find("test") notfound = testString.find("not") print(found) # 10 print(notfound) # -1
join()
joinメソッドは、メソッドに渡された反復可能オブジェクト(文字列、セット、タプル、またはリストなど)を取得し、それをループして、メソッドが呼び出される文字列セパレーターを追加します。次に例を示します:
separator = ", " # this is our separator - this string is the one that the method gets called on numbers = "123" # this is our iterable. In this instance, it is a string joinedByComma = separator.join(numbers) print(joinedByComma) # 1, 2, 3
結合メソッドを試して、リスト、セット、タプルなどの他の反復可能オブジェクトで何ができるかを確認してください。
lower()およびupper()
下部と上部の組み込み関数は、文字列の大文字小文字を処理します。 Lowerは、すべて小文字の文字列のコピーを作成します。 upperは、すべて大文字の文字列のコピーを作成します:
uppercase = testString.upper() print(uppercase) # THIS IS A TEST STRING lowercase = testString.lower() print(lowercase) # this is a test string
これらのメソッドは、文字列の操作に関して使用できるメソッドのほんの一部です。これらを学んだ後、split()
のような他のPython文字列メソッドをチェックしてください 、replace()
、title()
、およびswapcase()
。
結論
この記事では、Python文字列とは何か、それらがどのように使用されるか、および使用できる組み込みメソッドのいくつかについて説明しました。このガイドをマスターしたら、Pythonでの文字列の書式設定に関する記事をご覧になり、学習をさらに進めてください。
-
Pythonデータ型と型変換
Pythonデータ型と型変換の実行方法の概要。 Pythonデータ型 Pythonで変数を作成または宣言する場合、変数はさまざまなデータ型を保持できます。 Pythonには、次の組み込みデータ型があります。 str int、float、complex リスト、タプル dict セット ブール byte、bytearray テキストタイプ:str str データ型は、文字列を宣言するときに使用されます 変数。 例: x = some string y = str(another string) 数値型:int、float、complex 数値変数を作成する
-
Python文字列-基本的な文字列操作の概要
文字列は、Pythonの基本的なデータ型の1つです。 Python文字列は、文字、数字、およびその他の特殊文字で構成される任意の数の文字の組み合わせです。このチュートリアルでは、さまざまなシナリオで使用するために、それらを作成、操作、およびフォーマットする方法を学習します。 Pythonで新しい文字列を作成する 新しいPython文字列を作成するには、一重引用符または二重引用符で囲まれた文字のシーケンスを宣言する必要があります。三重引用符は、複数行の長さの文字列にも使用されます。 double_quotes = My name is John! single_quotes = My nam