文字列と乗算演算子*

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 *演算子

Author: 管理

tech-joho.infoの管理人です。いろいろな技術について勉強しています。