Python独学ならTech-Joho TOP > Python問題集 > 文字列と乗算演算子*
問題
下のプログラムは実行するとエラーが発生する。
エラーが出ないように、 fix hereというコメントが付いた行を修正せよ。
実行される処理は、文字列の繰り返しになるようにせよ。
item1 = 9.0 #fix here
item2 = '99'
ans = item1 * item2
print(ans)
下の欄に回答を入力し、「回答完了」を押して下さい!回答例が表示されます。
実行結果の例
文字列の繰り返しが実行され99が9回繰り返されます。
999999999999999000
回答例
繰り返すという意味の*演算子には、整数が必要です。
item1 = 9 # fix here
item2 = '99'
ans = item1 * item2
print(ans)
解説
初期状態だと、このようなエラーが発生します。
Traceback (most recent call last): File "", line 1, in TypeError: can't multiply sequence by non-int of type 'float'
シークエンス(文字列等、何か集まった系のクラス)は、整数(int型)以外の数値での乗算(*)ができませんといっています。
ちなみに、この場合の乗算演算子(*)は、*の右か左の文字列を*の逆側の整数の回数繰り返すという機能をもっています。
これに従い、9.0という小数(float型)と9という整数(int型)に変更しました。
print(type(9.0))
print(type(9))
Pythonにおける乗算(multiplication)演算子の使い方についてはこちらをご覧ください。
Python3 reference *演算子