- 2018-8-3
- pythonプログラミング, 文字列
- python, 文字列操作
- python特有の文字列操作まとめ はコメントを受け付けていません
この記事ではpython特有の文字列操作についてまとめてみました。
もし文字列操作でなく、数値計算について知りたい方は
コチラの記事をご覧ください。
pythonにおける文字列操作の基本
pythonで文字列を扱うときには
『’(シングルクオーテーション)』でも『”(ダブルクォーテーション)』でも
どちらでも使うことができます。
たとえばPHPで文字列を表すとき
『’』と『”』だと、少し動きが変わることもあります。
そういった意味でも、PHPを学んだことがある方も
pythonの文字列操作について勉強しておいた方がよいでしょう。
たとえば以下の例文だとどういう結果が得られるでしょう?
print('pythonについて勉強中') print("pythonについて勉強中")
どちらも以下のように同じ結果になります。
でも、以下のような例文のときには注意が必要です。
print('I didn't do it on purpose') print("I didn't do it on purpose")
上記の場合だと、上の文はエラーになります。
これは上の文ではどこからどこまでが文字列なのか
python上では理解できないからです。
『’I didn’』までで文字列が終わっているように
pythonは受け取ってしまいます。
そんな場合には
print('I didn\'t do it on purpose')
といった感じで、「シングルクォートとして文字列を囲んでいるわけではない」という意味で
バックスラッシュをシングルクォートの直前に入れましょう。
バックスラッシュは\のことです。
そうすればこうやって文字列が表示されます。
ちなみに「バックスラッシュ(\)ってどうやって入力すればいいの?」
と疑問に感じた場合にはこちらの記事で詳しく解説していますので
ご覧ください。
次にこんな感じでシングルクオーテーションが2つ入った場合の
文字列操作についても見ていきましょう。
print('I can't tell whether it's true or not.')
このまま実行すると、当然、エラーになります。
では、『I can\’t』とバックスラッシュを入れるとどうなるでしょう?
print('I can\'t tell whether it's true or not.')
上記を実行するとエラーが出ます。
その次の『it’s』のシングルクオーテーションで
文字列が終わっているようにpythonは認識してしまうからです。
なので、もう一つバックスラッシュを入れましょう。
こんな感じです。
print('I can\'t tell whether it\'s true or not.')
そして実行すると、
期待した結果を得ることができました。
では次にダブルクォーテーションでよくあるエラーについて。
こういうパターンですね。
print("I said "You are a python programmer."")
実行するとエラーが出ます。
『”I said “』で文字列が終わっているように
pythonが認識してしまうからです。
この場合には途中の『”』の前にバックスラッシュを入れましょう。
そうすればエラーが消えます。
こんな感じです。
print("I said \"You are a python programmer.\"")
実行するとこうなります。
pythonの文字列操作|改行する方法
改行についてはコチラの記事でも詳しく解説しています。
この記事でも文字列の改行について
解説していきますね。
たとえば、次にこんな場合、どうすればよいのでしょうか?
『ある日、
おじいさんとおばあさんが
山奥の一軒家に
住んでいました。』
こうやって入力すると、
print('ある日、おじいさんとおばあさんが山奥の一軒家に住んでいました。')
こういう結果になって改行されません。
ではどうすれば改行するか?
『\n』を改行したい文の直前に入れましょう。
こうです。
print('ある日、\nおじいさんとおばあさんが\n山奥の一軒家に\n住んでいました。')
実行すると、
こんな感じでうまく改行できましたね。
ではこんな感じで\nを使ったらどうなるでしょうか?
print(r'ある日、\nおじいさんとおばあさんが\n山奥の一軒家に\n住んでいました。')
上記は『r’ある日、』と前に『r』をつけました。
結果はこうなります。
こんな感じで、前に『r』をつけることで
『\n』の改行を無効化することができます。
「そんなの使うことってあるの?」
と思った方もいるかもしれません。
でも、たとえば、プログラミングで
こういったシチュエーションだと使うかもしれませんよ。
print('D:\ndrive\naturefiles')
上記はDドライブのデータに対して何かしらの行動を起こさせようとした場合に
考えられますね。
この場合、結果はこうなります。
『’D:\ndrive\na』と\nが入ってしまっているために
改行してしまったわけですね。
ではこんな場合にどうするか?
先ほどの『r』を使うんです。
print(r'D:\ndrive\naturefiles')
このように前に『r』をつけることで
以下のように改行されずにすみます。
次に意地になって、こんな感じで改行している状態だと
どうなるでしょう?
print("「明日 晴れると いいんだけどな」 とつぶやいた")
結論としてはエラーとなります。
ではこれはどうでしょう?
print("""「明日 晴れると いいんだけどな」 とつぶやいた""")
実行すると
きちんと改行されています。
こんな感じで元から改行されている状態で
しかも\nを使わないでそのまま表示させるには
“””文字”””と『”』を3つつければよいです。
Python文字列操作:文字列を連続させて表示させる方法
たとえば、こんな表現を表示させるとします。
「おっと、
松本選手、また、また、また、ホームランだー!」
です。
これを効率よく表示させるなら
こんな方法があります。
print("「おっと、\n松本選手、" + "また、" * 3 + "ホームランだー!」")
実行すると、
とうまく表示されましたね。
『選手、” + “また、”』と『+』をつけることで
文字列と文字列をくっつけることができます。
それから『”また、” * 3 』と『*』と次の数字で
直前の文字列を数字分だけ繰り返させることができます。
だから
print("「おっと、\n松本選手、" + "また、" * 5 + "ホームランだー!」")
なら、『また、』が5回繰り返されるわけですね。
じゃ、こういう表現ならどうすればよいでしょうか?
「もう、わかったわかったよー。
お姉ちゃんの言うとおりにするからさー
許してよ」
です。
一度、自分で考えてみてくださいね。
では回答を。
print('「もう、' + 'わかった' * 2 + 'よー。' + '\nお姉ちゃんの言うとおりにするからさー' + '\n許してよ」')
上記を実行すると
‘わかった’ * 2 + ‘よー。’
がポイントですね。
これで『わかったわかったよー』となるわけですね。
python文字列操作で変数を使う方法
変数を利用して
「オレは人間が人間が人間が信用できないんだ」
を表現してみましょう。
a = 'オレは' b = '人間が' c = '信用できないんだ' print(a + b * 3 + c)
上記でどうでしょう?
実行してみると
変数についてはコチラの記事で詳しく解説しています。
以上でpython特有の文字列操作についての解説を終わります。
pythonを学ぶならこちらの動画講座がおすすめです
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学び、実践的なアプリ開発の準備をする
かなり長い講座名ですね。
わかりにくそうな感じがします。ですが、pythonの基礎からしっかりとわかりやすく教えてくれます。
また、きれいなコードを書くための方法についても
教えてくれるので、周りが「どうやってそんなコードを書いてるの?」
とびっくりされるようになるかもしれません。それからWebアプリケーション開発の基本的なテクニックについても
教えてくれます。なので、pythonを使ってwebアプリケーションを作ってみようと
思っている方にもおすすめです。値段は時期によって違います。
詳しくはこちらをご覧ください。
みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習
この講座ではまずpythonの基礎を学びます。
次に人工知能について学んでいきます。そして最終的にはpythonを使って文字認識や株価分析ができるような技術力が身につくようになっています。
単純に教科書的なpythonを学ぶのではなく
仕事でも使えるスキルを身につけたい方におすすめの講座です。なのに値段は恐ろしいほど安いです。
時期によって値段は変動するので
詳しくはこちらをご覧ください。
Pythonで機械学習:scikit-learnで学ぶ識別入門
この動画講座は広島大学准教授の先生が担当しています。
機械学習が専門の先生です。すごく深い知識が身につきます。
大学の先生の講義って難しそうってイメージがあるかもしれません。でもそんなことはありません。
すごくわかりやすいです。pythonで機械学習のスキルを身につけたい方におすすめです。
値段は時期によって違いますが、かなり、良心的な価格になっています。詳しくはこちらをご覧ください。