python自学之路-基础篇(五)

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))

 

你可能感兴趣的:(python自学之路-基础篇(五))