PTA-python
PTA 上python刷题记录,题目源自浙大版《Python 程序设计》题目集,链接为:https://pintia.cn/problem-sets/1111652100718116864/exam/problems/
TIGER1693
在此处留下见解,在互联网留下回忆,在生命中延展,在自由中追寻。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【PTA-python】经验总结
列表,字典,元组,函数题目链接思路及经验学习到的方法或函数第3章-2 查验身份证https://blog.youkuaiyun.com/dive668/article/details/115646970list输入的数据都是字符串,与m列表里的元素比较时,必须要str强制转换。已知的数据最好都组成一个列表,方便判断与处理。isdigit()函数判断是不是数字类型第3章-3 输出字母在字符串中位置索引https://blog.youkuaiyun.com/dive668/article/det原创 2021-04-23 23:45:50 · 876 阅读 · 0 评论 -
【PTA-python】浙大版《Python 程序设计》题目集--函数题部分
浙大版《Python 程序设计》题目集--函数题部分第6章函数-1 使用函数求特殊a串数列和 (10 分)代码第6章函数-2 使用函数求素数和 (20 分)代码第6章函数-3 使用函数统计指定数字的个数 (20 分)代码第6章函数-4 使用函数输出指定范围内Fibonacci数的个数 (20 分)代码第6章函数-5 使用函数求余弦函数的近似值 (20 分)代码第6章函数-6 缩写词 (20 分)代码第6章函数-1 使用函数求特殊a串数列和 (10 分)给定两个均不超过9的正整数a和n,要求编写函数fn(原创 2021-04-23 21:33:02 · 1719 阅读 · 0 评论 -
【PTA-python】第7章-1 词频统计 (30 分)--sys.stdin.read()读入到特定字符截至,双重排序条件key=lambda item:(-item[1], item[0])
第7章-1 词频统计分析双重排序条件:字典序,数字降序题目解法自解参考代码截断到`#`输入的代码分析遇到含有回车的无效输入,while循环如何处理。同过input()字符串不断串联起来。字符串思想,读入所有内容到一个串内。关于并列情况的字典序输出。双重排序条件:字典序,数字降序list=sorted(counts.items(), key=lambda item:(-item[1], item[0]))#按item第一位的倒序,也即数字的倒序,第零位的正序,也即单词的字典序排序题目请编写原创 2021-04-23 20:21:51 · 1052 阅读 · 0 评论 -
【PTA-python】第6章-8 输出全排列 (20 分)
第6章-8 输出全排列分析分析初步想法,采用列表,如果有n项,就创建n-1项列表。每个输入都会因为pop出元素而需要重新迭代赋值计算。效率比较低。原创 2021-04-23 19:28:56 · 4132 阅读 · 1 评论 -
【PTA-python】第6章-4 列表数字元素加权和(1) (40 分)--递归函数使用
第6章-4 列表数字元素加权和(1) (40 分)分析想把[,]括号替换为特殊字符,依据出现次序,遇到!号则增加level标记值,顺序计算,遇到?号,level标记值-1,再顺序计算。但发现转换为其他字符在语义上无法通过。>可以通过递归函数计算,def 传入list和level。解法def fact(lst,level): sum=0 for l in lst: if type(l)==int: sum+=l*level原创 2021-04-22 21:11:53 · 348 阅读 · 0 评论 -
【PTA-python】第6章-3 列表或元组的数字元素求和 (20 分)--replace()去掉其他字符转换为数字列表
第6章-3 列表或元组的数字元素求和 (20 分)分析本想借鉴之前的一篇文章,字符连接输入,判断非括号,非逗号,就加上数据,但发现只能添加个位数据借鉴其他文章,去掉列表里的方括号和圆括号,不去掉双引号,再eval转换对列表求和解法a=input()a=a.replace("[","")a=a.replace("]","")a=a.replace("(","")a=a.replace(")","")a=eval("["+a+"]")sum=0for i in a: if t原创 2021-04-22 20:36:48 · 420 阅读 · 0 评论 -
【PTA-python】第6章-6 求指定层的元素个数 (40 分) --递归调用
第6章-3 列表或元组的数字元素求和分析题目解法函数传递两个参数无法实现功能:对自己代码的修改分析python的多层嵌套列表处理题目求列表中数字和,列表中嵌套层次不限2层解法定义一个递归进入求解的函数经过评论区提示,大概知道了哪里存在问题,也即从第一个多层嵌套的list就开始进入并计算嵌套层数,如果后面还有多层嵌套的数据,就无法计算在内。(只统计了第一个多层嵌套)[1,2,[3,4,[5,6],7],8,[1,[2,3]]] 遇到这种情况就没有加上2,3两个元素def add_lis原创 2021-04-22 20:12:14 · 1618 阅读 · 2 评论 -
【PTA-python】第6章-2 一帮一 (15 分)
第6章-2 一帮一分析题目解法分析成绩好的和成绩差的匹配可以借助逆序来实现。题目要求男女搭配,这个可以根据0+1=1来实现。另外为了让已经搭配过的不能再搭配,可以修改其性别值为特别值,如-1。题目“一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的学生中,将名次最靠前的学生与名次最靠后的异性学生分为一组。输入格式:输入第一行给出正偶数N(≤50),即全原创 2021-04-21 19:09:30 · 662 阅读 · 0 评论 -
【PTA-python】第5章-11 字典合并 (40 分)--字典排序,字典键值计算
第5章-11 字典合并 分析题目解法自解(存在错误)完善分析通过ord(x[0])取其 ascii码值。Python ord() 函数它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值数字的ascii就是本身,如果遇到字符,则按ord()进行排序,因此sorted排序函数需要进行一个if类型判断。d=sorted(a.items(),key=lambda item:item[0] if type(item[0])==int else ord(item[0]))题目原创 2021-04-21 17:34:42 · 2047 阅读 · 0 评论 -
【PTA-python】第5章-10 两数之和 (30 分)
第5章-10 两数之和 (30 分)分析题目要求一重循环加字典实现根据题目提示,如果找到,解是唯一的,也就是元素的和是唯一的。那么就可以将元素的和放入字典中,作为键,组成和的元素作为值。根据李哥天下第一的思路:将每个输入作为键,用目标数减去输入的值作为值,如果值也在输入的列表中。那么就说明键,值都在列表中。输出列表的索引即可。题目给定一组整数,还有一个目标数,在给定这组整数中找到两个数字,使其和为目标数,如找到,解是唯一的。找不到则显示 “no answer”。输出的下标按从小到大排序。用原创 2021-04-21 16:32:51 · 972 阅读 · 0 评论 -
【PTA-python】第5章-8 能被3,5和7整除的数的个数(用集合实现) (30 分)--set()集合的使用
第5章-8 能被3,5和7整除的数的个数(用集合实现) (30 分)Python set() 函数分析普通解法:cnt=0a,b=map(int,input().split())for i in range(a,b+1): if i%3==0 and i%5==0 and i%7==0: cnt+=1print(cnt)题目要求使用 set集合,那么就分别创建set3=set()set5=set()set7=set()res_set = set()#存储交运原创 2021-04-21 00:11:27 · 2183 阅读 · 0 评论 -
【PTA-python】第5章-7 列表去重 (40 分)
第5章-7 列表去重分析题目解法自解改进分析eval()实现输入识别为list()。为了实现" ".join,需要将list内的元素都转换为string类型set()去重。以a中的index索引为key进行sort。题目输入一个列表,去掉列表中重复的数字,按原来次序输出!解法自解a=eval(input())for i in range(len(a)): a[i]=str(a[i])b=list(set(a))b.sort(key=a.index)print(" ".jo原创 2021-04-21 00:00:53 · 2054 阅读 · 0 评论 -
【PTA-python】第5章-6 统计工龄 (20 分)---字典的sorted()排序
第5章-6 统计工龄分析题目解法分析初步想法时是遍历,把元素,单次地放入 if not in : .append()实现,之后借助于.count()计算在列表里的数目,遍历输出。实际上考虑到每次的count是一个遍历的运算,所以应该是O(n^2)的数量级。考虑从头到尾只遍历一次数据,使用字典,遍历的同时添加,修改数据。时间复杂度就是O(n)。python的sorted函数对字典按key排序和按value排序sorted()后,原字典输出并没有改变,必须要赋值给一个lst列表,输出列表,才能看到原创 2021-04-20 23:52:35 · 1364 阅读 · 0 评论 -
【PTA-python】第5章-3 四则运算(用字典实现) (30 分)--结合eval()
第5章-3 四则运算分析题目解法带`try except`的异常处理eval()实现字典结合eval实现分析想半天不知道字典怎么实现,想到字典只是一个键值对的关系,取到到键对应的值,如果是一个运算符,又是一个字符,用不到计算当中!实际上这里还是利用了eval函数的作用,按照其形式给出适合的结果。同时学习使用 try except的异常处理。题目四则运算(用字典实现),比较c语言的switch语句。输入格式:在一行中输入一个数字 在一行中输入一个四帜运算符(+,-,*,/) 在一行中输入一原创 2021-04-20 20:07:08 · 977 阅读 · 0 评论 -
【PTA-python】第5章-2 图的字典表示 (20 分)--处理嵌套字典及学习表示图及计算简单的图的属性
第5章-2 图的字典表示分析题目解法分析根据题目提示,要求使用eval函数处理输入。Python eval() 函数题目图的字典表示。输入多行字符串,每行表示一个顶点和该顶点相连的边及长度,输出顶点数,边数,边的总长度。比如上图0点表示:{‘O’:{‘A’:2,‘B’:5,‘C’:4}}。用eval函数处理输入,eval函数具体用法见第六章内置函数。输入格式:第一行表示输入的行数 下面每行输入表示一个顶点和该顶点相连的边及长度的字符串输出格式:在一行中输出顶点数,边数,边的总长度原创 2021-04-20 19:44:18 · 2620 阅读 · 0 评论 -
【PTA-python】第5章-1 输出星期名缩写 (70 分)
第5章-1 输出星期名缩写分析题目解法分析对于题目中有清晰的所有的输出结果的题目,一般考虑,将可能的输出结果都归结起来,或为列表存储,或为字典存储,这样可以省去重复写if-else循环。这里使用字典。获得输入的键,输出对应的值。题目输入一个1到7的数字,输出对应的星期名的缩写。1 Mon2 Tue3 Wed4 Thu5 Fri6 Sat7 Sun解法dict = {1: 'Mon', 2: 'Tue', 3: 'Wed', 4: 'Thu', 5: 'Fri', 6: 'Sa原创 2021-04-20 15:34:28 · 1427 阅读 · 0 评论 -
【PTA-python】第4章-30 找完数 (20 分)--超时纠错
第4章-30 找完数 分析题目解法超时算法改进分析对范围内的n个数,双重遍历,将小于n的因子遍历添加进列表,时间复杂度为O(n^2)。对小数可以实现,大数就要改进算法。抛开输出都有的开头的1,其他输出可以看作是(+ {}).format(lst[i])遍历时数据范围可以缩减到√n。添加因子时同时添加除数和商。(同时注意这里,对于4*4=16的情况,只添加一个4,也就是if n*n!=i:l.append(i//n).同时,可以先添加满因子列表后,sort函数排序,再输出因子分解的和列表。输出格原创 2021-04-20 15:25:02 · 876 阅读 · 0 评论 -
【PTA-python】第4章-28 矩阵转置 (10 分)
第4章-28 矩阵转置分析题目解法分析仔细分析,输出是有规律的:共三行,三次循环,每行第一个通过range(3)迭代而每行的三个数,之间的差值都是3,也可以for循环迭代题目将一个3×3矩阵转置(即行和列互换)。输入格式:在一行中输入9个小于100的整数,其间各以一个空格间隔。输出格式:输出3行3列的二维数组,每个数据输出占4列。解法n=list(map(int,input().split()))for i in range(1,4): for j in range(3原创 2021-04-20 00:34:10 · 1840 阅读 · 0 评论 -
【PTA-python】第4章-27 二维数组中每行最大值和每行和 (10 分)--max(a[b:c])和sum(a[b:c])的使用
第4章-27 二维数组中每行最大值和每行和分析题目解法自解自解改进切片计算分析可以直接三行代码,循环遍历输出值。可以借助于sum()函数和max()函数。实际上这两个函数的使用可以通过范围表示实现,而不需要一个一个表示。max(a[i*3:i*3+3]), sum(a[i*3:i*3+3])另外因为题目固定,还可以通过拆解计算。a=n[0:3]b=n[3:6]d=n[6:9]sum(a),max(a)题目输入格式:在一行中输入9个小于100的整数,其间各以一个空格间隔输出格式原创 2021-04-20 00:33:28 · 1014 阅读 · 0 评论 -
【PTA-python】第4章-23 求矩阵的局部极大值
第4章-23 求矩阵的局部极大值分析改进题目解法分析定义一个判断部分最大值的函数:大于四周的函数,就返回True对非边界值的判断:范围是range(1,n-1)Python中append和extend的区别list.append(object) 向列表中添加一个对象objectlist.extend(sequence) 把一个序列seq的内容添加到列表中改进如果使用a.appen(),那么大列表里的元素是小列表。a.append(list(map(int,input().split(原创 2021-04-20 00:05:23 · 1149 阅读 · 0 评论 -
【PTA-python】第4章-22 找鞍点 (20 分)--矩阵构造及行列最值
第4章-22 找鞍点 分析题目解法自解:矩阵构造方法一他解:矩阵构造方法二分析矩阵存储还按照之前list.extend()的方法。判断是不是行的最大和列的最小,定义函数实现:def andian(s,m,n,lst=[]),s代表矩阵阶数,用以遍历。m,n代表传入的要判断的元素的行列标记,lst为存储列表。题目一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。本题要求编写程序,求一个给定的n阶方阵的鞍点。输入格式:输入第一行给出一个正整数n(1≤n≤6)。随后n行,原创 2021-04-19 23:38:29 · 501 阅读 · 0 评论 -
【PTA-python】第4章-21 判断上三角矩阵
第4章-21 判断上三角矩阵分析题目解法分析首先归结出判断上三角的函数的条件,定义为一个函数。这里注意,列表作为参数的定义方法:def shangsanjiao(m,lst=[])for循环,实现按照输入要求的矩阵个数题目上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。本题要求编写程序,判断一个给定的方阵是否上三角矩阵。输入格式:输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随原创 2021-04-19 21:36:12 · 758 阅读 · 0 评论 -
【PTA-python】第4章-19 矩阵运算 (20 分)--减法实现
分析这里学习如何存储矩阵for 循环 list.appen()特别处理:第一行要减去一个元素,最后一行要减去n个元素。f其他行都是减去两个元素。另外注意*作为乘法,不能直接n(n-1),会报错TypeError: 'int' object is not callable题目第4章-19 矩阵运算 (20 分)给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。解法n=int(input())lst=[]原创 2021-04-19 18:49:49 · 606 阅读 · 0 评论 -
【PTA-python】第4章-18 猴子选大王 (20 分)--有空再纠错
分析从头到尾不断循环,这就要考虑while循环,同时一定要注意程序有退出出口:break程序退出的条件,其实是在不断检索中。安插在多处进行if判断。题目一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?输入格式:输入在一行中给一个正整数N(≤1000)。输出格式:在一行中输原创 2021-04-19 01:20:42 · 1509 阅读 · 0 评论 -
【PTA-python】第4章-17 水仙花数(20 分)
第4章-17 水仙花数分析题目解法旧式,自高位往低位计算改进分析旧式想法:从大位开始计算,先算出最高位。每次需要迭代更新,减去高位数之后,算低一位的数。博主封心的想法:每次取mod10的结果,再除以10取整数部分,降低位次。题目水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。 例如:153=1×1×1+5×5×5+3×3×3。本题要求编写程序,计算所有N位水仙花数。输入格式:输入在一行中给出一个正整数N(3≤N≤5)输出格式:按递增顺序输出所有N位水仙原创 2021-04-18 22:56:32 · 1427 阅读 · 0 评论 -
【PTA-python】第4章-15 换硬币 (20 分)
第4章-15 换硬币分析题目解法分析为了实现各个硬币数目>=1,range()函数设定倒序范围,先求五分硬币数目,再求二分硬币数目,最后求一分硬币数目,注意在往下递推求解的过程中,各个硬币数目的条件是>=1,这影响到range(five,0,-1)和if one>=1:题目将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?输入格式:输入在一行中给出待换的零钱数额x∈(8,100)。输出格式:要求按5分、2分和1分硬币的数量依次从大到小的顺序原创 2021-04-18 21:41:41 · 1479 阅读 · 0 评论 -
【PTA-python】第4章-14 统计字符 (15 分)
分析这道题的关键在于,如何设定输入十个字符,而且遇到的第一个换行符不会导致程序结束。如下输入,遇到第一个换行符就会停止。m=[0,0,0,0] s=list(input()) print(s)学习博主封心的文章,使用while循环,好像这一章都开始使用while循环去做题了。如果一个input()输入结束了,那么就知道回车符一定有了一个,但需要再判断字符数长度是否>10,否则还会循环下一行。判断字符类型,用到了三个函数isalpha()isspace() isdigit():对于两个列表原创 2021-04-18 21:24:55 · 748 阅读 · 0 评论 -
【PTA-python】第4章-13 求误差小于输入值的e的近似值 (20 分)
第4章-13 求误差小于输入值的e的近似值 分析题目解法分析首先建立一个取ei的函数,while判断是否满足条件。不符合条件,cnt自增1,继续判断。直至满足条件题目自然常数e可以用级数1+1/1!+1/2!+⋯+1/n!来近似计算。ei代表前i项求和。输入误差范围error,当ei+1-ei<error,则表示e的近似值满足误差范围。输入格式:在一行输入误差范围。输出格式:在一行输出e的近似值(保留6位小数)。解法n=float(input())def e(n):原创 2021-04-18 20:46:20 · 827 阅读 · 0 评论 -
【PTA-python】第4章-12 求满足条件的斐波那契数 (30 分)
第4章-12 求满足条件的斐波那契数 分析题目解法分析首先建立一个取斐波那契数的函数。因为没有穷尽,使用while循环对输入的数进行范围判断。满足条件后输出。题目斐波那契数,亦称之为斐波那契数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……,这个数列从第3项开始,每一项都等于前两项之和。求大于输入数的最小斐波那契数。输入格式:在一行输人一个正整数n(n>=10)。输出格式:在一行输出大于n的最小斐波那契数。解法def fibo(n): a,b=0,1原创 2021-04-18 20:38:50 · 759 阅读 · 0 评论 -
【PTA-python】第4章-10 最大公约数和最小公倍数 (15 分)
第4章-10 最大公约数和最小公倍数分析最大公约数最小公倍数题目解法分析最大公约数最大公约数借助于辗转相除法这样一个函数,Euclid(m,n)。def Euclid(m,n): while(m>0): r=n%m n=m m=r return n最小公倍数两数的乘积再除以两数的最大公约数法。这个方法虽然比较复杂,但是使用范围很广。因为两个数的乘积等于这两个数的最大公约数和最小公倍数的乘积。例如:4和6的最大公约数是2,最小公倍数是12,那么,4×6原创 2021-04-18 10:05:42 · 1215 阅读 · 0 评论 -
【PTA-python】第4章-9 查询水果价格 (15 分)
第4章-9 查询水果价格分析题目解法分析建立起价格列表。建立起输入列表。对输入数据,输出在价格列表中的对应值,注意特殊情况的输出,以及标记位记录输入数据的个数。题目给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。首先在屏幕上显示以下菜单:[1] apple[2] pear[3] orange[4] grape[0] exit用户可以输入编号1~原创 2021-04-18 09:46:04 · 3610 阅读 · 0 评论 -
【PTA-python】第4章-8 求分数序列前N项和(15 分)
第4章-8 求分数序列前N项和分析题目解法分析不使用列表,直接用迭代的返回值计算分子和分母。定义两个函数。另外还要注意对n==1的处理题目本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+… 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。解法def fenmu(n): a,b=2,1原创 2021-04-18 09:16:06 · 783 阅读 · 0 评论 -
【PTA-python】第4章-7 统计学生平均成绩与及格人数 (15 分)
第4章-7 统计学生平均成绩与及格人数分析题目解法分析很简单。sum函数求列表的和。注意到博主封心对输入为0的处理。要提前判断,并且通过exit(0)来退出程序。否则在执行到range(0)时会报错,提示非零返回。另外还有列表的建立:new_lst = [x for x in lst if x >= 60]题目本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。输入格式:输入在第一行中给出非负整数N,即学生人数。第二行原创 2021-04-18 09:04:01 · 1736 阅读 · 0 评论 -
【PTA-python】第4章-6 输出前 n 个Fibonacci数 (15 分)
分析首先要判断输入数据个数。<1 ==1 ==2 。之后遍历输出。查阅资料。学到了通过print()函数的end=""实现不换行,默认是换行。注意题目要求的输出格式!博主封心关于求斐波那契数列的函数也值得学习,不用列表实现。def fib(n): a, b = 0, 1 for i in range(n + 1): a, b = b, a + b return a题目本题要求编写程序,输出菲波那契(Fibonacci)数列的前N项,每行输出5个,题目保证输出结原创 2021-04-18 08:51:43 · 800 阅读 · 0 评论 -
【PTA-python】第4章-5 求e的近似值 (15 分)
第4章-5 求e的近似值分析题目解法改进分析第一种方法,重复计算了阶乘,而且缺少了复原。实际上阶乘的变化,每次也只是乘以n而已。题目自然常数 e 可以用级数 1+1/1!+1/2!+⋯+1/n!+⋯ 来近似计算。本题要求对给定的非负整数 n,求该级数的前 n+1 项和。解法n=int(input())s=1tmp=1for i in range(1,n+1): for j in range(1,i+1): tmp*=j s+=1/tmpprint("{原创 2021-04-17 23:57:39 · 2963 阅读 · 0 评论 -
【PTA-python】第4章-4 验证“哥德巴赫猜想” (20 分)--拆解素数
分析首先根据输入数据,得到其素数列表。从第一个素数位置开始判断,如果N-该素数仍在素数列表里,题目数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。解法:n=int(input())lst=[]for i in range(2,n): flag=0 for j in range(2,i): if i%j=原创 2021-04-17 23:22:42 · 1727 阅读 · 0 评论 -
【PTA-python】第4章-3 猴子吃桃问题 (15 分)
第4章-3 猴子吃桃问题 分析题目解法:分析倒序思考:对1先+1,再乘以2,循环N-1天。得到答案。题目一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?解法:n=int(input())s=1for i in range(n-1): s=s+1 s=s*2print(s)...原创 2021-04-17 22:47:55 · 791 阅读 · 0 评论 -
【PTA-python】第4章-2 统计素数并求和 (20 分)
第4章-2 统计素数并求和分析题目解法:分析for循环借助标记位,判断是否是素数。题目本题要求统计给定整数M和N区间内素数的个数并对它们求和。解法:这种解法滤去了素数2,而且对素数1的处理存在问题:m,n=map(int,input().split())sum=0cnt=0for i in range(m,n+1): flag=0 for j in range(2,i): if i%j==0: flag=1 if fla原创 2021-04-17 22:29:08 · 1104 阅读 · 0 评论 -
【PTA-python】第3章-22 输出大写英文字母 (15 分)
第3章-22 输出大写英文字母分析题目解法:分析初步想法:使用set函数,过滤掉重复元素,但是set函数会破坏字符串输出顺序。之后想法:创建一个空字符串,使用isupper()这个判断函数,如果是大写,而且未被添加到空字符串中过,就添加进去看到封心大佬的的博客,填补了自己对set函数的理解,另外借助于列表的sort函数,借助于列表中的索引顺序,可以保留原顺序的同时实现排序。string="abcdab"string_new=list(set(string))#那么这里的string_new就原创 2021-04-17 09:43:56 · 2144 阅读 · 0 评论 -
【PTA-python】第3章-21 判断回文字符串 (15 分)
判断回文字符串 分析题目解法:字符串列表 reversed()分析输入字符串,把他逆序,设置标记位,将原字符串和逆序字符串一一对比,看是否不一样。改进:对比两个字符串是否完全一样,不需要一个一个元素对比,直接整体对比。s==ss另外,看到封心大佬用的reversed()函数,可以参考这篇博文python 中 关于reverse() 和 reversed()的用法介绍题目输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。解法:字符串s=原创 2021-04-17 09:01:27 · 7467 阅读 · 0 评论
分享