1. ホーム
  2. python

[解決済み] TypeError: 'int'オブジェクトは添え字がつけられません。

2022-03-03 15:34:09

質問

数秘術によるラッキーナンバーを教えてくれる簡単なプログラムを作ろうとしています。このエラーが何度も出てしまいます。

File "number.py", line 12, in <module>
    sumln = (int(sumall[0])+int(sumall[1]))
TypeError: 'int' object is not subscriptable

私のスクリプトは

birthday = raw_input("When is your birthday(mm/dd/yyyy)? ")
summ = (int(birthday[0])+int(birthday[1]))
sumd = (int(birthday[3])+int(birthday[4]))
sumy= (int(birthday[6])+int(birthday[7])+int(birthday[8])+int(birthday[9]))
sumall = summ + sumd + sumy
print "The sum of your numbers is", sumall
sumln = (int(sumall[0])+int(sumall[1]))
print "Your lucky number is", sumln`   

解決方法は?

ある数字の桁を合計したい場合、その方法のひとつは sum() + ジェネレータ式

sum(int(i) for i in str(155))

あなたのコードを少し修正しました。 sum() ということで、ちょっと見てみてください。

birthday = raw_input("When is your birthday(mm/dd/yyyy)? ")
summ = sum(int(i) for i in birthday[0:2])
sumd = sum(int(i) for i in birthday[3:5])
sumy = sum(int(i) for i in birthday[6:10])
sumall = summ + sumd + sumy
print "The sum of your numbers is", sumall
sumln = sum(int(c) for c in str(sumall)))
print "Your lucky number is", sumln