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("程序結束")