使用循环选择替代数字

时间:2015-09-18 22:27:40

标签: python python-2.7 python-3.x

如何使用循环选择其他所有数字?假设我们有一个8位数的序列,12345678我们如何从右边开始选择备用数字并添加它们?因此我们必须添加8 + 6 + 4 + 2。

3 个答案:

答案 0 :(得分:3)

reduce(sum,a[-1::-2])向老师解释,在引擎盖下,过滤器和总和都是循环

另见

https://docs.python.org/2/tutorial/introduction.html#lists

http://pythoncentral.io/how-to-slice-listsarrays-and-tuples-in-python/

https://docs.python.org/2.3/whatsnew/section-slices.html

回答你的其他问题

def isvalid(c):
  return not (sum(c[-1::-2])+sum(map(int,"".join(map(str,(2*x for x in c[-2::-2] ))))))%10

def get_cc_num():
   while True:
       try: return map(int,raw_input("enter 8 digit number"))
       except ValueError:print "Invalid number"


print isvalid(get_cc_num())

答案 1 :(得分:1)

使用python的内置range([start], stop [, step])方法。

您可以按照-2的步长从8向后迭代到这样:

total=sum(range(8, 0, -2))

或者以1为步长从1到8,如下所示:

total=sum(range(2, 9, 2))

答案 2 :(得分:0)

sum([int(x) for i, x in enumerate(reversed('12345678')) if i % 2 == 0]