Python PTA


7-1 華氏溫度到攝氏溫度的轉換(高教社,《Python編程基礎及應用》習題3-9) (2 分)

從鍵盤讀取華氏溫度,轉換成攝氏溫度並輸出,保留1位小數。 轉換公式為:c=5/9*(f-32), 其中,f為華為溫度,c為攝氏溫度。

f=eval(input())
c=5/9*(f-32)
print("{:.1f}".format(c))

7-2 溫度轉換 (5 分)

本題要求編寫程序,計算華氏溫度150°F對應的攝氏溫度。計算公式:2,式中:C表示攝氏溫度,F表示華氏溫度,輸出數據要求為整型。

print("fahr = 150, celsius = {}".format(int(5*(150-32)/9)))

7-3 溫度轉換 (11 分)

溫度刻畫存在不同體系,攝氏度以1標准大氣壓下水的結冰點為0度,沸點為100度,將溫度進行等分刻畫。華氏度以1標准大氣壓下水的結冰點為32度,沸點為212度,將溫度進行等分刻畫。

根據華氏和攝氏溫度定義,轉換公式如下:

C = ( F – 32 ) / 1.8 F = C * 1.8 + 32

TempStr=input('')
if TempStr[-1] in ['F','f']:
    C=(eval(TempStr[:-1])-32)/1.8
    print("{:.2f}C".format(C))
elif TempStr[-1] in ['C','c']:
    F=1.8*eval(TempStr[:-1])+32
    print("{:.2f}F".format(F))
else :
    print("Error")

7-4 人民幣與美元匯率兌換程序 (10 分) 

按照溫度轉換的設計思路,設計人民幣與美元匯率兌換程序,按照1美元=7人民幣的匯率 編寫一個雙向兌換程序。

T=input('')
if T[0] in ["$"]:
    a=eval(T[1:])*7
    print("¥{:.2f}".format(a))
elif T[0] in ["¥"]:
    b=eval(T[1:])/7
    print("${:.2f}".format(b))
else :
    print("輸入格式錯誤")

7-5 三角形面積 (100 分)

已知三角形三邊長(假設能構成三角形),計算三角形面積。

a=int(input())
b=int(input())
c=int(input())
p=(a+b+c)/2
s=(p*(p-a)*(p-b)*(p-c))**0.5
print("{:.1f}".format(s))

7-6 計算長方形的周長和面積 (20 分)

輸入長方形的長和寬,要求計算長方形的周長和面積。

a,b=input().split()
a,b=eval(a),eval(b)
c=a+a+b+b
s=a*b
print("C = {}\nS = {}".format(c,s))

7-1 統計輸入字符串中的單詞個數及單詞的平均長度(高教社,《Python編程基礎及應用》習題7-7) (3 分)  

編寫一個程序,接受用戶輸入的一行英文句子(假設該句子僅由英文單詞及空格構成,不包括逗號等符號),統計並輸出該行句子包含的單詞個數及單詞的平均長度。

s = str(input()) 
b=len(s.split(" "))
c=len(s)
d=(c-b+1)/b
print("{},{:.2f}".format(b,d))

7-2 給顧客找零錢的方案 (3 分)

這是一個編程題。題目:本題目要求掌握數值運算中的整數除法和求余數運算,並掌握輸入輸出的方法。 商店需要找錢給顧客,現在有足夠的張數,面值分別是50元5元和1元。輸入一個整數金額值給出找錢方案,假設人民幣足夠多,且優先使用面額大的錢幣。

s=eval(input())
m50=s//50
m5=s%50//5
m1=s%50%5
print("50元面額需要的張數:{}".format(m50))
print("5元面額需要的張數:{}".format(m5))
print("1元面額需要的張數:{}".format(m1))

7-4 數七游戲 (10 分)

數七游戲是一種常見的行酒令,即多個人圍成一圈,由一個人喊一個數開始,后面的人依次+1報數,如碰到含7的數字或是7的倍數,則要喊pass。輸入兩個正整數數m,n(1<=m<=n),請統計[m-n]之間需要喊pass的次數。

s=input().split(",")
m=eval(s[0])
n=eval(s[1])
t=0
flag=1
if flag==1:
    for i in range(1,n-m+1):
        if (m+i)%7==0 or "7" in str(m+i):
            t=t+1
        else:
            flag==0
if flag==1 and t!=0:
    print(t)
else:
    print("None")

7-5 整數的二進制相加 (30 分)

輸入兩個整數,大小在[0,63]之間。求它們的二進制和,二進制用8位表示。

a=eval(input())
b=eval(input())
print("{:0>8b}".format(a))
print("{:0>8b}".format(b))
print("{:->8}".format('-'))
print("{:0>8b}".format(a+b))

7-6 輸入一行字符串,並將它轉換成10進制數輸出 (40 分)

輸入一行字符串,去掉非16進制字符,並將它轉換成10進制數輸出。

a= input()
b = list(a)
c = []
for i in range(len(b)):
    if 'a'<= b[i] <= 'f' or 'A' <= b[i] <= 'B' or '0'<= b[i] <= '9':
        c.append(b[i])
result = ''.join(c)
print(result)
print(int(result,16))

7-7 計算M和N的多個結果 (10 分)

用戶輸入兩個數M和N(用兩個input語句輸入),其中N是整數,計算M和N的5種數學運算結果,並依次輸出,結果間用空格分隔。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

5種數學運算分別是:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

M與N的和、M與N的乘積、M的N次冪、M除N的余數、M和N中較大的值

M=eval(input())
N=eval(input())
print("{} {} {} {} {}".format(M+N,M*N,M**N,M%N,max(M,N)))

7-1 輸出字符-單分支 (15 分)

輸入一個字符,如果是小寫字母,轉換為其大寫形式,其余字符不變。

s = input()
if 'a' <= s <= 'z':
    print(chr(ord(s) - 32))
else:
    print(s)

7-2 蟲子吃蘋果后,還剩下幾個完整蘋果 (10 分)

你買了一箱n個蘋果,很不幸的是買來的時候,箱子里混進了一條蟲子。蟲子每x小時能吃掉一個蘋果,假設蟲子在吃完一個蘋果之前不會吃另一個,那么經過y小時你還有多少個完整的蘋果?'

s=input()
n,x,y=(float(e) for e in s)
t=y//x
n-=t
n=int(n-1 if y!=x*t else n)
print(n)

7-3 數據比較 (10 分)

實現一個程序,用戶輸入四個數值(整數或浮點數)。先計算前三個數的平均值,然后把平均值與第四個數進行比較。如果相等,則程序在屏幕上輸出“Equal”,如果平均值大於第四個數則輸出“Larger”,否則輸出“Smaller”

x1=eval(input())
x2=eval(input())
x3=eval(input())
x4=eval(input())
x5=(x1+x2+x3)/3
if x5==x4:
    print('Equal')
elif x5>x4:
    print("Larger")
else:
    print("Smaller")

7-4 對於給定的正整數N,求它的位數及其各位數字之和。 (15 分)

給定的正整數N,求它的位數及其各位數字之和。

a = input()
sum = 0
count = len(a)
for i in range(0,len(a)):
    sum = sum + int(a[i])
print(count,sum)

7-5 jmu-python-素數 (20 分)

輸入一個數,判斷其是否素數。素數是大於1的自然數中,除了1和它本身以外不再有其他因數。

a = int(input()) temp=False if a<=1: print(f'{a} is not prime') else: for i in range(2,a): if a%i==0: temp=True print(f'{a} is not prime') break if temp==False: print(f'{a} is prime')

7-6 折紙問題 (10 分)

一張紙厚0.2mm, 問至少對折多少次后,紙的厚度超過珠穆朗瑪峰(8848m)

n=0.2/1000
m=0
while n<8848 :
    n=n*2
    m=m+1
print("折疊次數={}".format(m))
print("折疊后厚度={:.2f}".format(n))

7-7 jmu-python-統計成績 (15 分)

輸入一批學生成績,計算平均成績,並統計不及格學生人數。

x = int(input())
num = 0
count = 0
sum =0 
if(x<0):
    print("沒有學生")
    exit(0)
while x >= 0:
    count = count+1
    if x < 60:
        num = num+1
    sum = sum + x
    x = eval(input())
ave = sum/count
if(count > 0):
    print("平均分=%.2f,不及格人數=%d" % (ave, num))
if(num==0):
    print("沒有學生")
    exit(0)

  

7-8 判斷素數 (20 分)

判斷一個給定的正整數是否素數

num = int(input())
for item in range(num):
    a = int(input())
    for j in range(2,a):
        if a % j == 0:
            break
    else:
        print('Yes')
        continue
    print('No')

7-9 往返跑方陣 (10 分)

所謂“往返跑方陣”,是指對任意給定的n,將1到n×n的整數依次填寫到n×n的方陣中,從右上角第1個格子開始,向下填充;倒底后,往左移動一列,改變方向,向上填充;到最上面一行后,再向左一列,改變方向,向下填充;.…… 以此類推,直到將n×n的方陣填滿。本題要求構造這樣的“往返跑方陣”。

n=eval(input())
for j in range(n):
    for i in range(n,1,-1):
        if i%2==0:
            print("{: >3}".format(n*i-j),end="")
        else :
            print("{: >3}".format(n*i-(n-1)+j),end="")
    print("{: >3}".format(j+1))

7-10 jmu-python-異常-學生成績處理基本版 (15 分)

小明在幫老師處理數據,這些數據的第一行是n,代表有n行整數成績需要統計。
數據沒有錯誤,則計算平均值(保留2位小數)並輸出。
數據有錯誤,直接停止處理,並且不進行計算。

注:該程序可以適當處理小錯誤,比如對於有些數據如果左右包含空格,先去掉
空格再行處理。

s=int(input())
sum=0
count=0
c=0
for i in range(s):
    a=input("")
    b=a.strip()
    flag=0
    for j in b:
        if j not in ['0','1','2','3','4','5','6','7','8','9']:
            flag+=1
    if flag==0:
        sum=sum+eval(b)
    else:
        c=a
        count+=1
        break
if count==0:
    print("All OK")
    print("avg grade = {:.2f}".format(sum/s))
    print("Process Completed")
else:
    print("Error for data \"{}\"! Break".format(c))
    print("Process Completed")

7-11 下標異常 (10 分)

輸入一個非空的字符串,再輸入一個索引值(Python中可以是正向索引,也可以是反向索引)

s=input()
try:
    t=eval(input())
    print(s[t])
except:
    print("輸入下標有誤")

7-12 jmu-python-數據異常處理 (20 分)

輸入一組數據,求平均值。要求:

  • 數據正確,正確計算。
  • 數據有錯誤,能異常處理,輸出錯誤信息,不進行計算。
sum=0
n=int(input())
try:
    for i in range(1,n+1):
        m=eval(input())
        sum=sum+m
    avg=sum/n
    print("正確")
    print("avg={:.2f}".format(avg))
except NameError:
    print("數值錯誤")
except ZeroDivisionError:
    print("除0錯誤,n不能等0")
print("程序結束")

  


免責聲明!

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



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