第十三课、基础篇综合习题

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(', ','')
原文地址:https://www.cnblogs.com/huiming/p/5551471.html