zoukankan      html  css  js  c++  java
  • 第十三课、基础篇综合习题

    1. 已知字符串 a = "aAsmr3idd4bgs7Dlsf9eAF",要求如下
    
    1.1 请将a字符串的大写改为小写,小写改为大写。
    a = 'aAsmr3idd4bgs7Dlsf9eAF'
    b = []
    for i in xrange(len(a)):
        if a[i].isupper():
            b.append(a[i].lower())
        elif a[i].islower():
            b.append(a[i].upper())
        else:
            b.append(a[i])
    print ''.join(b)
    
    结果: AaSMR3IDD4BGS7dLSF9Eaf 
    
    方法二:
    print a.swapcase()
    
    
    1.2 请将a字符串的数字取出,并输出成一个新的字符串。
    a = 'aAsmr3idd4bgs7Dlsf9eAF'
    b = []
    c = []
    for i in xrange(len(a)):
        if a[i].isupper():
            b.append(a[i].lower())
        elif a[i].islower():
            b.append(a[i].upper())
        else:
            c.append(a[i])
    print ''.join(c)
    
    结果:3479 
    
    
    方法二:
    a = 'aAsmr3idd4bgs7Dlsf9eAF'
    print ''.join([s for s in a if s.isdigit()])
    
    
    
    1.3 请统计a字符串出现的每个字母的出现次数(忽略大小写,a与A是同一个字母),并输出成一个字典。 例 {'a':4,'b':2}
    a = 'aAsmr3idd4bgs7Dlsf9eAF'
    b = []
    c = []
    for i in xrange(len(a)):
        if a[i].isupper():
            b.append(a[i])
        elif a[i].islower():
            b.append(a[i].upper())
        else:
            c.append(a[i])
    d = ''.join(b)
    
    e = []
    for str in set(d):
        e.append((str, d.count(str,0)))
    print dict(e)
    
    结果: {'A': 3, 'B': 1, 'E': 1, 'D': 3, 'G': 1, 'F': 2, 'I': 1, 'M': 1, 'L': 1, 'S': 3, 'R': 1} 
    
    方法二:
    dict([(x,a.count(x)) for x in set(a)])
    
    
    
    1.4 请去除a字符串多次出现的字母,仅留最先出现的一个。例 'abcabb',经过去除后,输出 'abc'
    a = 'aAsmr3idd4bgs7Dlsf9eAF'
    b = []
    for str in set(a):
        b.append(str)
    print ''.join(b)
    
    判定:结果错误
    
    正确结果如下 
    a = 'aAsmr3idd4bgs7Dlsf9eAF'
    a_list = list(a) # 转换成list, 主要是为了获得排序index 
    set_list = list(set(a_list)) # 去重以后再转回list 
    set_list.sort(key = a_list.index) # 对去重以后的list进行原先的排序 
    print ''.join(set_list) # 拼接成字符串 
    
    
    
    1.5 请将a字符串反转并输出。例:'abc'的反转是'cba'
    a = 'aAsmr3idd4bgs7Dlsf9eAF'
    b = list(a)
    b.reverse()
    a = ''.join(b)
    结果  'FAe9fslD7sgb4ddi3rmsAa'
    
    方法二:a[::-1]
    
    
    
    1.6 去除a字符串内的数字后,请将该字符串里的单词重新排序(a-z),并且重新输出一个排序后的字符 串。(保留大小写,a与A的顺序关系为:A在a前面。例:AaBb)
    '''
    1. 要有小写字母从a-z的排序 
    2. 大小写不同,但值相同的字母,大写在小写的后面
    '''
    
    a = 'aAsmr3idd4bgs7Dlsf9eAF'
    
    
    1.7 请判断 'boy'里出现的每一个字母,是否都出现在a字符串里。如果出现,则输出True,否则,则输 出False.
    a = 'aAsmr3idd4bgs7Dlsf9eAF'
    b = set('boy')
    print b
    for str in b:
        if str in a:
            print (str,'True')
        else:
            print (str,'Flase')
    结果:
    set(['y', 'b', 'o'])
    ('y', 'Flase')
    ('b', 'True')
    ('o', 'Flase')
    
    
    a = 'aAsmr3idd4bgs7Dlsf9eAF'
    b = 'boy'
    u = set(a)
    u.update(list(b))
    print len(set(a)) == len(u)
    
    
    1.8 要求如1.7,此时的单词判断,由'boy'改为四个,分别是 'boy','girl','bird','dirty',请判断如上这4个字符串里的每个字母,是否都出现在a字符串里。
    
    a = 'aAsmr3idd4bgs7Dlsf9eAF'
    b = set()
    x = ['boy','girl','bird','dirty']
    for item in x:
        b.update(item)
    print b
    
    for str in b:
        if str in a:
            print (str,'True')
        else:
            print (str,'Flase')
    
    结果:
    set(['b', 'd', 'g', 'i', 'l', 'o', 'r', 't', 'y'])
    ('b', 'True')
    ('d', 'True')
    ('g', 'True')
    ('i', 'True')
    ('l', 'True')
    ('o', 'Flase')
    ('r', 'True')
    ('t', 'Flase')
    ('y', 'Flase')
    
    
    
    1.9 输出a字符串出现频率最高的字母
    
    
    a = 'aAsmr3idd4bgs7Dlsf9eAF'
    b = []
    for i in set(a):
        b.append((i, a.count(i,0)))
    print b
    
    方法一:
    b.sort(key = lambda x:x[1], reverse = True)
    print b
    print b[0]
    
    方法二:
    import operator
    b.sort(key = operator.itemgetter(1), reverse=True)
    print b
    print b[0]
    
    
    2.在python命令行里,输入import this 以后出现的文档,统计该文档中,"be" "is" "than" 的出现次数。
    import os
    m = os.popen('python -m this').read()
    m = m.replace('
    ','')
    l = m.split(' ')
    print [(x,l.count(x)) for x in ['be','is','than']]
    
    
    3.一文件的字节数为 102324123499123 ,请计算该文件按照kb与mb计算得到的大小。
    size = 102324123499123 
    kb size >> 10
    mb size >> 20
     
    4.已知  a =  [1,2,3,6,8,9,10,14,17],请将该list转换为字符串,例如 '123689101417'.
    a = [1,2,3,6,8,9,10,14,17]
    print str(a)
    print str(a)[1:-1].replace(', ','')
  • 相关阅读:
    springboot文件上传: 单个文件上传 和 多个文件上传
    Eclipse:很不错的插件-devStyle,将你的eclipse变成idea风格
    springboot项目搭建:结构和入门程序
    POJ 3169 Layout 差分约束系统
    POJ 3723 Conscription 最小生成树
    POJ 3255 Roadblocks 次短路
    UVA 11367 Full Tank? 最短路
    UVA 10269 Adventure of Super Mario 最短路
    UVA 10603 Fill 最短路
    POJ 2431 Expedition 优先队列
  • 原文地址:https://www.cnblogs.com/huiming/p/5551471.html
Copyright © 2011-2022 走看看