【Python CheckiO 题解】Even the Last


CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。

CheckiO 官网:https://checkio.org/

我的 CheckiO 主页:https://py.checkio.org/user/TRHX/

CheckiO 题解系列专栏:https://itrhx.blog.csdn.net/category_9536424.html

CheckiO 所有题解源代码:https://github.com/TRHX/Python-CheckiO-Exercise


题目描述

【Even the Last】:给你一个整数数组,需要你把具有偶数索引的元素相加(0,2,4 …),然后把相加后得到的数与最后一个元素相乘,不要忘记,第一个元素的索引是0,如果传入的是一个空数组,则应该返回0。

【链接】https://py.checkio.org/mission/even-last/

【输入】:一个整数列表

【输出】:运算得到的结果(整数值类型)

【前提】:0 ≤ len(array) ≤ 20;all(isinstance(x, int) for x in array);all(-100 < x < 100 for x in array)

【范例】

checkio([0, 1, 2, 3, 4, 5]) == 30
checkio([1, 3, 5]) == 30
checkio([6]) == 36
checkio([]) == 0

代码实现

def checkio(array):
    """
        sums even-indexes elements and multiply at the last
    """
    sum = 0
    if len(array) == 0:
       return 0
    else:
       for i in range(len(array)):
          if i % 2 == 0:
              sum = sum + array[i]
       return sum * array[-1]

#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
    print('Example:')
    print(checkio([0, 1, 2, 3, 4, 5]))
    
    assert checkio([0, 1, 2, 3, 4, 5]) == 30, "(0+2+4)*5=30"
    assert checkio([1, 3, 5]) == 30, "(1+5)*5=30"
    assert checkio([6]) == 36, "(6)*6=36"
    assert checkio([]) == 0, "An empty array = 0"
    print("Coding complete? Click 'Check' to review your tests and earn cool rewards!")

大神解答

大神解答 NO.1

def checkio(array):
    return sum(array[i] for i in range(0, len(array), 2))*array[-1] if len(array) >0 else 0

大神解答 NO.2

def checkio(array):
    sum = 0
    #evens = array[::2]
    for i in array[::2]:
        sum += i
    return sum*array[-1] if array else 0

大神解答 NO.3

def checkio(array):
   return sum(array[::2]) * array[-1] if array else 0
发布了135 篇原创文章 · 获赞 475 · 访问量 44万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览