python核心编程第7章课后题

8.
代码:

# -*- coding: utf-8 -*-
def showMenu(dict_a):
    tips = '''
    please choose the choice:
    a: input an emploees
    b: sort with name
    c: sort with no.
    d: exit
    '''
    while True:
        choose = raw_input(tips)
        if choose in "abcd":
            if choose == 'a':
                tempStr = '''
    enter emploees name and num, the format is:
    {"name":num}
    for example:
    {"xiaoMing":1, "liLi":23, "wangGang":9}
                '''
                dict_new = eval(raw_input(tempStr))
                dict_a.update(dict_new)
            elif choose == 'b':
                print sorted(dict_a.items())
            elif choose == 'c':
                # 既然要按照value来排序,为何不直接创建一个将value和key对调的元祖
                temp = zip(dict_a.values(), dict_a.keys())
                print sorted(temp)
            elif choose == 'd':
                print '--over--'
                break
        else:
            print "input error, please try again"

if __name__ == '__main__':
    dict_a = {}
    showMenu(dict_a)

9

# -*- coding: utf-8 -*-

def tr(srcstr, dststr, string, quFen):
    '''

    :param srcstr: 源字符串,即翻译的字典的key
    :param dststr: 目标字符串,即翻译的字典的data
    :param string: 需要进行操作的字符串
    :param quFen: 是否区分大小写翻译的标志,True为区分,False为不区分
    :return:  trString, 翻译后的字符串
    '''
    trString = len(string)*[0]
    lenSrc = len(srcstr)
    lenDst = len(dststr)
    # 判断长度
    if(lenSrc == lenDst):
        dictTr = dict(zip(srcstr, dststr))
    elif (lenSrc > lenDst):
        dictTr = dict(zip(srcstr[:lenDst], dststr))
    else:
        dictTr = dict(zip(srcstr, dststr[:lenSrc]))
    # 判断是否区分大小写
    if quFen:
        for index, data in enumerate(string):
            if data in dictTr:
                trString[index] = dictTr[data]
            else:
                trString[index] = string[index]
    else:
        stringLow = string.lower()
        for index, data in enumerate(stringLow):
            if data in dictTr:
                trString[index] = dictTr[data]
            else:
                trString[index] = stringLow[index]
    return ''.join(trString)


if __name__ == '__main__':
    print tr('abcDADF', '123', 'abcYangABC', True)
    # print tr('abc', '123', 'abcYangABC', False)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值