How to think like a Computer Scientist: 课后习题第六章 1-5

#-------------------------------------------------------------------------------
# Name:        module1
# Purpose:
#
# Author:      penglaixy
#
# Created:     27/07/2013
# Copyright:   (c) penglaixy 2013
# Licence:     <your licence>
#-------------------------------------------------------------------------------
import sys

def test(did_pass):
    '''
    print the result of a test
    '''
    linenum = sys._getframe(1).f_lineno
    if did_pass:
        msg = 'Test at line {0} ok'.format(linenum)
    else:
        msg = 'Test at line {0} failed'.format(linenum)
    print msg

def turn_clockwise(direction):
    if 'N' == direction:
        return 'E'
    elif 'E' == direction:
        return 'S'
    elif 'S' == direction:
        return 'W'
    elif 'W' == direction:
        return 'N'

def day_name(num_day):
    '''get the dayname by inputvalue '''
    name_dict = {0:'Sunday', 1:'Monday', 2:'Tuesday', 3:'Wednesday', 4:'Thursday', 5:'Friday', 6:'Saturday'}

    if name_dict.has_key(num_day):
        return name_dict[num_day]

def day_num(name_day):
    '''get the dayname by inputvalue '''
    name_dict = {'Sunday':0, 'Monday':1, 'Tuesday':2, 'Wednesday':3, 'Thursday':4, 'Friday':5, 'Saturday':6}
    if name_dict.has_key(name_day):
        return name_dict[name_day]

def day_add(name, delta):
    get_day_num = day_num(name)
    if get_day_num != None:
        return day_name((get_day_num + delta)%7)


def test_suite():
    '''
    Run the suite of tests for code in this module
    '''
    test(turn_clockwise('N') == 'E')
    test(turn_clockwise('W') == 'N')
    test(turn_clockwise(42) == None)
    test(turn_clockwise('rubbish') == None)

    test(day_name(3) == 'Wednesday')
    test(day_name(6) == 'Saturday')
    test(day_name(42) == None)

    test(day_num('Friday') == 5)
    test(day_num('Sunday') == 0)
    test(day_num('hello') == None)
    test(day_num(day_name(3)) == 3)
    test(day_name(day_num('Thursday')) == 'Thursday')

    test(day_add('Monday', 4) == 'Friday')
    test(day_add('Tuesday', 0) == 'Tuesday')
    test(day_add('Tuesday', 14) == 'Tuesday')
    test(day_add('Sunday', 100) == 'Tuesday')

    test(day_add('Sunday', -1) == 'Saturday')
    test(day_add('Sunday', -7) == 'Sunday')
    test(day_add('Tuesday', -100) == 'Sunday')


def main():
    test_suite()



if __name__ == '__main__':
    main()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值