python小练习之一

下面的练习本身不难,比如打印1到10,计算1+2+3+...+100 ,最后一个是计算 1-2+3-4...-100
用了类的方法实现
用了列表生成器
用“高级”一丢丢的写法来实现这些小练习

# coding:utf-8

class Num(object):

    def __init__(self, calNum):
        self.calNum = calNum

    @property
    def seqNum(self):
        i = 0
        while i < self.calNum:
            i += 1
            yield i

    @property
    def sumNum(self):
        return reduce(lambda sum, x: sum + x, xrange(self.calNum))

    @property
    def oddNum(self):
        return [ num for num in range(self.calNum) if num % 2 != 0 ]

    @property
    def evenNum(self):
        return [ num for num in range(self.calNum) if num % 2 == 0 ]

    @property
    def crossSumNum(self):
        sum = 0
        for i in xrange(self.calNum):
           if i % 2 == 0:
               sum = sum - i
           else:
               sum = sum + i
        return sum


def Main():
    print "======================="
    print u"输出1,2,3...10"
    print "======================="
    n = Num(10)
    for i in n.seqNum:
        print i,
    print "\r"
    print "======================="
    n = Num(101)
    print u"求和1+2+3+...+100"
    print "======================="
    print n.sumNum
    print "======================="
    print u"输出1...100范围的奇数"
    print "======================="
    for i in n.oddNum:
        print i,
    print "\r"
    print "======================="
    print u"1...100范围的偶数"
    print "======================="
    for i in n.evenNum:
        print i,
    print "\r"
    print "======================="
    print u"求和1-2+3-4-5+6...+100"
    print "======================="
    print n.crossSumNum

if __name__ == '__main__':
    Main()
posted @ 2018-03-26 02:13  aaa1111sss  阅读(141)  评论(0编辑  收藏  举报