@click="rollDice"
错误是由最后一个def sum13(nums):
summ = 0
for i in range(1, len(nums)):
if nums[i] != 13 and nums[i-1] != 13:
summ += nums[i]
if nums[0] != 13:
summ += nums[0]
return summ
产生的,我不明白为什么
答案 0 :(得分:4)
这意味着len(nums) == 0
。尝试类似
if nums and nums[0] != 13:
答案 1 :(得分:0)
如果您使用Python enumerate
(而不是循环计数器)来跟踪数组中的位置,则可以简化代码以使其具有单个if
语句,并消除错误的长度。列表为零:
def sum13(nums):
summ = 0
for ix, num in enumerate(nums):
if ix == 0 or (num != 13 and nums[ix-1] != 13):
summ += num
return summ
nums
为空时,for
循环根本不会执行。
由于Python在if
语句的评估中使用“提前终止”,这意味着,一旦检测到ix == 0
为True,当{ {1}}为0。