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