3-1. 文字列
Pythonでは、主にシングルクォート('xxx')やダブルクォート("xxx")で囲まれた情報を文字列として取り扱います。文字列の型はstr型になります。
▼プログラミングセル3-1.
print('Hiroshima')
print("Shudo")
print(type("Shudo"))
a="University"
print(a)
3-2. 演算子による文字列の操作
演算子+を使って文字列を連結することができます。また、演算子*を使うと文字列を繰り返すことができます。クォートで囲まれた文字列同士を連結する+は省略することもできます。ただし、文字が格納されている変数を連結する場合は+を省略することはできません。
print("Hiro"+"Shima")
print("HSU"*3)
print("Hiro" "Shima")
▼プログラミングセル3-2.
a="Hiro"
b="Shima"
print(a b) #エラー
3-3. 文字列と数値の取り扱い(エラー)
文字列を数値のように取り扱うことはできません。同様に、数値を文字列のように取り扱うこともできません。これは非常によく発生してしまうエラーなので特に注意しておきましょう。
a=100
print(a+"点") #エラー
a="100"
print(a/2) #エラー
▼プログラミングセル3-3.
a="100.123"
print(a//2) #エラー
3-4. 文字列と数値の取り扱い(変換)
文字列と数値を同時に取り扱いたい場合、int関数やfloat関数、str関数を使って、数値(整数、浮動小数点数)や文字列に統一して操作します。
a=100
print(str(a)+"点") #文字列として連結
a="100"
print(int(a)/2) #整数として算術
▼プログラミングセル3-4.
a="100.123"
print(float(a)/2) #浮動小数点数として算術
3-5. f文字列
変数の値を文字列を一緒に表示しようとした場合、通常は以下のようにカンマ区切りで並記したり(空白スペースが入る)、str変換と演算子+で連結したりして表示します。
a=100
b=85
print("数学の点数は", a, "点であり、国語の点数は", b, "点でした")
▼プログラミングセル3-5.
a=100
b=85
print("数学の点数は"+str(a)+"点であり、国語の点数は"+str(b)+"点でした")
▼プログラミングセル3-6.
a=100
b=85
print(f"数学の点数は{a}点であり、国語の点数は{b}点でした")
▼プログラミングセル3-7.
a=100
b=85
print(f"数学の点数は{a}点であり、国語の点数は{b}点でした。平均点は{(a+b)/2}になります")
3-6. 文字列の長さ
len関数を用いると文字列の長さ(文字数)を整数値として取得できます。このlen関数は利用する機会が多いので注意しておきましょう。
print(len("Hiroshima"))
▼プログラミングセル3-8.
a="Shudo"
print(len(a))
3-7. クォートの利用
クォート("や')で囲まれた文字列の中で同じクォートを利用したい場合、\や\をクォート記号の前に記入するとクォートを1つの文字として扱います。
▼プログラミングセル3-9.
print("Hi\"r\"oshima")
print('Hirosh\'i\'ma')
3-8. 文字列内での改行
クォート("や')で囲まれた文字列の中で改行したい場合、\nや\nを使用します。
▼プログラミングセル3-10.
print("Hiroshima\nShudo University")
3-9. 複数行の表示
三連引用符("""xxx""" や '''xxx''')を利用すると、記述した通りに改行されます。なお、改行したくない文末に\や\を記入すれば改行しなくなります。
▼プログラミングセル3-11.
print("""\
Hiroshima
Shudo
University\
""")
3-10. インデックスによる文字列情報の取得
文字列からインデックス([数字]という添字)を使って文字列情報を取得することができます。インデックスは0から始まります。添字[0]だと最初の文字、添字[1]だと2番目の文字、添字[2]だと3番目の文字といった具合です。インデックスにはマイナス値も指定できます。添字[-1]は文字列の一番最後の文字、添字[-2]は最後からの2番目の文字といった具合です。なお、添字の指定した数が実際の数をオーバーする場合はエラーになる点に注意してください。
a="Hiroshima"
print(a[0])
print(a[1])
print(a[2])
a="Hiroshima"
print(a[-1])
print(a[-2])
print(a[-3])
a="Hiroshima"
print(a[15]) #エラー
▼プログラミングセル3-12.
a="Hiroshima"
print(a[-15]) #エラー
3-11. スライスによる文字列情報の取得
文字列からスライス([数字:数字]という添字)を使って文字列情報を取得することができます。スライスを使うことで添字[X:Y]の部分文字列(開始値Xから始まり、終了値Yの1つ前まで)を取得することができます。開始値の文字は常に含まれ、終了値の文字は含まれない点に注意してください。指定した数が実際の数をオーバーした場合は、端から自動的に取得してくれます。また、先頭もしくは最後を指定したい場合は数値を省略することもできます。なお、添字[X:Y:Z]と指定した場合、X~Yの部分文字列からZ間隔で要素を取り出します。
▼プログラミングセル3-13.
a="Hiroshima"
print(a[0:2])
print(a[4:6])
print(a[5:15])
print(a[-15:15])
print(a[:6])
print(a[-5:])
print(a[:])
print(a[::2])
print(a[1::3])
3-12. 文字列の不変性
文字列は変更することができない不変なものである点に注意してください。文字列を変更したい場合は、変更後の文字列を新しく別に作成する必要があります。
a="Python"
a[0]="C" #エラー
▼プログラミングセル3-14.
a="Python"
b = "C"+a[1:]
print(b)
問題
以下の問題の解答となるプログラムを記述しましょう。
〒731-3195
広島県広島市安佐南区大塚東1-1-1
広島修道大学