AtCoderで茶色を目指す 26日目

7:20起床。久しぶりにこんな時間に起きちまったぜzzz

本当は5時起きが目標なんです。目標達成のために、夜は10時就寝!それまでに目標を達成しておく!

よし!本日も頑張る!

目標

 次回のコンテストは日曜日です。明日をチートデイにする予定なので、コンテストの日を含めて残り3日で44問のB問題を解きます。

備忘録

数字に添字は使えない話

 久しぶりにエラーコードを見たので備忘録しようと思います。ちなみに、これまでのブログで書いたかは覚えてないけど、何回か見たことのあるエラーでした。エラーコードはこちら↓

TypeError: 'int' object is not subscriptable

 そして、エラーを吐いたコードはこちら↓

 
a,b = map(int, input().split())
count = 0
for i in range(a,b+1):
if str(i) == str(i[::-1]):
count+=1
print(count)

 原因となるのは、上から4行目です。私の頭の中では、「数値のiを文字列のstr型にして、回文の判定をしよう」と言う感じです。ちなみに、回文とは「初めから読んでも、終わりから読んでも同じ文字列になる文」のことです。 
 本題に戻ります。このコードでiは文字列の扱いを受けてると思いましたが、少しずれていました。問題は変数iに添字を使ったことです。そして、エラーコードは「int型に添字使うんじゃないよ!」と言っております。つまり、str型に型変換する前に文字列の扱いをしたのでエラーになりました。

x = str(i)
if x == x[::-1]:

 先に、変数iをstr型に変換すれば解決。

 こちらを参考にしました。

qiita.com

反省

 B問題20問解きました。WAをよく出したりして、調子が上がらなかったけどよく頑張った!良き秋分の日でした。
 勉強中にテンションが上がらない時は、曲を聞きながら勉強しています。宇多田ヒカルさんの「パクチーの唄」が流れて、意識が曲に全ぶりされました。ぱく、、ちー???

参考サイト

【Python】TypeError: 'int' object is not subscriptable が出たとき - Qiita