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编译器的问题

posted @ 2020-02-04 17:44  ch0bits  阅读(1258)  评论(0编辑  收藏  举报