スライドショー

Pythonで文字列を扱うには?文字列の基本操作を解説

Pythonの文字列型について知りたい
Pythonで文字列の連結・変換・検索をするにはどうすればいいの?

プログラミングをする上で、文字列操作を行う機会はよくあります。たとえば、文字列の中に意図した文字列が入っているか検索したい、文字列を部分的に他の文字列に置き換えたいなど。

そこで、今回は、Pythonにおける文字列の基本的な使い方について、やさしく解説していきたいと思います。文字列の操作には色んな種類があり、それぞれどれも覚えておいて損はないものばかりです。

この記事では、文字列操作について以下の内容で解説していきます。

  • 文字列とは
  • 文字列の連結、変換、検索、置き換え、大文字小文字変換、桁揃え
  • 文字列の比較方法
  • 文字列が日本語を含む場合の対処法

文字列操作は覚えてしまえば、それほど難しくありませんので、この機会にぜひ理解しておきましょう。

Pythonで文字列を宣言するには

そもそも文字列とはその名の通り「文字の列」で構成された基本的なデータ型の一つです。文字列はリスト型やタプル型等と同じようにシーケンス型にも属します。

また、文字列はイミュータブルな型でもあります。イミュータブルとは変更が出来ない型のことを言います。

文字列の一部を書き換えたり、消したりすることはできず、変更を加えたいのであれば新しいオブジェクトを作った上で変更を加えなければなりません。

Pythonで文字列を扱うには、ダブルクォート(")かシングルクォート(')で囲む必要があります。

mystr1 = "Hello world"
mystr2 = 'Hello world'

このように、mystr1とmystr2といった文字列型のオブジェクトを作ることができましたね。

Pythonで文字列を扱う方法

それでは早速、文字列の使い方を見ていきましょう。

文字列の連結

二つの文字列を一つの文字列に組み合わせたい場合は、文字列の連結を行います。

「+」演算子を使用することで、二つの文字列の連結が簡単に行うことが出来ます。

以下のコードをご覧ください。

mystr1 = 'Hello'
mystr2 = 'World'
mystr3 = mystr1 + mystr2
print(mystr3)

実行結果

HelloWorld

こちらのコードでは、文字列Helloを格納するmystr1とworldを格納するmystr2を連結しました。

また、変数を文字列に埋め込んで連結することも出来ます。

mystr = 'Python'
print("Hello"+mystr+"World")

実行結果

HelloPythonWorld

文字列と数値の変換

数値を文字列として扱いたい場合や、その反対に文字列を数値として扱いたい場合は文字列の変換を行います。

まずは、文字列を整数に変換する方法を解説します。

以下のコードをご覧ください。

mystr = '1234'
str_to_num = int(mystr)
print(type(str_to_num))

実行結果

<type 'int'>

こちらのコードでは、mystrを整数に変換してみました。

変換を行うには、int関数を使用します。int関数の引数として、変換したい文字列を渡すだけです。

今度は反対に、整数から文字列に変換したい場合をご紹介します。

以下のコードをご覧ください。

mynum = 1234
num_to_str = str(mynum)
print(type(num_to_str))

実行結果

<type 'str'>

先ほどとの違いは、int関数のかわりにstr関数を使用するところです。

文字列の検索

ある文字列の中に特定の文字列が含まれているか調べたい場合は、findメソッドを使いましょう。

以下のコードをご覧ください。

mystr = 'Hello world'
index = mystr.find('world')
print(index)

実行結果

6

findメソッドは、引数に指定した文字列が最初に現れるインデックスを返します。また、その文字列が存在しなかった場合は、-1を返します。

こうして簡単に、文字列の検索とインデックスを調べる事が出来ました。インデックスを調べる必要が無い場合は、文字列の検索にin演算子を使用する事が出来ます。

以下のコードをご覧ください。

url = 'http://www.google.com/sample/top/'
googleDomain = 'www.google.com'
bingDomain = 'www.bing.com'
 
print(googleDomain in url)
print(bingDomain in url)

実行結果

True
False

こちらのコードでは、URLの中に含まれるドメインの文字列をin演算子で調べてみました。実際、GoogleドメインはURLに含まれているので、Trueと表示されましたね。

文字列の置き換え

文章の中にある文字列を、指定した文字列に置換する事も出来ます。

置換ではreplaceメソッドを使いましょう。

以下のコードをご覧ください。

mystr = 'Hello world'
replaced = mystr.replace('world', 'everyone')
print(replaced)

実行結果

Hello everyone

こちらのコードでは、文字列Hello worldのworldの部分をeveryoneに置き換えてみました。replaceメソッドは、第一引数に指定した文字列をmystrの中から抽出し、それを第二引数に指定した文字列に置き換えます。

大文字小文字の変換

文字列の大文字・小文字を変換した場合はupperメソッド及び、lowerメソッドを使用します。

以下のコードをご覧ください。

sample_str = 'Samurai Engineer'
 
print(sample_str.upper())
print(sample_str.lower())

実行結果

SAMURAI ENGINEER
samurai engineer

upperメソッドで大文字、lowerメソッドで小文字に簡単に変換できることがわかりますね!

桁を揃える

プログラムによっては文字列の桁数を揃えて出力したい場合もあります。たとえば、指定した文字や数字で文字列の桁数を揃えたい場合はrjustメソッドを使用します。

以下のコードをご覧ください。

sample_str = '1111'
 
print(sample_str.rjust(5, '0'))
print(sample_str.rjust(5, '#'))

実行結果:

0000001111
######1111

このように指定した桁数で揃えることができますね!

ちなみに第二引数の文字は数値・文字・記号などを指定することができます。

文字列の比較方法

二つの文字列が同じかどうか判断するために、文字列を比較したい場合があります。

そんな時は、「==」という比較演算子を使用します。

以下のコードをご覧ください。

mystr1 = 'Hello'
mystr2 = 'world'
print(mystr1 == mystr2)

実行結果

False

こちらのコードでは、Helloを格納するmystr1がmystr2と同じかどうか確かめてみました。「==」という演算子は、左右の文字列が一致する場合はTrue、異なる場合はFalseを返します。

ご覧いただけるように、Helloとworldは異なるのでFalseが表示されました。また、「==」演算子の他にもis演算子を使う方法もありますが、これは推奨されていません。

詳しくは、こちら記事でご確認ください。

【Python入門】文字列の比較方法まとめ
更新日 : 2019年4月15日

formatメソッドの使い方

今までは、変数を文字列に埋め込む方法として%演算子を使用する方法が主流でした。しかし、Python2.6以降はformatメソッドを使用することが可能になりました。

formatメソッドについて詳しく知りたい方は以下の記事を参考にしてください。

【Python 入門】formatメソッドで変数の内容を出力する方法
更新日 : 2019年6月21日

そもそもPythonとは

Pythonの基本についておさらいしておきたい方については、以下の記事を参考にしてください。

まとめ

今回はPythonにおける基本的な文字列の使い方と、その活用法について解説しました。文字列の操作は知っておけば知っておくほど便利なものばかりなので、しっかり覚えておいて損はありません。

本記事を通して、ご自身でも試して理解を深めてくださいね。

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

Kotono

Kotono

イタリア在住15年目の22歳です。イタリアの大学で情報科学&応用数学を学んでいます。主にJavaScriptやPythonについての記事を書いたりしています。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説