PTA的Python练习题(二)
继续在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=s+a/b*flag flag=-flag print('%.3f' %(s))
3.
这道题做过类似的,不过不算逗号输入可以简单点写
x=int(input()) n=int(input()) i=0 s=0 while(i<n): s=s+x*10**i i=i+1 print(s)
但是这里要写逗号,还要在同一行输入:
之前的 .split( )意识是用空格来分隔输入,这里换成逗号
x,n=map(int,input().split(",")) i=0 s=0 while(i<n): s=s+x*10**i i=i+1 print(s)
4.
转换函数这道题本来是有题目缺陷的
用了下强制类型转换,答案是照输入的数来写的,一旦超过两位数就不能用了
a,b=map(int,input().split(",")) c=int(a/10) d=c*b e=a-10*c f=e+d print(f)
5.
比较大小,一个和冒泡排序有关的题目。自己写了很多很多if,最后还是参考了网上唯一的资料(链接)
N = input().split() a = [] for i in N: a.append(int(i)) a = sorted(a) for i in range(3): if i == 2: print(a[i]) else: print(a[i], end='->')
sorted排序函数的用法(链接)
range函数的用法(链接)
6.
题目没怎么看懂
a,b=map(int,input().split()) if b<a: print("Invalid.") else: print("fahr celsius") while a<=b: d = 5*(a-32)/9 if (d<=-10.0)or(d>=10.0): print("%d %.1f" %(a,d)) elif d<-0.0: print("%d %.1f" %(a,d)) a+=2
网上参考的代码,但是死活不输出结果,可能是我pycharm编译器的问题
[Sign]做不出ctf题的时候很痛苦,你只能眼睁睁看着其他人领先你