I am working on the following Python list exercise from codingbat.com:
Given an array of ints, return the sum of the first 2 elements in the array. If the array length is less than 2, just sum up the elements that exist, returning 0 if the array is length 0. Examples:
sum2([1, 2, 3]) → 3 sum2([1, 1]) → 2 sum2([1, 1, 1, 1]) → 2
My solution below works:
def sum2(nums):
if len(nums)>=2:
return nums[0] + nums[1]
elif len(nums)==1:
return nums[0]
return 0
But I wonder if there's any way to solve the problem with fewer conditional statements.
If you can't use sum, one possible solution uses exceptions:
Catch the error and short-circuit the summation if an element doesn't exist. Easier to ask forgiveness than permission, as they say.
There is. Two elements of the solution - builtin function
sum
and lists's slices:try this: