![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
浙大python课后习题
一周时间从零开始学习浙大python + 95道PTA习题 + 3个小爬虫测试
Love 6
腾讯WXG在职后台小鹅
展开
-
浙大Python PTA课后习题博客记录全解(Python)
目录前引习题博客链接第一章第二章第三章第四章待完结前引这90多道题 都是我一个星期之内 在学校里面做的基本上来说都是独立思考出来的 从第一题开始 到最后一道题的结束都是一个零基础的Coder写出来的(对于Python)所以在此也写一篇博客也是希望能对一些 还在学习或者说 没有什么基础的朋友能够有所帮助 :)习题博客链接第一章第1章-1 从键盘输入两个数,求它们的和并输出 (30 分)第1章-2 从键盘输入三个数到a,b,c中,按公式值输出 (30 分)第1章-3 输出“人生原创 2021-03-09 08:53:50 · 7231 阅读 · 0 评论 -
浙大Python 第7章-1 词频统计 (30 分)(含题解)
原题题目代码实现import syss = sys.stdin.read() #没办法 这道题就让你用sys.stdin.read读入 你能怎么办s = s[:s.find('#')] #将最后的#号去掉for i in set([j for j in s if j.isalnum() == False and j!='_']): s = s.replace(i,' ') #这里是对除字母alpha 数字number以外的全部字符当作空格处理 并在后面将空格全部隔开清楚ret =原创 2021-03-12 09:04:15 · 2005 阅读 · 0 评论 -
浙大Python 第6章函数-6 缩写词 (20 分)
原题题目代码实现def acronym(phrase): string = phrase.split();ret = '';strl = len(string) for i in range(strl): ret += string[i][0].upper() return ret提交结果原创 2021-03-13 16:09:52 · 968 阅读 · 2 评论 -
浙大Python 第6章函数-5 使用函数求余弦函数的近似值 (20 分)
原题题目代码实现def funcos(eps,x): ret,temp,count,save,mult,son = 0,1,0,pow(x,2),1,1 while temp == 1 or temp>=eps : if(count%2 == 0):ret += temp else:ret -= temp count+=1;son*=save;mult*= (2*count)*(2*count-1);temp = son/mul原创 2021-03-13 16:09:35 · 1970 阅读 · 0 评论 -
浙大Python 第6章函数-4 使用函数输出指定范围内Fibonacci数的个数 (20 分)
原题题目代码实现def fib(n): if(n==0 or n==1):return 1 return fib(n-1)+fib(n-2)def PrintFN(m,n): ret = [];count,temp = 0,fib(0) while temp <= n: if m<=temp<=n : ret.append(temp) count+=1;temp = fib(count)原创 2021-03-13 16:09:18 · 1777 阅读 · 0 评论 -
浙大Python 第6章函数-3 使用函数统计指定数字的个数 (20 分)
原题题目代码实现def CountDigit(number,digit): return str(number).count(str(digit))提交结果原创 2021-03-13 16:08:57 · 706 阅读 · 0 评论 -
浙大Python 第6章函数-2 使用函数求素数和 (20 分)
原题题目代码实现import mathdef prime(p): if(p==1):return False else: temp = int(math.sqrt(p)) for i in range(2,temp+1): if(p%i == 0):return False; return True;def PrimeSum(m,n): ret = 0 for i in range(m,原创 2021-03-13 16:08:39 · 1091 阅读 · 0 评论 -
浙大Python 第6章函数-1 使用函数求特殊a串数列和 (10 分)
原题题目代码实现def fn(goal,numbers): ret=0;temp = '' for i in range(numbers): temp+=str(goal) ret+=int(temp) return ret提交结果原创 2021-03-13 16:08:19 · 534 阅读 · 0 评论 -
浙大Python 第6章-8 输出全排列 (20 分)
原题题目代码实现numbers = int(input());count = 1;now = [str(i) for i in range(1,numbers+1)]while count < numbers: pre = now;now = [];strl = len(pre);count+=1 for i in range(1,numbers+1): for j in range(strl): if str(i) not in原创 2021-03-12 08:56:45 · 532 阅读 · 0 评论 -
浙大Python 第6章-7 找出总分最高的学生 (15 分)
原题题目代码实现numbers = int(input());d = {};count = max = pos = 0for i in range(numbers): tempsum = 0 nums = list(input().split()) d[nums[1]] = nums[0] for j in range(2,5): tempsum+=int(nums[j]) if(tempsum > max): max原创 2021-03-12 08:56:27 · 1369 阅读 · 0 评论 -
浙大Python 第6章-6 求指定层的元素个数 (40 分)
原题题目吐槽2.0这道题又和上一道题有区别?????就不过多加了一个参数 再加了一个条件判断…是不是最后习题一章灵感缺失了 不知道怎么出题了啊…怎么感觉最后几道题有点敷衍*代码实现(麻了)def calc(string,index,level): strl = len(string);ret = 0 for i in range(strl): if(type(string[i]) == int): if(level == ind原创 2021-03-12 08:56:09 · 291 阅读 · 0 评论 -
浙大Python 第6章-5 列表元素个数的加权和(1) (40 分)
原题题目吐槽我是真没搞懂 出了上道题 还出这道题干嘛明明上一道题 在某种意义中还更难一点 :(确实没搞懂…代码实现(麻了.jpg)def calc(string,index): strl = len(string);ret = 0 for i in range(strl): if(type(string[i]) == int):ret+=index else:ret+=calc(string[i],index+1) return原创 2021-03-12 08:55:53 · 413 阅读 · 2 评论 -
浙大Python 第6章-4 列表数字元素加权和(1) (40 分)
原题题目代码实现def calc(string,index): strl = len(string);ret = 0 for i in range(strl): if(type(string[i]) == int):ret+=(string[i]*index) else:ret+=calc(string[i],index+1) return retstring = eval(input())print(calc(string,1))原创 2021-03-12 08:55:39 · 613 阅读 · 0 评论 -
浙大Python 第6章-3 列表或元组的数字元素求和 (20 分)
原题题目代码实现def flatten(string): if(type(string) == tuple): string = list(string) ret = [] strl = len(string) for i in range(strl): if(type(string[i]) == int):ret.append(string[i]) elif(type(string[i]) != str):ret.a原创 2021-03-12 08:55:15 · 845 阅读 · 0 评论 -
浙大Python 第6章-2 一帮一 (15 分)
原题题目代码实现numbers = int(input());highscores = {};key = [];value = [];count,save = 0,numbers//2for i in range(numbers): count+=1;temp = list(input().split()) if(count<=save):highscores[temp[1]] = temp[0] else:key.append(temp[1]);value.app原创 2021-03-11 13:38:46 · 625 阅读 · 0 评论 -
浙大Python 第6章-1 输入列表,求列表元素和(eval输入应用) (10 分)
原题题目代码实现nums = eval(input())print(sum(nums))提交结果原创 2021-03-11 13:38:11 · 405 阅读 · 0 评论 -
浙大Python 第5章-11 字典合并 (40 分)
原题题目代码实现d1 = eval(input());d2 = eval(input());ret = {};flag = 0for key in d1: if(type(key) != int):ret[ord(key)] = ret.get(ord(key),0)+d1[key] else:ret[key] = ret.get(key,0)+d1[key]for key in d2: if(type(key) != int):ret[ord(key)] = ret.原创 2021-03-11 13:36:30 · 1132 阅读 · 0 评论 -
浙大Python 第5章-10 两数之和 (30 分)
原题题目代码实现nums = list(input().split(','));strl = len(nums);goal = int(input());d= {}for i in range(strl): d[int(nums[i])] = ifor i in d: if d.get(goal-i,-1) != -1: print("%d %d"%(d[i],d[goal-i]));break elif(i == int(nums[-1])):原创 2021-03-10 13:05:46 · 379 阅读 · 0 评论 -
浙大Python 第5章-9 求矩阵鞍点的个数 (30 分)
原题题目代码实现rows = int(input())grid = [[] for i in range(rows)]for i in range(rows): line = list(input().split());temp = len(line) for j in range(temp): grid[i].append(int(line[j]))count = 0for i in range(rows): maxtemp = max(grid[原创 2021-03-10 13:05:29 · 397 阅读 · 0 评论 -
浙大Python 第5章-8 能被3,5和7整除的数的个数(用集合实现) (30 分)
原题题目代码实现start,end = map(int,input().split());ret = set([])for i in range(start,end+1): if(i%3==0 and i%5==0 and i%7==0):ret.add(i)print(len(ret))提交结果原创 2021-03-10 08:36:19 · 1095 阅读 · 0 评论 -
浙大Python 第5章-7 列表去重 (40 分)
原题题目代码实现nums = eval(input());strl = len(nums);dict = {};flag = 0for i in range(strl): dict[nums[i]] = dict.get(nums[i],0)for i in dict: if(flag == 0):print("%d"%i,end = '');flag = 1 else:print(" %d"%i,end = '')提交结果...原创 2021-03-10 08:35:59 · 838 阅读 · 0 评论 -
浙大Python 第5章-6 统计工龄 (20 分)
原题题目代码实现(未优化版 超时)numbers = int(input());ages = list(input().split());dict = {};strl = len(ages)for i in range(strl): ages = [int(ages[i]) for i in range(strl)]for i in range(strl): dict[ages[i]] = dict.get(ages[i],0) + 1for i in sorted(dict原创 2021-03-10 08:35:34 · 736 阅读 · 0 评论 -
浙大Python 第5章-5 统计字符出现次数 (20 分)
原题题目代码实现string = list(input());char = input();dict = {};strl = len(string)for i in range(strl): dict[string[i]] = dict.get(string[i],0) + 1print("%d"%(dict.get(char,0)))提交结果原创 2021-03-10 08:34:59 · 1464 阅读 · 0 评论 -
浙大Python 第5章-4 分析活动投票情况 (20 分)
原题题目代码实现players = {1,2,3,4,5,6,7,8,9,10};tickets = set([])string = list(input().split(','));strl = len(string)tickets.update(int(string[i]) for i in range(strl));ret = players ^ tickets;flag = 0for i in ret: if i >=6: if(flag==0):pri原创 2021-03-10 08:34:37 · 831 阅读 · 0 评论 -
浙大Python 第5章-3 四则运算(用字典实现) (30 分)
原题题目代码实现number1 = int(input());opersym = input();number2 = int(input())if(number2 == 0):print("divided by zero")elif(opersym == '*'):print("%.2f" %(eval("number1*number2")))elif(opersym == "+"):print("%.2f" %(eval("number1+number2")))elif(opersym原创 2021-03-10 08:34:16 · 919 阅读 · 0 评论 -
浙大Python 第5章-2 图的字典表示 (20 分)
原题题目代码实现nums = int(input());point = {}; count = edge = sum = 0for i in range(nums): a = eval(input()) point.update(a)for i in point: count+=1 for j in point[i]: edge+=1;sum+=point[i][j]print("%d %d %d" %(count,edge,sum))原创 2021-03-10 08:33:28 · 508 阅读 · 0 评论 -
浙大Python 第5章-1 输出星期名缩写 (70 分)
原题题目代码实现dict = {1:"Mon",2:"Tue",3:"Wed",4:"Thu",5:"Fri",6:"Sat",7:"Sun"}print("%s"%dict.get(int(input())))提交结果原创 2021-03-09 09:04:33 · 527 阅读 · 0 评论 -
浙大Python 第4章-30 找完数 (20 分)(含未优化超时 优化I超时 优化II版未超时版)
原题题目代码实现(首刷未优化版)start,end = map(int,input().split());flag = 0for i in range(start,end+1): temp = [];tempsum = 0 for j in range(1,i): if(i%j == 0):temp.append(str(j));tempsum+=j if(tempsum == i): print("%d = %s" %(i," + ".j原创 2021-03-09 08:56:15 · 651 阅读 · 0 评论 -
浙大Python 第4章-29 找出不是两个数组共有的元素 (20 分)
原题题目代码实现string1 = list(input().split());string2 = list(input().split())ret = [];flag = 0for i in range(1,int(string1[0])+1): if(string1[i] not in string2 and string1[i] not in ret): if(flag == 0):print("%d"%int(string1[i]),end = '');flag原创 2021-03-09 08:55:52 · 993 阅读 · 0 评论 -
浙大Python 第4章-28 矩阵转置 (10 分)
原题题目代码实现nums = list(input().split());count = tempcount = 0for i in range(3): count = tempcount for j in range(3): temp = int(nums[count]);print("%4d"%temp,end = '');count+=3 tempcount+=1 print(end = '\n')提交结果...原创 2021-03-08 08:56:27 · 685 阅读 · 0 评论 -
浙大Python 第4章-27 二维数组中每行最大值和每行和 (10 分)
原题题目代码实现nums = list(input().split());count = 0templist = []for i in range(3): for j in range(3): temp = int(nums[j+count]);templist.append(temp);print("%4d"%temp,end = '') count += 3;print("%4d%4d"%(max(templist),sum(templist)));temp原创 2021-03-08 08:56:12 · 730 阅读 · 0 评论 -
浙大Python 第4章-26 求1!+3!+5!+……+n! (10 分)
原题题目代码实现temp,sum = 1,1num = int(input())for i in range(3,num+1,2): temp*=(i*(i-1));sum+=tempprint("n=%d,s=%d"%(num,sum))提交结果原创 2021-03-09 08:55:41 · 1596 阅读 · 0 评论 -
浙大Python 第4章-25 输出三角形字符阵列 (15 分)
原题题目代码实现char = 'A';number = int(input());count = 0for i in range(number,0,-1): for j in range(i): print(chr(ord(char)+count),end = ' ');count+=1 print(end = '\n')提交结果原创 2021-03-07 09:38:57 · 615 阅读 · 0 评论 -
浙大Python 第4章-24 打印九九口诀表 (15 分)
原题题目代码实现nums = int(input())for i in range(1,nums+1): for j in range(1,i+1): print("%d*%d=%-4d"%(j,i,i*j),end = '') print(end = '\n')提交结果原创 2021-03-07 09:38:40 · 438 阅读 · 0 评论 -
浙大Python 第4章-23 求矩阵的局部极大值 (15 分)
原题题目代码实现rows,lines = map(int,input().split())grid = [[] for i in range(rows)]for i in range(rows): line = list(input().split()) for j in range(lines): grid[i].append(int(line[j]))flag = 0for i in range(rows): if(i!=0 and i!=row原创 2021-03-07 09:38:16 · 851 阅读 · 0 评论 -
浙大Python 第4章-22 找鞍点 (20 分)
原题题目代码实现rows = int(input())grid = [[] for i in range(rows)]for i in range(rows): line = list(input().split());temp = len(line) for j in range(temp): grid[i].append(int(line[j]))real = 0for i in range(rows): maxtemp = max(grid[i原创 2021-03-07 09:38:00 · 329 阅读 · 0 评论 -
浙大Python 第4章-21 判断上三角矩阵 (15 分)
原题题目代码实现numbers = int(input())for i in range(numbers): temp = int(input());flag = 0 for j in range(temp): string = list(input().split()) if(flag == 0): for k in range(temp): if(k<=j-1):原创 2021-03-08 08:53:36 · 810 阅读 · 0 评论 -
浙大Python 第4章-20 求矩阵各行元素之和 (15 分)
原题题目代码实现rows,lines = map(int,input().split())for i in range(rows): sum = 0;string = list(input().split()) for j in range(lines): sum += int(string[j]) print(sum)提交结果原创 2021-03-08 08:53:20 · 694 阅读 · 0 评论 -
浙大Python 第4章-19 矩阵运算 (20 分)
原题题目代码实现number = int(input());sum = rows = 0for i in range(number): nums = list(input().split()) if(i != number-1): for line in range(number-1): if(line != number - i - 1): sum += int(nums[line])print(sum)原创 2021-03-08 08:53:04 · 355 阅读 · 0 评论 -
浙大Python 第4章-18 猴子选大王 (20 分)
原题题目代码实现nums = int(input());pos = count = delete = 0monkeys = list(i for i in range(1,nums+1))while(delete < nums-1): count+=1 if(count == 3):del(monkeys[pos]);count=0;delete+=1 else:pos += 1 if(pos == len(monkeys)): pos = 0print原创 2021-03-08 08:52:56 · 371 阅读 · 0 评论