Atcoderでpythonを練習中にでたエラーについてはアウトプットのため、まとめる
修正前コード
修正前コード
# mapオブジェクトをリスト化
num_list = list(map(int, input().split()))
# 1の個数をカウントして出力
print(num_list.count(1))
入力
101
出力
0
原因
input().split() は スペース区切りの入力をリストとして処理する。
しかし111 のように スペースがない場合 は、リストではなく そのまま "111" という文字列 になる。
したがって map(int, input().split()) は "111" を数値に変換しようとし、num_list = [111] となる。
つまり、111 はリスト [1, 1, 1] にはならず [111] になり、count(1) しても 0 になる。
修正後コード
修正後コード
num_list = [int(x) for x in input()] # 文字列を1桁ずつリスト化
print(num_list.count(1)) # 1の個数をカウント
入力
101
出力
2