連夜更新,求求關(guān)注??!
寫在前面:這一課難度較低,報錯時多看看冒號和縮進有無錯誤,祝大家做題順利?。?!
第1關(guān):python分支入門基礎(chǔ)
根據(jù)提示,在右側(cè)編輯器補充代碼,完成分支程序設(shè)計(用函數(shù)調(diào)用的方式來實現(xiàn))。 第1題: 閏年的判斷:判斷某一年是否是閏年,是則輸出yes,否則輸出no。
第2題: 月份天數(shù)判斷:從鍵盤輸入月份,判讀該月份是否是30天,是則輸出yes,否則輸出no。
第3題: 成績等級判斷:從鍵盤輸入學(xué)生成績,如果學(xué)習(xí)成績>=90分的同學(xué)用A表示,60-89分之間的用B表示,60分以下的用C表示。
第4題: 氣象預(yù)報時,一般按照風(fēng)速對颶風(fēng)進行分級,下表給出對應(yīng)關(guān)系。
風(fēng)速 | 74-95 | 96-110 | 111-130 | 131-154 | 155及以上 |
級別 | 1 | 2 | 3 | 4 | 5 |
請編寫程序,根據(jù)用戶輸入的風(fēng)速,輸出對應(yīng)的颶風(fēng)等級。
第一關(guān),送分題。第一問閏年:能被四整除,不能被100整除,能被400整除。所以也可以寫成下面這樣。
def isleapYear(year):
####### begin #######
flag = '' #flag默認為空格
# 如果是閏年返回'yes',否則返回'no'
if year%4 ==0 and year%100!=0 or year%400==0:
return 'yes'
else :
return 'no'
####### ends #######
return flag
year = eval(input())
flag = isleapYear(year)
print(flag)
#print('\n***********************\n')
第二問可以用列表list_1=[4,6,9,11],if x in list_1。其他按部就班即可。
#第1題:
def isleapYear(year):
####### begin #######
flag = '' #flag默認為空格
# 如果是閏年返回'yes',否則返回'no'
if year%4 ==0 and year%100!=0:
return 'yes'
elif year%100 ==0 and year%400 !=0 :
return 'no'
elif year%400 == 0:
return 'yes'
else :
return 'no'
####### ends #######
return flag
year = eval(input())
flag = isleapYear(year)
print(flag)
#print('\n***********************\n')
#第二題:
def isSmallMonth(month):
# 30天的月份:4,6,9,11
#如果是30天的月份返回'yes',否則返回'no'
flag = '' #flag默認為空格
####### begin #######
if month==4 or month==6 or month==9 or month==11:
return 'yes'
else :
return 'no'
####### end #########
return flag
month = int(input())
flag = isSmallMonth(month)
print(flag)
#print('\n***********************\n')
#第三題:
# 定義等級函數(shù),等級默認為0級
def gradScore(score):
grade = '0' #等級默認為0級
#如果成績>=90分的等級 'A'
if score >= 90:
grade="A"
#否則成績60-89分之間的用'B'表示
elif 60 <= score < 90:
grade = 'B'
#60分以下的用'C'表示
else :
grade = 'C'
return grade
scores = int(input())
grade = gradScore(scores)
print(grade)
#print('\n***********************\n')
#第四題:
# 從鍵盤輸入風(fēng)速
def windVelocity(velocity):
####### begin #######
# 默認是0級
rank = 0
# 如果風(fēng)速在74到95之間,rank=1
if 74<= velocity <= 95:
rank=1
# 如果風(fēng)速在96到110之間,rank=2
elif 96<= velocity <=110:
rank=2
# 如果風(fēng)速在111到130之間,rank=3
elif 111<= velocity <=130:
rank=3
# 如果風(fēng)速在131到154之間,rank=4
elif 131<= velocity <=154:
rank=4
# 如果風(fēng)速大于155,rank=5
elif velocity >= 155:
rank=5
####### end #########
return rank
velocity = int(input())
rank = windVelocity(velocity)
print(rank)
#print('\n***********************\n')
第2關(guān):python分支基礎(chǔ)訓(xùn)練
第1題:請完成程序,對給定的三個整數(shù),按從小到大排序。
第2題:請完成程序,對給定的三個實數(shù),假設(shè)第一個實數(shù)是二次項系數(shù)、第二個是一次項系數(shù)、第三個是常數(shù)項,請計算以這三個實數(shù)為系數(shù)的一元二次方程的實根,若方程無實根,兩根輸出均為None。 特別說明:方程的實根為大根在前,小根在后
第3題:請完成程序,實現(xiàn)以下函數(shù)f的計算能力,對給定的x
值,計算正確的f(x)
結(jié)果,如果輸入的x不在[-10,8]之間,輸出為None。
?第二關(guān),依舊簡單。第一問:最簡單的方法就是像我這樣把每種情況都列出來,也可以使用max與min函數(shù),不過中間那個數(shù)我還是要分六類,不知道大家有沒有好的辦法,可以在評論區(qū)提出。第二問:二次函數(shù)求解,注意“×”就行。第三問:在絕對值哪一部分,函數(shù)fabs默認輸出浮點數(shù),記得轉(zhuǎn)化為整數(shù)。
#第一題
def sortThree(num1,num2,num3):
#函數(shù)說明
#參數(shù)為待排序的3個數(shù)
#返回排序后的3個數(shù)
# 請在下面編寫代碼
# ********** Begin ********** #
if num1<num2<num3:
num1,num2,num3 = num1,num2,num3
elif num1<num3<num2:
num1,num2,num3 = num1,num3,num2
elif num2<num1<num3:
num1,num2,num3 = num2,num1,num3
elif num2<num3<num1:
num1,num2,num3 = num2,num3,num1
elif num3<num1<num2:
num1,num2,num3 = num3,num1,num2
elif num3<num2<num1:
num1,num2,num3 = num3,num2,num1
# ********** End ********** #
# 請不要修改下面的代碼
return num1,num2,num3
n1,n2,n3 = eval(input())
sx1,sx2,sx3 = sortThree(n1,n2,n3)
if type(sx1) == float or type(sx2) == float or type(sx3) == float:
print("%.4f,%.4f,%.4f"%(sx1,sx2,sx3))
else:
print(sx1,sx2,sx3,sep=',')
#print('\n***********************\n')
#第二題
import math
def solve(a,b,c):
#函數(shù)說明
#參數(shù)a,b,c分別代表方程的三個系數(shù)
#返回方程的兩個根
# 請在下面編寫代碼
# ********** Begin ********** #
Delta = b**2-4*a*c
if Delta < 0:
root1,root2= 'None','None'
else:
root1=(-b+math.sqrt(Delta))/(2*a)
root2=(-b-math.sqrt(Delta))/(2*a)
# ********** End ********** #
# 請不要修改下面的代碼
return root1,root2
a,b,c = eval(input())
r1,r2 = solve(a,b,c)
if type(r1) == float or type(r2) == float :
print("%.4f,%.4f"%(r1, r2))
else:
print(r1,r2)
#print('\n***********************\n')
#第三題
#for x in [-9, -8, -7, -6, -5, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8]:
def calexpress(x):
# 請在下面編寫代碼
# ********** Begin ********** #
if -10<= x <-8:
fx = x-2
elif -8<= x <-6:
fx = x+3
elif -6<= x <-2:
fx = x**2
elif -2<= x <2:
fx = math.fabs(x)
fx = int(fx)
elif 2<= x <=4:
fx = x**3
elif 4<= x <=6:
fx = 3*x-4
elif 6< x <=8:
fx = 4*x+1
else:
return 'None'
# ********** End ********** #
# 請不要修改下面的代碼
return fx
x = eval(input())
fx = calexpress(x)
if type(fx) == float:
print("%.4f" % fx)
else:
print(fx)
第3關(guān):python分支綜合訓(xùn)練
第一題:BMI 問題的求解 請完成程序,根據(jù)下圖表格,計算國內(nèi)與國際BMI的值
已知某人的體重和身高,根據(jù)上表計算國內(nèi)與國外的BMI,并輸出結(jié)果。 提示:BMI= 體重/(身高的平方) 第二題:個人所得稅的計算問題 在指定位置編寫代碼,實現(xiàn)一個函數(shù),功能是根據(jù)下表計算個人所得稅。
?
注:具體輸出請查看測試集。
第三題:剪刀石頭布的游戲問題 1、編寫程序?qū)崿F(xiàn):剪刀、石頭和布的游戲。 規(guī)則說明:1)兩個人出的相同的為平局; 2)布勝過石頭,石頭勝過剪刀,剪刀勝過布。 提示:玩家:p1,p2 '剪刀''石頭''布'= 'j','s','b' 結(jié)果: 0:平局,1:p1勝,-1:p1負文章來源:http://www.zghlxwxcb.cn/news/detail-720175.html
?第三關(guān),依然送分題。第一問可以像我一樣分為6段,也可以分為WTO與DOM兩部分。第二問這里個稅是直接乘以稅率,還有注意不要打錯數(shù)字?。。。üP者在這里被卡了好久嗚嗚嗚)第三問這樣應(yīng)該是最快的了(應(yīng)該吧)文章來源地址http://www.zghlxwxcb.cn/news/detail-720175.html
#第一題
def BMI(w,h):
#函數(shù)說明
#參數(shù)h表示體重,h表示身高
#函數(shù)返回BMI值wto(國際), dom(國內(nèi))
wto,dom = '',''
#請在下面編寫代碼
#wto, dom的結(jié)果為字符串類型的"肥胖","偏瘦","偏胖","正常"
# ********** Begin ********** #
BMI_=w/(h*h)
if BMI_<18.5:
wto,dom = '偏瘦','偏瘦'
elif 18.5<=BMI_<24:
wto,dom = '正常','正常'
elif 24<=BMI_<25:
wto,dom = '正常','偏胖'
elif 25<=BMI_<28:
wto,dom = '偏胖','偏胖'
elif 28<=BMI_<30:
wto,dom = '偏胖','肥胖'
elif 30<=BMI_:
wto,dom = '肥胖','肥胖'
# ********** End ********** #
return wto,dom
#請不要修改下面的代碼
Weight,Height = eval(input())
wto, dom = BMI(Weight,Height)
print("BMI 指標(biāo)為:國際'{0}', 國內(nèi)'{1}'".format(wto, dom))
#print('\n******************************\n')
#第二題
def calSalaTax(salary):
# 函數(shù)說明
#參數(shù)salary表示工作數(shù)
#返回所得稅費Tax
Tax = 0
# 請在下面編寫代碼
# ********** Begin ********** #
if 0<=salary<=47449:
Tax = salary*0.22
elif 47450<=salary<=114649:
Tax = salary*0.25
elif 114650<=salary<=174699:
Tax = salary*0.28
elif 174700<=salary<=311949:
Tax = salary*0.33
else:
Tax = salary*0.35
# ********** End ********** #
# 請不要修改下面的代碼
return Tax
salary = eval(input())
salaTax = calSalaTax(salary)
print("%.4f" %salaTax)
#print('\n***********************\n')
#第三題
#for (p1, p2) in [('s', 'j'), ('b', 'j'),('j', 'j'), ('b', 's')]:
def boxgGame(p1,p2):
#函數(shù)說明
#參數(shù):p1,p2代表玩家1,玩家2,其值為's','j','b' 分別代表石頭剪刀和布
#返回值:game=-1,0,1分別代表p1輸局,平局,贏局
# ********** Begin ********** #
if p1=='s' and p2=="j":
game=1
elif p1=='j' and p2=="b":
game=1
elif p1=='b' and p2=="s":
game=1
elif p1==p2:
game=0
else:
game=-1
# ********** End ********** #
# 請不要修改下面的代碼
return game
p1, p2 = input().split(',')
game = boxgGame(p1,p2)
print(game)
#print('\n***********************\n')
到了這里,關(guān)于hnu計算機與人工智能概論答案3.8的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!