PTA的Python练习题(三)】的更多相关文章

继续在PTA上编写Python的编程题. 从 第2章-11 求平方与倒数序列的部分和 开始 1. a,b=map(int,input().split()) s=0 while(a<=b): s=s+a*a+1/a a=a+1 print('sum = %.6f' %(s)) 2. 这道题要引入math函数 import math a,b,c=map(int,input().split()) if((a+b)<c or (a+c)<b): print('These sides do not…
从 第3章-18 输出10个不重复的英文字母 继续 1. a=input() b='' c=a.replace(' ','') for i in c: if i not in b: b=b+i d=len(b) if d<10: print('not found') else: print(b) 2. n = eval(input()) words = [] for i in range(n): words.append(input()) ss = sorted(words, key=len,…
继续在PTA上练习Python (从 第2章-5 求奇数分之一序列前N项和  开始) 1. x=int(input()) a=i=1 s=0 while(i<=x): s=s+1/a a=a+2 i=i+1 print('sum = %.6f' %(s)) 2. 求交错级数也考虑了很久,这里要引入flag来计算.有时候表达式写的太繁琐,程序就进入了死循环. n=int(input()) s=a=0 b=-1 flag=1 for i in range(1,n+1): a=a+1 b=b+2 s=…
最近宅家里没事干,顺便把python给学了.教程和书看了一段时间,但是缺少练习的平台. 想起大一时候练习C语言的PTA平台,就拿来练手了. (因为没有验证码无法提交题目,所以自己用pycharm来做题) 1. a=int(input()) b=int(input()) print(a+b) 2. a=int(input()) b=int(input()) c=int(input()) print(b*b-4*a*c) 3. m=int(input()) i=11 sum=0 while(i<=m…
第4章-12 求满足条件的斐波那契数 a=eval(input()) b=c=1 d=1 for i in range(a): c=b b=d d=b+c if d>a: print('{}'.format(d)) break 第4章-13 求误差小于输入值的e的近似值 a=eval(input()) b=1 count=1 count2=0 for i in range(1,100000): b=b*i count2=count count=count+1/b if (count-count2…
昨天耽搁了一天,今天继续 从  第3章-5 字符转换 开始 1. a=input() b="" for i in a: ': b=b+iprint(int(b))#(写成b=i+b会有倒置输出的问题) 2. 知识点: python 列表统计元素频数.频率 描述 count() 方法用于统计某个元素在列表中出现的次数. 语法 count()方法语法:list.count(obj) 看这网上也没有简单易懂的答案,都是拿着字典算的题目,就拿着别人的代码修改: 这里def两个函数,一个计算出现…
第4章-20 求矩阵各行元素之和 遇到一个麻烦的事情: 上面a,b输入,如果一起输入转int会报错,因为int只能一对一 但是明明我分开来int了,下面第十行还是报错说我的b是string字符,难不成b还把空格吃进去了? 参考一种聪明的算法: length, width = input().split() length = int(length) width = int(width) sum1 = 0 index = 1 l = [] while 1: a = input().split() d…
第4章-19 矩阵运算 a=eval(input()) s=[] count=0 for i in range(a): b=input() s.append([int(i) for i in b.split()]) for m in range(a): for n in range(a): if m!=a-1 and n!=a-1 and m+n!=a-1: count=count+s[m][n] print(count) 对角线的行列合计数一定,排除对角线和最后一行.最后一列的数 b.spli…
第4章-15 换硬币 挺难的,这里学到一个range的用法: 也就是说range函数能实现顺序和倒序,取决于step是正是负 count = 0 x = int(input()) a = x // 5 for m in range(a,0,-1): b = (x - (m * 5)) // 2 for n in range(b,0,-1): c = x - (5 * m) - (2 * n) if m > 0 and n > 0 and c > 0: print("fen5:{…
第4章-10 最大公约数和最小公倍数 m,n=map(int,input().split()) min=0 a=b=0 if m >n: min=m else: min=n for i in range(1,min+1): if m%i==0: if n%i==0: a=i b=(m/a)*n print('{:d} {:.0f}'.format(a,b)) 第4章-11 判断素数 a=eval(input()) li=[] flag=0 for i in range(a): li.append…
第4章-8 求分数序列前N项和 a=eval(input()) b=2 c=1 d=0 count=0 for i in range(a): count+=b/c d=b b=b+c c=d print('%.2f'%(count)) 第4章-9 查询水果价格 print('[1] apple') print('[2] pear') print('[3] orange') print('[4] grape') print('[0] exit') a=input() a=a.split() cou…
第4章-7 统计学生平均成绩与及格人数 a=eval(input()) b=list(map(int,input().split())) sum=sum(b) c=[i for i in b if i>=60] count=len(c) print('average = %.1f'%(sum/a)) print('count = %d'%(count)) 如果这里用append输入只能实现一行一行输入,不能实现同一行输入 知识点(列表的操作): """ ①实现嵌套列表的…
接下来应该做到 第4章-6 输出前 n 个Fibonacci数 了 def fib(n): a,b = 0,1 for i in range(n+1): a,b = b,a+b return a n=int(input()) if(n>0): for i in range(0,n): print('{:11d}'.format(fib(i)),end="") if((i+1)%5==0): print("\n") else: print("Inval…
从 第4章-3 猴子吃桃问题 继续 1. a=eval(input()) def count(n): b=1 for i in range(n-1): b=(b+1)*2 return b print(count(a)) 2. 这道题让我们验证哥德巴赫猜想 没什么思路,参考了别人的代码: 思路:定义一个判断素数的函数,然后再用两数相加和不变,判断最小的解和另一个解是否为素数 知识点: import math def isPrime(n): if n <= 1: return False for…
从 第3章-22 输出大写英文字母 开始 1. a=str(input()) b='' for i in a: if 'A'<=i<='Z' and i not in b: b=b+i if len(b)>0: print(b) else: print('Not Found') 2. a=eval(input()) for i in range(a+1): n=3**i print('pow(3,{}) = {}'.format(i,n)) 3. 判断素数: 思路1):因此判断一个整数m…
从 第3章-15 统计一行文本的单词个数 继续 1. s = input() count=0 for c in s: if c==' ': count=count+1 if c=='.': break print(count+1) 2. 字符串是没有下标的,所以C语言常用的冒泡法这里不能用 a=input() b='' for i in a: if i not in b: b=b+i c=list(b) c.sort() d=''.join(c) print(d) 所以这里用了很多强制类型转换,…
不知不觉一个星期过去了,继续从 第3章-12 求整数的位数及各位数字之和 开始做题 1. 我原来想用题目漏洞做题的,不过想想还是算了自己写个完整的: a=int(input()) b=len(str(a))-1 d=b+1 count=0 for i in range(0,d): c=a/(10**b) c=int(c) e=c-1 count=count+c a=a-10**e*c b=b-1 print('{} {}'.format(d,count)) 这道题的int类型是不能直接求位数的,…
从 第3章-8 字符串逆序 开始 1. n = str(input()) n1=n[::-1] print(n1) 2. 不是很好做这道题,自己还是C语言的思维,网上几乎也找不到什么答案 s = input() idx = s.find("#") s = s[:idx] ss = s[:idx] s_16 = "0123456789ABCDEFabcdef" for c in s: if c not in s_16: s = s.replace(c, '') fla…
从 第3章-1 3-1.大于身高的平均值 开始 1. 引入列表的概念 a=list(map(int,input().split())) b=sum(a) c=len(a) d=b/c for i in a: if(i>=d): print('%.0f'%(i),end=' ') 2. 题目本身有些复杂,参考了网上的代码: x = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2] y = ['] n = int(input()) m = 0 for i in range(…
[Python练习题 005]输入三个整数x,y,z,请把这三个数由小到大输出. ----------------------------------------------------------------------- 这题想想应该比较容易:无非是先获取3个数字,然后比大小,按顺序输出即可.不过在写代码的过程中遇到了个难题:因为担心输入时输入非指定的分隔符,需要指定多个分隔符(英文逗号.中文逗号.空格),但 str.split() 只接受1个分隔符. 上网搜索了下,发现可以用正则表达式解决…
如果真的想学精,学什么都不是好学的,如果真的想把Python学的出神入化,几乎自己想做什么都可以,就要下定恒心,坚持下去. 接下来继续更新Python练习题2,通过更新前一部的练习题让自己也学到了不少东西 1.取任意小于1美元的金额,然后计算可换成哪几种硬币,分别有几个?硬币有1美分.5美分.10美分.25美分4种,如0.76美元可换3个25美分.1枚1美分 #encoding=utf-8 __author__ = 'heng' from copy import deepcopy #对于要改变字…
本题来自 Project Euler 第4题:https://projecteuler.net/problem=4 # Project Euler: Problem 4: Largest palindrome product # A palindromic number reads the same both ways. # The largest palindrome made from the product # of two 2-digit numbers is 9009 = 91 × 9…
[Python练习题 023] 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁.问第4个人岁数,他说比第3个人大2岁.问第三个人,又说比第2人大两岁.问第2个人,说比第一个人大两岁.最后 问第一个人,他说是10岁.请问第五个人多大? ----------------------------------------------------- 这题真是--用心算就能算出来好吗?好吧,应该又是要训练递归函数,最近这几题总是跟递归纠缠不清.不过,似乎慢慢理解了递归函数的写法了.本题代码如下:…
[Python练习题 020] 求1+2!+3!+...+20!的和 -------------------------------------------------- 据说这题是"累积累加"的问题,把"1+2!+3!+...+20!"展开就变成: 1 1*2 1*2*3 1*2*3*4 -- 1*2*3*4--*20 弄懂了这规律,问题就好解决了.代码如下: sum = 0 x = 1 for i in range(1,21): x = x * i sum =…
[Python练习题 017] 两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单.a说他不和x比,c说他不和x,z比.请编程序找出三队赛手的名单. ------------------------------------------------------ 这题真真想破我脑袋了,看了好几份别人的代码才勉强看懂,真是-- 一开始我只想着先把所有可能都配出来(ax, ay, az, bx, by, bz, cx, cy, cz)…
[Python练习题 009] 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. ---------------------------------------------------------------------- 这题也是送分题,只要能把任意三位数的百位.十位.个位拆解出来就好办了.思路:将任意3位数除以100再向下取…
听说做练习是掌握一门编程语言的最佳途径,那就争取先做满100道题吧. ---------------------------------------------------------------------- [Python练习题 001]有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 这题还算比较简单,思路是:先确定百位数.然后是十位数.个位数.1-4 四个数字循环一遍,就都全出来了. res = [] for i in range(1,5): for j in…
前言 王国维在<人间词话>中将读书分为了三种境界:"古今之成大事业.大学问者,必经过三种之境界:'昨夜西风凋碧树,独上高楼,望尽天涯路'.此第一境也.'衣带渐宽终不悔,为伊消得人憔悴.'此第二境也.'众里寻他千百度,蓦然回首,那人却在灯火阑珊处'.此第三境也.我从入门Python到现在也没有多少时间,所以写如此大的一个题目必定会引发各种批判,当然我没有想造一个大新闻,只是想根据自己的学习历程做一个简单的总结,同时将这三个阶段对应的一些好的书籍简单介绍介绍. 正文 Python的用途十…
感谢 感谢购买第二版的同学,谢谢你们对本人劳动成果的支持!也正是你们时常问我还出不出第三版了,也是你们的鼓励,让我继续学习整理本文档. 感谢乙醇前辈,第二版的文档是放在他的淘宝网站上卖的,感谢他的帮忙. 最最感谢的还是兔子( Mark Rabbit ),好吧!他已经极力抗议叫兔子了,哈哈!本文档中相当多的知识点是他提供的,不过他只提供思路,不提供解决问题的具体代码:我需要把他的话截图下来,反复理解,然后找具体的解决代码,因此,我python的语言能力提高了不少. 下面要简单说说本文档的内容: <…
[Python练习题 028] 求一个3*3矩阵对角线元素之和 ----------------------------------------------------- 这题解倒是解出来了,但总觉得代码太啰嗦.矩阵这东西,应该有个很现成的方法可以直接计算才对-- 啰嗦代码如下: str = input('请输入9个数字,用空格隔开,以形成3*3矩阵:') n = [int(i) for i in str.split(' ')] #获取9个数字 mx = [] #存储矩阵 for i in ra…