Python入門⑤~文字列~
文字列とは
前回の「Python入門④~四則計算・算術演算子・round関数~」では数値を扱いました。
今回は文字列を扱います。
「String型」と呼ばれることもあります。
文字列をprint関数で出力する
大事なルールは「'文字列'」もしくは「"文字列"」というように、
シングルクォーテーションもしくはダブルクォーテーションで囲む必要があります。
どちらでも大丈夫です。
print ( 'test' )
とすると、「test」という文字列が表示されます。
エスケープ
このような場合、エラーが起こります。
print ( 'I don't know' )
どのように表示されるかというと、
SyntaxError: unterminated string literal (detected at line 1)
となっていました。
雑な翻訳としては、「文字列がちゃんと終わっていないよ」ということです。
今回は文字列の途中で「don't」が入ってしまったので、
「don'で終わらないといけないのに、まだ文字列が続いているよ」ということです。
そのため、英文やシングルクォーテーションを多用する方は、
ダブルクォーテーションで囲む癖を付けた方が楽かもしれません。
とはいえ、ダブルクォーテーションを使わずとも済ませることもできます。
それが「エスケープ」です。エスケープとは、「通常だとプログラムが働いてしまう特殊な記号を、ただの文字列として認識させること」です。
エスケープしたい場合は「バックスラッシュ」を挟みます。
次のように入力すると、エラーは起きず、正しく表示されます。
print ( 'I don\'t know' )
改行方法①~バックスラッシュn~
文字列を改行させたい場合は、「\n」を改行したいところへ入力します。
print ( 'はじめまして。\n鈴木です。')
とすると、改行されて表示されますね。
改行方法②~トリプルクォーテーション~
なるべくコードと表示結果の見た目を一緒にしたい、という場合もあると思います。
その場合は、トリプルクォーテーションを使います。
この場合、コード内の改行がそのまま表示結果にも反映されます。
print ( '''はじめまして。
鈴木です。
今日は良い天気ですね。''')
とすると、改行されて表示されますね。
改行方法③~インデント~
上記も良いのですが、
1~3段目の文頭が同じ位置になってしまいます。
コードの視認性が落ちるので、2~3行目にはインデントを付けたいですよね。
かといって、次のようにすると、表示結果にも文頭に空白が生まれてしまいます。
print ( '''はじめまして。
鈴木です。
今日は良い天気ですね。''')
ではどうすれば良いかというと、①と②を組み合わせるようなやり方です。
・各行をシングルクォーテーションもしくはダブルクォーテーションで囲む
・各行をコード内で改行する
・「バックスラッシュn」を各行末に入れる
print ( 'はじめまして。\n'
'鈴木です。\n'
'今日は良い天気ですね。')
こうすると、コードも表示結果もきれいですね。
結合
文字列同士を結合させたい場合は、「+」を使います。
print ( 'はじめまして。' + '鈴木です。' )
とすると、「はじめまして。鈴木です。」と表示されます。
繰り返し
文字列を何度も繰り返したい場合は、「*」を使います。
print ( 'はじめまして。' * 3 )
とすると、「はじめまして。はじめまして。はじめまして。」と表示されます。
以上が文字列のお話でした。
Discussion