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編譯器的問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM