本日はPythonで文字列を書く方法について解説していきます。
文字列はテキストベースのデータ処理において基本的な要素であり、その扱い方を理解することはプログラミングの基本です。
今回は特に、文字列内での改行やスペース、文字数のカウントに焦点を当ててみたいと思います。
Pythonの文字列操作には多くの便利なメソッドが用意されていますが、その中でもlen
を使った文字カウントは頻出のメソッドです。
また動画もあるので必要に応じて活用してください。
Pythonで文字列を書くときにやること
基本的には「””」もしくは「”」の間に文字を書くことで文字として認識されます。
そのため数字も”100″とすれば文字として1と0と0が羅列したものと処理されます。
test1 = "aaa"
print(test1) # aaaと表示される
print("100" + "100") # 100100と表示される
また「””””””」もしくは「”””」の間に書いた文字については改行とスペースを認識して、書かれた通りの文章を表示させることが可能です。
test1 = "aaa"
test2 = """
aaa
bbb
"""
test3 = """
aaa
bbb
"""
print(test1, test2, test3, sep=",")
特に日本語は改行やスペースを多用しますので、書き方の違いは最初から練習しておくようにしましょう。
また先ほど例を見せましたが、文字についても+を使うことで文字同士を連結させることができます。
test1 = "hello"
test2 = "taro"
print(test1 + " " + test2) # hello taroと表示される
改行やスペースを1個の文字として作って+を使った連結で表現することでもOKです。
話は変わってWebアプリでは文字数をカウントしたいときがあります。
Twitterでは無料版は140文字までしか入力することができませんので、プログラムでユーザーが入力した文字数を監視する必要がありますね。
Pythonではlenというメソッドで文字数を数えることが可能です。
test1 = "hello taro"
test2 = len(test1)
print(test1, test2, sep=",") # hello taro, 10 と表示される
Pythonで文字列⇔バイト型を変換する方法
文字列の延長線上でバイト型というのをお話しないといけません。
そもそも私たちが使っている日本語のような言葉はコンピューターは理解できません。
バイナリーデータといって0101010のような数字の羅列に変換することで私たちの言葉を理解しています。
このバイナリーデータにバイト型の文字が活用されています。
例えば以下のような文字列があったとしてバイト型にはencodeメソッドで変換することができます。
test1 = "hello taro"
test2 = test1.encode()
print(test2) # b'hello taro' と表示される
このbから始まる文字列をASCIIと呼んだりしてこれがバイト型になります。
逆に文字列に変換することもdecodeメソッドというものでできます。
test1 = b'hello taro'
test2 = test1.decode()
print(test2) # hello taro と表示される
また文字の中でも記号もバイト型に変換する必要があり、例えば以下のようなリストがあったとします。
リスト型はbytesメソッドというもので変換します。
test1 = [1,2,3]
test2 = bytes(test1)
print(test2) # b'\x01\x02\x03' と表示される
「,」も実は変換すると違うものに変わるんですね。
ちなみに今自分が扱っているデータが何の種類かを確認する時はtypeメソッドの引数に確認したいデータを入れると分かります。
<class 〇〇>となっている〇〇の部分がデータの種類になっていて、上図だとバイト型だと分かります。
他の種類も以下のように確認できます。