三、基础习题
题目:"""统计列表['a','c','c','d','a','d','d','d','e','a']每个元素的的次数,并按照次数大小进行排序,格式如[('a',3),('b',4)]""" #解法1: a=['a','c','c','d','a','d','d','d','e','a'] a1=set(a) #去重 b=[] c=[] for i in a1: b.append((a.count(i),i)) #把统计次数放在元祖第一个位置是因为后面按出现次数进行排序时, # sort只能按第一个元素进行排序,所以这里把出现次数放在第一个元素 b.sort(reverse=True) for n in b: c.append((n[1],n[0])) print(c) #解法2: a=['a','c','c','d','a','d','d','d','e','a'] a1=set(a) b=[] for i in a1: b.append((i,a.count(i))) c=sorted(b,key=lambda x:x[1],reverse=True) #通过匿名函数将元素出现次数从大到小排序 print(c)
题目:"""2、冒泡排序""" 2 a=[8,1,9,6,4,7,3] 3 for i in a: 4 for n in range(len(a)-1) : 5 if a[n]<a[n+1]: 6 num=a[n+1] 7 a[n+1]=a[n] 8 a[n]=num 9 print(a) 10 11
题目:"""3、水仙花数""" 13 for i in range(1,1000): 14 if i<10: 15 print('{}是个位数'.format(i)) 16 elif i>=10 and i<100: 17 a = str(i) 18 a0=a[:1] 19 a1 = a[1:2] 20 if int(a0)**3+int(a1)**3==i: 21 print('{}={}+{}'.format(i,a0+'**'+'3',a1+'**'+'3')) 22 else: 23 a = str(i) 24 a0 = a[:1] 25 a1 = a[1:2] 26 a2 = a[2:3] 27 if int(a0) ** 3 + int(a1) ** 3+int(a2)**3 == i: 28 print('{}={}+{}+{}'.format(i, a0 +'**'+ '3' , a1 +'**'+'3',a2+'**'+'3'))
1 #题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 2 3 a=[1,2,3,4] 4 c=[] 5 for i in a: 6 for n in a: 7 for m in a: 8 if i!=n and n!=m and i!=m: 9 print('{}{}{}'.format(i,n,m))
1 """ 2 模拟网站登录、注册 3 1. 4 用户输入 5 用户名 6 密码, 尝试登陆。 2. 7 检查 8 是否 9 注册, 如果已经注册,判断密码是否正确。如果没有注册,就去注册。 10 提示: 1. 11 鉴于我们还未学习数据库。所以用户的信息保存到本地的文件当中。每一个用户的信息可以保存到一个字典当中,所有的用户信息保存到一个列表中。 2. 12 把一个字符串转换为列表,可以使用eval这个内置函数。具体用法问“度娘“ 、“谷哥“,或者 13 官方文档。。。。(锻炼下解决问题的能力) 3. 14 用面向对象的思想完成这次作业 15 4. 16 用到的知识点:Python基础语法、函数、异常、面向对象、文件操作等 17 """ 18 19 20 class Base(object): 21 """基类""" 22 def __init__(self,username,pwd): 23 self.username=username 24 self.password=pwd 25 class Zhuce(): 26 def zhuce(self, f, data_list): 27 """注册功能""" 28 print('用户不存在,请先注册!') 29 data = {} 30 a1 = input('请输入注册用户名:') 31 b2 = input('请输入注册密码:') 32 data[a1] = b2 33 data_list.append(data) 34 f.write('{},'.format({a1: b2})) 35 36 class Login(Base): 37 def login(self,test_file): 38 self.data_list = [] 39 self.a = self.username 40 self.b = self.password 41 shili=Zhuce() 42 with open(test_file,'r+') as f: 43 all_text=eval(f.read()) 44 if all_text!=None: 45 for t in all_text: 46 if self.a in t: 47 if t[self.a]==self.b: 48 print('登录成功!') 49 else: 50 print('密码错误!') 51 else: 52 shili.zhuce(f,self.data_list) 53 print('恭喜,注册完成!') 54 else : 55 shili.zhuce(f,self.data_list) 56 print('注册成功!') 57 def main(): 58 wenjian='D:\AUTO_B_UI\Python基础\data.txt' 59 a=input('请输入用户名:') 60 b=input('请输入密码:') 61 l=Login(a,b) 62 l.login(wenjian) 63 if __name__=='__main__': 64 main()
"""名片管理系统""" 1、封装函数 a={} b=[] def caidan(): print('*'*50) print('名片管理系统'.center(28,' ')) print('【1】新建名片\n【2】查询名片\n【3】显示全部\n【0】退出系统') print('*' * 50) def xinjian(): a1=input('姓名:') a['姓名']=a1 a2=input('年龄:') a['年龄']=a2 a3=input('号码:') a['号码']=a3 a4=input('邮箱:') a['邮箱']=a4 b.append(a) def chaxun(): select=input('请输入想要查的姓名:') for i in b: if i['姓名']== select: print(i) break else: print('没有该用户') def all_text(): print(b) 2、运行入口 while True: tool.caidan() a=input('请输入你想要使用的功能:') if a in ['1','2','3']: if a=='1': tool.xinjian() elif a=='2': tool.chaxun() elif a=='3': tool.all_text() elif a=='0': print('退出系统') break else: print('输入错误,请重新输入!')