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での文字列の扱いを確認しました。合わせて変数の概念も登場していますので、そちらも押さえておきましょう。次回は引き続き文字列の扱いについて説明をしていきます。

Python入門シリーズ一覧

  • Python入門 pythonとは?
  • Python入門 pythonでHelloWorld
  • Python入門 pythonで文字列操作
  • Python入門 pythonで文字列操作その2
  • Python入門 pythonで日付の操作
  • Python入門 MacにPython3.5.1をインストールする手順まとめ
  • Python入門 SQLiteに接続する
  • Python入門 Getリクエスト送信(requestsを利用)
  • Python入門 MySQLに接続する
  • Python入門 Djangoを使う(その1)
  • Python入門 Djangoを使う(その2)
    • このエントリーをはてなブックマークに追加

    PAGE TOP