文字列の取り扱いと型変換

文字列の定義と出力

次のプログラムを実行したときに出力される3文字は何か?

# coding: shift_jis
hrgn = "あいうえおかきくけこさしすせそたちつてとなにぬねの"
hrgn = hrgn + "はひふへほまみむめもやゆよらりるれろわをん"
print(hrgn[10], hrgn[1], hrgn[-1])

ひらがなのテキストファイル

答え:さ い ん(白3文字,スペース区切り)



2数の和(重要)

2つの整数a,bを標準入力させ,その2数の和を出力するプログラムを作成しなさい。

誤答例sum2.py

# coding: shift_jis
print("2つの数(整数)を入力してください。")
a = input()
b = input()
print(a, "+", b, "=", a + b)
H:\prg1\02> python sum2.py↵
2つの数(整数)を入力してください。
4
6
4 + 6 = 46

Python 3では,input()で代入した変数aには数値としてではなく,文字列として代入される。 変数bも同様で,文字列同士を演算子+で計算した結果は,文字列aと文字列bの連結となる。

この問題では,次の解答例のように組み込み関数int()を用いて, input()で入力された文字列(文字列型)を数値型に型変換してから変数a,bにそれぞれ代入するとよい。

解答例sum2.py

# coding: shift_jis
print("2つの数(整数)を入力してください。")
a = int(input())
b = int(input())
print(a, "+", b, "=", a + b)
H:\prg1\02> python sum2.py↵
2つの数(整数)を入力してください。
4
6
4 + 6 = 10


補足)誤った文字列の置換例

今,cakeという文字列の変数wordが定義されている。 この文字列内のkをrに換えて,careに書き換えたいとき, Pythonでは次のような表現をすることはできないので,十分注意してほしい。

word = "cake"
word[2] = 'r'   #誤り