文字列
今回の講座では文字列を扱っていきます。前回データ型の説明で触れましたが、もう一度文字列について復習しましょう。
文字列を扱う際はダブルクォーテーション ( ” ) かシングルクォーテーション ( ‘ )で囲む
例 : str = “Hello World!” もしくは str = ‘Hello World!’
はい、ちゃんと覚えてます!
文字列の扱い
ここまでは基礎の基礎です。ここからは少し、応用的な文字列の扱いについて学びましょう。
さて、文字列を扱う場合前述のように、ダブルクォーテーション ( ” ) かシングルクォーテーション ( ‘ )で囲みます。
では、それらを文字列中に入れるとどうなるでしょう。
一例として英会話でよく用いられる「I’m fine」を、シングルクォーテーションで囲い出力してみましょう。
print('I'm fine')
SyntaxError: unterminated string literal (detected at line 1)
と表示されたと思います。
「終了していない文字列リテラル」つまり、文字列がシングルクォーテーション、ダブルクォーテーションで囲まれていないことを示しています。
じゃあ文字列内にシングルクォーテーションとダブルクォーテーションは使えないってことですか?
いいえ、これらを使うには「エスケープシーケンス」と呼ばれる記述法を用いる必要があります。
エスケープシーケンス
コンピュータシステムにおいて、通常文字列では表せない特殊な文字、機能を特定の文字の並びにより表したもの
代表的なエスケープシーケンスとして、以下のようなものが挙げられます。
\’ or ¥’ | シングルクォーテーション |
---|---|
\” or ¥” | ダブルクォーテーション |
\n or ¥n | 改行 |
\t or ¥t | タブ文字 |
では、エスケープシーケンスを用いて先ほどの「I’m fine」を出力してみましょう。
print('I\'m fine')
出来ました!
文字列の演算子
前回、数値の算術演算子について学びましたが、文字列でも使うことができる演算子があります。
文字列でも計算ができるんですか?
いえ、文字列で用いれる演算子は主に「+」と「*」の二つで、どちらも文字列を操作することができます。
演算子 | 説明 | 例 |
---|---|---|
+ | 文字列同士を結合する | ‘Hello’ + ‘World!’ → ‘Hello World!’ |
* | 文字列を繰り返す | ‘Hello’ * 3 : ‘HelloHelloHello’ |
・「+」演算子を用いる場合、文字列同士でしか使用することができない。
NG例 : ‘Hello’ + 2
・「*」演算子を用いる場合、「文字列 * 整数値 」か「整数値 * 文字列」の形でのみ使用することができる。
NG例 : 「文字列 * 文字列」, 「文字列 * 小数点を含む数値」
入出力
初回からprint()という関数を使用していますが、あらためて簡単に説明していきます。
文字列や数値といったデータを画面に表示してくれる関数ですよね!
はい、printの後に続く丸括弧の中に記述したデータを出力してくれます。
前回の練習でも用いましたが、丸括弧内で演算を行い、その結果を出力することもできます。
また変数、値を「,」で区切ることにより、複数個の変数、値を同時に出力できます。
print関数
print()の丸括弧内に記述した変数、データを画面に出力する関数。
丸括弧内で演算を行い、その結果を出力できる。
変数、値を「,」で区切ることにより、複数個の変数、値を同時に出力できる。
出力があるということは、入力もあるのですか?
はい、入力にはinput関数を用います。
input関数を用いることで、キーボードからの入力をプログラム中で受け取ることができます。
実際の動きを見るため、下のコードを入力、実行し、文字を打ったらエンターキーを押してみてください。
string = input('文字を入力してください:')
print('あなたが入力した文字は'+string+'です。')
自分で入力した文字が出力されました!
先ほどのプログラムでは、input関数で受け取った文字列を変数stringに代入。
string変数を「+」演算子を用いて両端の文字列と結合し、出力するプログラムです。ここで一つ注意しなければならないのは、input関数で受け取った入力は、たとえ数字であったも文字列として扱われます。
input関数
キーボードからの入力をプログラム中で受け取る関数。
入力された文字列を格納する変数 = input(‘入力時に出力する文字列’)
のように記述。
受け取った値は、数字でも文字列として扱われる。
演習問題
応用問題として、入出力関数を用いて自己紹介文を出力するプログラムを書いてみましょう。
名前、年齢、趣味の変数を宣言し、それぞれの変数にinput関数で受け取った文字列を代入してください。
また、出力に用いるprint関数は一度だけ使用してください。
クリックして解答例をみる
name = input('名前を入力してください:')
age = input('年齢を入力してください:')
hobby = input('趣味を入力してください:')
print('私の名前は',name,'です。',age,'歳で、趣味は',hobby,'です。')
※あくまでも解答例であり、この記述法のみが正解ではありません。