AtCoderで茶色を目指す 5日目と6日目

5日目の途中まで書いていたんですが、データが無くなってしましました(泣)。

なので、今回は5、6日目ということで書いていきます。

ちなみに、5日目は午前中から勉強が進み、午後からはダラダラしてました。午後からも頑張れる方法を探しておきます。

 

7:00起床。ちょっと布団が恋しくて出れなかったけど、這い出ました。

まずは部屋を掃除します。

本日も頑張ります!

本日の目標

本日の目標はpythonの学習の4章を終了することです。午後から用事があるけど、午前中に終わらせる勢いで頑張ります。

 

備忘録

in演算子の使い方

atcoder.jp

こちらの問題を解いてる際に次のエラーにぶつかりました。

”TypeError: argument of type 'int' is not iterable”

「TypeError:タイプ'int'の引数は反復可能ではありません」だそうです(直訳)。

要は「int型使うのはちょっと・・・」ってことだと思っておきます。

原因

下は実際に私が書いたコードです。

n = int(input())
if 3 in n or n%3 == 0:
print("YES")
else:
print("NO")

エラー文をコピペしてググりました。

hakomiyo.hatenablog.com

どうやら、in演算子に原因があるようです。

in演算子はint型の処理ができないそうです。型変換するなどしてエラーを回避します。

解決

次のコードで解決できました。

n = int(input())
#文字列(str)として処理する
if "3" in str(n) or n%3 == 0:
print("YES")
else:
print("NO")

ちなみに、リスト型の場合は中身がint型でも問題ないそうです。

というか、nを文字列str型で宣言すれば済む話でした。。。

大文字と小文字の区別

大文字かどうかの判定はispperメソッドで、小文字かどうかの判定はislowerメソッドで行います。

www.javadrive.jp

反省

AtCcoderの問題を解きながら思ったのですが、”YES"や”NO"が全部大文字の時もあれば、問題によって”Yes"や”No”になるのが憎たらしく感じてしまいます(笑)。もっと読解力をつけて、しょうもないミスを回避したいところです。

参考サイト

【python】in演算子を使う場合の注意点 - hakomiyo’s diary

Python | 文字列の中の文字が大文字か小文字かを判定する(islower, isupper, istitle)