リストからすべての数字を集計する関数を作成しようとしています。 7、私のコードであり、ここでは7の後に合計し続け:リスト内の6から7以外の数字の合計
def sum67(nums):
i = 0
sum = 0
while i < len(nums):
k = 0
if nums[i] != 0:
sum += nums[i]
i += 1
if nums[i] == 6:
for j in range(i + 1, len(nums)):
if nums[j] != 7:
k += 1
if nums[j] == 7:
k += 2
i += k
テストケース6と7を含むまでアップ及び進行番号は他の数が合計に追加されている間無視され、後の数であることを示し7も加算されますが、何らかの理由で6が合計されなかった後の最初の7の後に7があります - これは私が望むものではなく、なぜ起こっているのかわかりません。助言がありますか?
テストケースの結果:
[1, 2, 2 Expected: 5. My result: 5 (OK)
[1, 2, 2, 6, 99, 99, 7] Expected: 5. My result: 5 (OK)
[1, 1, 6, 7, 2] Expected: 4 My result: 4 (Chill)
[1, 6, 2, 2, 7, 1, 6, 99, 99, 7] Expected: 2 My result: 1 (Not chill)
[1, 6, 2, 6, 2, 7, 1, 6, 99, 99, 7] Expected: 2 My result: 1 (Not chill)
[2, 7, 6, 2, 6, 7, 2, 7] Expected: 18 My result: 9 (Not chill)
`
正しいテストは 'のn == 6'なく' nが6'あります。それは小さな整数のために働く実装依存の詳細です。 – VPfB
ありがとう、変更されました – user1620443