1. 已知字符串 a = "aAsmr3idd4bgs7Dlsf9eAF",要求如下
1.1 请将a字符串的大写改为小写,小写改为大写。
a = "aAsmr3idd4bgs7Dlsf9eAF"
print(a.swapcase())
'''a = "aAsmr3idd4bgs7Dlsf9eAF"
b = []
for n in a :
if "a"<= n <= "z":
b.append(n.upper())
elif"A" <= n <= "Z" :
b.append(n.lower())
else:
b.append(n)
print("".join(b))'''
1.2 请将a字符串的数字取出,并输出成一个新的字符串。
a = "aAsmr3idd4bgs7Dlsf9eAF"
print("".join([s for s in a if s.isdigit()]))
'''a = "aAsmr3idd4bgs7Dlsf9eAF"
b = []
for n in a :
if "0"<= n <= "9":
b.append(n)
print("".join(b))'''
1.3 请统计a字符串出现的每个字母的出现次数(忽略大小写,a与A是同一个字母),并输出成一个字典。 例 {'a':4,'b':2}
a = "aAsmr3idd4bgs7Dlsf9eAF"
a=a.lower()
print(dict([(x,a.count(x)) for x in set(a) if not x.isdigit()]))
'''a = "aAsmr3idd4bgs7Dlsf9eAF"
b = {}
for n in a :
m=n.lower()
if "a"<= m<= "z":
b[m]=b.get(m,0)+1
print(b)'''
1.4 请去除a字符串多次出现的字母,仅留最先出现的一个。例 'abcabb',经过去除后,输出 'abc'
a = "aAsmr3idd4bgs7Dlsf9eAF"
b=list(a)
c=list(set(b)) #set转换为集合,去重,无序
c.sort(key=b.index)
print ("".join(c))
'''a = "aAsmr3idd4bgs7Dlsf9eAF"
b = []
for n in a :
if "a"<= n.lower() <= "z":
if n not in b:
b.append(n)
else:
b.append(n)
print("".join(b))'''
1.5 请将a字符串反转并输出。例:'abc'的反转是'cba'
a = "aAsmr3idd4bgs7Dlsf9eAF"
print (a[::-1]) #步进
1.6 去除a字符串内的数字后,请将该字符串里的单词重新排序(a-z),并且重新输出一个排序后的字符 串。(保留大小写,a与A的顺序关系为:A在a前面。例:AaBb)
a = "aAsmr3idd4bgs7Dlsf9eAFC"
b=[]
for x in a:
c=ord(x)
if x.isupper():
c+=31.5 #chr("a")=97
if c>=65: #chr("A")=65,去掉数字 或者 if not x.isdigit()
b.append(c)
c=[]
b.sort()
for x in b:
if x%1==0.5:
x-=31.5
d=chr(int(x)) #将65.0转换为65,再转换为"A"
c.append(d)
print("".join(c))
a = "aAsmr3idd4bgs7Dlsf9eAFC"
b=[x for x in a if not x.isdigit()]
c=sorted(b,key=str.lower,reverse=True)
print ("".join(c)[::-1])
1.7 请判断 'boy'里出现的每一个字母,是否都出现在a字符串里。如果出现,则输出True,否则,则输 出False.
a = "aAsmr3idd4bgs7Dlsf9eAFC"
b="boy"
c=set(a)
c.update(list(b))
print (len(set(a))==len(c))
1.8 要求如1.7,此时的单词判断,由'boy'改为四个,分别是 'boy','girl','bird','dirty',请判断如上这4个字符串里的每个字母,是否都出现在a字符串里。
a = "aAsmr3idd4bgs7Dlsf9eAFC"
b=["boy","girl","bird","dirty"]
c=set(a)
for i in b:
c.update(list(i))
print (len(set(a))==len(c))
1.9 输出a字符串出现频率最高的字母
a = "aAsmr3idd4bgs7Dlsf9eAF"
b=[(x,a.count(x)) for x in set(a) if not x.isdigit()]
b.sort(key=lambda k:k[1],reverse=True)
print(b[0][0])
2.在python命令行里,输入import this 以后出现的文档,统计该文档中,"be" "is" "than" 的出现次数。
import os
m=os.popen("python -m this").read()
m=m.replace("\n","")
l=m.split(" ")
print ([(x,l.count(x)) for x in ["be","is","than"]])
3.一文件的字节数为 102324123499123,请计算该文件按照kb与mb计算得到的大小。
size=102324123499123
print ("%s kb"%(size>>10))
print ("%s 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)[1:-1].replace(", ",""))
'''a = [1,2,3,6,8,9]
print (str(a)[1:-1:3])'''#如果位数相同可使用步进的方法
a="3211423243"
b=str.maketrans("123","abc","12") #前两个参数位数一致,一一对应进行替换。最后一个参数是删除其中的字符
#a.translate("12") #第二个参数代表逐字符删除
print (a.translate(b))
#输出结果:c4c4c
5. 已知字典:
ainfo = {'b':'python','a':'haha','c':'hehe','f':'xiaoming'}
5.1 迭代字典,输出结果:
('a', 'haha')
('c', 'hehe')
('b', 'python')
('f', 'xiaoming')
ainfo = {'b':'python','a':'haha','c':'hehe','f':'xiaoming'}
a=["a","c","b","f"]
for x in a:
print ((x,ainfo[x]))
5.2 写出查找字典里面值等于'haha'的key的代码
ainfo = {'b':'python','a':'haha','c':'hehe','f':'xiaoming'}
print ([x for x,y in ainfo.items() if y=="haha"])
6 写一个函数代码,返回这3个数字中最大的一个。
a = 123
b = 345
c = 444
def text():
"返回这3个数字中最大的一个"
a = 123
b = 345
c = 444
return max(a,b,c)
print (text())
def text2(a,b,c):
"返回这3个数字中最大的一个"
return max(a,b,c)
print (text2(123,345,444))
7 分别写2个函数,完成下面的功能:
提示一下用到函数的:**和*,猩猩是字典,星是元组
2.1 调用函数:ainfo(x=88,y=22,z=44) 你定义ainfo函数体里面的内容并且返回结果:
[22, 44, 88]
def ainfo(**tmp):
return sorted(list(tmp.values()))
print (ainfo(x=88,y=22,z=44))
2.2 调用函数:cinfo(x=88,y=22,z=44) 你定义cinfo函数体里面的内容并且返回结果:
('xaay','yaay','zaay')
def ainfo(**tmp):
return tuple([x+"aay" for x in tmp.keys()])
print (ainfo(x=88,y=22,z=44))