python
1def sum13(nums): 2 if not nums: 3 return 0 4 total = 0 5 for i in range(len(nums)): 6 if nums[i] != 13: 7 if nums[i-1] != 13: 8 total += nums[i] 9 else: 10 total += 0 11 12 return total
パラメーターのnumsにいくつかの数字が入るときに合計を求めたいです。
その時、数字が13だった場合は13とその次の数は合計にカウントしないという条件があります。
私がこのプログラムを実行したら下のようなエラーが出ました。
File "C:\Users\Miyu Oyama\CS-1410\cs1410_week01_review\cs1410_week01_review_07\tests\test_problems.py", line 32, in test_04 self.assertEqual(ans, correct_answer, "You returned {0}. You should have returned {1}. Check your logic and try again.".format(ans, correct_answer)) AssertionError: 3 != 4 : You returned 3. You should have returned 4. Check your logic and try again.
このメッセージによるともしnumsパラメーターに[1, 2, 13, 2, 1, 13]の順に数字が入っているときに私のプログラムだと合計が4になるべきなのに3になってしまうといわれました。
何度試しても同じようなエラーが出てしまうのですが、どうして13の前の1がカウントされないというエラーが起こるのか教えてほしいです。
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/24 23:54
2021/07/25 02:15
2021/07/25 17:44