Python入門 pythonで文字列操作
Python入門 pythonで文字列操作
Pythonでの文字列の扱いは少し癖があります。
今回はその文字列の扱いを少し詳しく見ていきましょう。
Pythonのサンプルプログラムを作成する
以下のpythonファイルを作成してみましょう。
【sample3-1.py】
s1 = "aaa" print s1
上記のファイルが作成できたら保存し、実行してみましょう。
# python sample3-1.py aaa
「aaa」という文字列を「s1」という変数に代入し、それを出力しています。
以下の記述を追加してみましょう。
s2 = "10" + "20" print s2 i1 = 10 + 20 print i1
実行すると
1020 30
と表示されます。
「10」と「20」をダブルクォテーションで括った文字列は文字列結合されますが、
「10」と「20」という数値は足し算されて出力されます。
ダブルクォテーションで括ると文字列を表し、括らないと数値や変数を表すのです。
ちなみにシングルクォテーションで括っても文字列結合されます。
では以下の場合はどうでしょうか?
s3 = "10" + 20
2つのオペランドの内、1つは文字列、1つは数です。
この場合、以下のようにエラーが発生します。
TypeError: cannot concatenate 'str' and 'int' objects
「concatenate」は「文字列結合」といったような意味です。
「str」は文字列、「int」は整数を表します。このように違った型のオブジェクトを結合することはできないということなのですね。
この場合、20をクォテーションで括ってあげればよいのですが、もう一つの方法として以下のような書き方もできます。
s3 = "10" + str(20)
「str」関数を用いることで、括弧内の値を文字列として扱うことができるのですね。
では少しパターンを変えて、以下のようにしてみましょう。
s4 = "AAA" "BBB" + "CCC" print s4
「AAABBBCCC」が出力されます。
今回「AAA」と「BBB」の間には「+」記号を入れていませんが、それでも文字列結合はされました。
つまり、スペース区切りで文字列を並べると文字列結合してくれるのです。
では最後に日本語を扱ってみましょう。
s5 = "あいうえお" "abcde" "かきくけこ" print s5
「DeprecationWarning: Non-ASCII character ‘\xe3’ in file test2_str.py on line 1, but no encoding declared;~」
のようなエラーが表示されます。前回にも同様のエラーがでてきましたね。
そうです、これは、
「全角の文字列(ASCII文字ではない文字列)が指定されたにも関わらず、文字コードが指定されていない」
といった意味のエラーです。
このようにpython内でASCII以外の文字を使用する場合は、文字コードを1行目に指定してあげる必要がありました。
# coding: utf-8
「あいうえおabcdeかきくけこ」と表示されればOKです。
まとめ
今回はPythonでの文字列の扱いを確認しました。合わせて変数の概念も登場していますので、そちらも押さえておきましょう。次回は引き続き文字列の扱いについて説明をしていきます。