謎のエラーに遭遇。
例外が発生しました: TclError
bad argument "33333333333333333333333333333333333333333333333333333333333333333333333
ええええ...
何だこれ...
書いていたコード
十分に再現可能なため、一部だけ書きます。
python
interval = input("インターバル秒数")
interval = 1000*interval
ユーザーにインターバル秒数をinput
で書き込ませ、それをミリ秒に変換するものです。
先ほどのエラーはinput
にて3を入力した際に生じるエラーでした。2を入れたときは、2222222222222222222222....とエラーが変わっていました。
原因の特定と修正
デバッグしていたら、interval
のデータ型が目に入りました。string
型になっていました。int
型に修正して正確に動きました。
python
interval = input("インターバル秒数")
interval = 1000*int(interval)
連番の謎
調べてみたところ、文字列に対しても乗算が定義できるようです。
ABC*4なら、ABCABCABCABCになるとのこと。エラーでは1000桁の連番が出力されてしまったようですね。。。
データ型には気を付けよう!