学习Python必练的100道例题,光学不练假把式!

#1 俩数之和 # number1 = [int(x) for x in input("格式number1 number2:").split()] # print(number1[0]+number1[-1]) #2 阶乘 # n = eval(input("输入n,返回对于的阶乘:")) # result = 1 # for i in range(1,n+1): # result *= i # print(result) #3 判断圆的面积 # import math # n = eval(input("请输入半径:")) # print(math.pi*pow(n,2)) # 获得只是:math--->pi #4判断素数-->素数就是只可以被1或者本身整除 # be =[int(x) for x in input("begin end:").split()] # decide = False # for i in range(be[0],be[1]+1): # for j in range(2,i):# # if i%j == 0: # decide = True # break # if decide: # decide = False # continue # print(i,end=' ') #5求N个数的平方和 # be = [int(x) for x in input("input n*bumber:").split()] # result = 0 # for elem in be: # result +=elem**2 # print(result) #6计算列表中N个数的和 # be = [int(x) for x in input("input n*bumber:").split()] # result =0 # for elem in be: # result +=elem # print(result) #7计算范围中的偶数 # be =[int(x) for x in input("begin end:").split()] # result = 0 # for i in range(be[0],be[1]+1): # if i % 2 ==0: # print(i,end=' ') #8 删除列表中的元素 # my_list = [1,2,3,4,5] # # my_list.pop(my_list.index(1)) # # my_list.pop(my_list.index(2)) # # del my_list[my_list.index(1)] # del my_list[my_list.index(2)] # # # my_list.remove(1) # # my_list.remove(2) # # print(my_list) #9 列表去重 # my_list =[10,20,30,20,10] # my_list = list(set(my_list)) # print(my_list) # # 思路set数组保证没有重复值,在用list() 进行类型转换 #10 列表排序 # my_list = [10,9,8,7,6,5,4,3,2,1] # #不改变原来列表的排序 # print(sorted(my_list)) # print(my_list) # #变原来列表的排序 # my_list.sort() # print(my_list) #11 对学生的成绩进行排序 # test_paper = {'小赵':90,'小钱':100,'小孙':50,'小李':10} # item 会返回一个元祖列表 # print(test_paper.items()) # print(sorted(test_paper.items(),key=lambda x:x[1],reverse=True)) # key 用那个数据进行比较,调用一个函数去获取对应的数据\ # #12 对文件中的数据按照成绩排序 # with open('stu.txt','r') as t: # tmp = [x.strip().split(',') for x in t.readlines()] # tmp = sorted(tmp,key=lambda x:int(x[2]),reverse=True) #字符串是按照一个一个的ASCII一个一个比较的,直接比较是不准确的 # with open('sort_grade.txt','w') as a: # for i in tmp: # a.write(','.join(i)+'\n') #13 对文件中的数据按照成绩排序 -->打印了最高分和最低分的姓名 # with open('stu.txt','r') as t: # tmp = [x.strip().split(',') for x in t.readlines()] # MAX = max(tmp,key=lambda x : int(x[2])) # MIN = min(tmp,key=lambda x : int(x[2])) # average = 0 # for i in tmp: # average += int(i[-1]) # print(f"Max{MAX} Min{MIN} average:{round(average/len(tmp),2)}") # #13.5 对文件中的数据按照成绩排序 -->直接平均值和最高分 # with open('stu.txt','r') as t: # tmp = [int(x.strip().split(',')[2]) for x in t.readlines()] # print(f"Max:{max(tmp)} Min:{min(tmp)} average:{round(sum(tmp)/len(tmp),2)}") #14 统计一篇文章中出现的词,并获取里面出现次数最多的词 # result = {} # with open('page.txt','r') as t: # tmp = [x.strip().split() for x in t.readlines()] # # litter1 = 'A、B、C、D、E、F、G、H、I、J、K、L、M、N、O、P、Q、R、S、T、U、V、W、X、Y、Z' # litter2 = 'a、b、c、d、e、f、g、h、i、j、k、l、m、n、o、p、q、r、s、t、u、v、w、x、y、z' # litter = ''.join(litter1.split("、")) + ''.join(litter2.split("、")) # # #统计数据 # for i in tmp: # for j in i: # if j[-1] not in litter: # j = j[:-1] # result[j] = result.get(j, 0) + 1 # # #求出最大值 # print(f"max{max(result.items(),key=lambda x:x[1])}") #15 获取一个目录下文件的大小 # import os # print(os.path.getsize("page.txt")) # # os->path->获取文件大小 # # os.path.isfile() 判断是否是文件 # # os.listdir("文件路径/绝对理解") 返回指定路径下的全部文件包括目录(一切皆文件) ##os.splitext("文件名") --->自动切割为,(文件名 ,文件后缀)的元祖 #16 求出文件中学生删成绩的最大值,且是每个学科的最高分 with open('grade.txt','r') as f: # 把数据进行分类 chinese = [] english = [] math = [] for elem in f: elem = elem[:-1] if '语文' in elem: chinese.append(elem) elif"英语" in elem: english.append(elem) else: math.append(elem) #进行求最大值 print(f"max: {max(chinese,key=lambda x:int(x.split(',')[-1]))} {max(math,key=lambda x:int(x.split(',')[-1]))} {max(english,key=lambda x:int(x.split(',')[-1]))}") # 17 实现不同文件的数据关联 -->需要写会文件中 with open('grade.txt','r') as f: teacher ={} student =[] # 把学生数据写到容器中 for elem in f.readlines(): student.append(elem[:-1].strip(',')) # 把老师统计到字典里面 with open('teachers.txt','r') as f2: for elem in f2.readlines(): elem = elem.strip().split(',') teacher[elem[0]] = teacher.get(elem[0],elem[-1]) #组合 for i in range(0,len(student)): student[i] += ','+teacher.get(student[i][:2]) #写回文件中 with open('stu.txt','w') as f3: for elem in student: f3.write(''.join(elem) +"\n") # 18 统计各个爱好的人数 with open('student_hobby.txt','r') as f: comtainer = [i.split()[1].split(',') for i in f.readlines()] result = {} #统计数据 for elem1 in comtainer: for elem2 in elem1: result[elem2] = result.get(elem2,0) + 1 #打印 for key,value in result.items(): print(f"爱好:{key} 人数:{value}")
一些教函数如何调用的我就没写了额