hnu计算机与人工智能概论答案3.8

该文提供了多个Python编程练习,包括闰年判断、月份天数判断、成绩等级划分、飓风等级计算等基础问题,以及涉及排序、一元二次方程解法和特定函数计算的进阶练习,还包括BMI指数计算和个人所得税计算的实际应用问题,最后是剪刀石头布游戏的算法实现。
部署运行你感兴趣的模型镜像

连夜更新,求求关注!!

写在前面:这一课难度较低,报错时多看看冒号和缩进有无错误,祝大家做题顺利!!!

第1关:python分支入门基础

根据提示,在右侧编辑器补充代码,完成分支程序设计(用函数调用的方式来实现)。 第1题: 闰年的判断:判断某一年是否是闰年,是则输出yes,否则输出no。

第2题: 月份天数判断:从键盘输入月份,判读该月份是否是30天,是则输出yes,否则输出no。

第3题: 成绩等级判断:从键盘输入学生成绩,如果学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

第4题: 气象预报时,一般按照风速对飓风进行分级,下表给出对应关系。

风速74-9596-110111-130131-154155及以上
级别12345

请编写程序,根据用户输入的风速,输出对应的飓风等级。

第一关,送分题。第一问闰年:能被四整除,不能被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')

#第三题: 
# 定义等级函数,等级默认为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')

#第四题: 
# 从键盘输入风速
def windVelocity(velocity):
    ####### begin #######
    # 默认是0级
    rank = 0
    # 如果风速在74到95之间,rank=1
    if 74<= velocity <= 95:
        rank=1
     
    # 如果风速在96到110之间,rank=2
    elif  96<= velocity <=110:
        rank=2
     
    # 如果风速在111到130之间,rank=3
    elif  111<= velocity <=130:
        rank=3
     
    # 如果风速在131到154之间,rank=4
    elif  131<= velocity <=154:
        rank=4
     
    # 如果风速大于155,rank=5
    elif velocity >= 155:
        rank=5
    ####### end #########
    return rank 
velocity = int(input())
rank = windVelocity(velocity)
print(rank)
#print('\n***********************\n')

第2关:python分支基础训练

第1题:请完成程序,对给定的三个整数,按从小到大排序。

第2题:请完成程序,对给定的三个实数,假设第一个实数是二次项系数、第二个是一次项系数、第三个是常数项,请计算以这三个实数为系数的一元二次方程的实根,若方程无实根,两根输出均为None。 特别说明:方程的实根为大根在前,小根在后

第3题:请完成程序,实现以下函数f的计算能力,对给定的x值,计算正确的f(x)结果,如果输入的x不在[-10,8]之间,输出为None。

 第二关,依旧简单。第一问:最简单的方法就是像我这样把每种情况都列出来,也可以使用max与min函数,不过中间那个数我还是要分六类,不知道大家有没有好的办法,可以在评论区提出。第二问:二次函数求解,注意“×”就行。第三问:在绝对值哪一部分,函数fabs默认输出浮点数,记得转化为整数。

#第一题  
def sortThree(num1,num2,num3):
    #函数说明
    #参数为待排序的3个数
    #返回排序后的3个数    
    # 请在下面编写代码
    # ********** 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):
    #函数说明
    #参数a,b,c分别代表方程的三个系数
    #返回方程的两个根
    # 请在下面编写代码
    # ********** 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关:python分支综合训练

第一题:BMI 问题的求解 请完成程序,根据下图表格,计算国内与国际BMI的值

已知某人的体重和身高,根据上表计算国内与国外的BMI,并输出结果。 提示:BMI= 体重/(身高的平方) 第二题:个人所得税的计算问题 在指定位置编写代码,实现一个函数,功能是根据下表计算个人所得税。

 

注:具体输出请查看测试集。

第三题:剪刀石头布的游戏问题 1、编写程序实现:剪刀、石头和布的游戏。 规则说明:1)两个人出的相同的为平局; 2)布胜过石头,石头胜过剪刀,剪刀胜过布。 提示:玩家:p1,p2 '剪刀''石头''布'= 'j','s','b' 结果: 0:平局,1:p1胜,-1:p1负

 第三关,依然送分题。第一问可以像我一样分为6段,也可以分为WTO与DOM两部分。第二问这里个税是直接乘以税率,还有注意不要打错数字!!!(笔者在这里被卡了好久呜呜呜)第三问这样应该是最快的了(应该吧)

#第一题
def BMI(w,h):
    #函数说明
    #参数h表示体重,h表示身高
    #函数返回BMI值wto(国际), dom(国内)
    wto,dom = '',''
    #请在下面编写代码
    #wto, dom的结果为字符串类型的"肥胖","偏瘦","偏胖","正常"
    # ********** 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 指标为:国际'{0}', 国内'{1}'".format(wto, dom))
#print('\n******************************\n')

#第二题  
def calSalaTax(salary):
    # 函数说明 
    #参数salary表示工作数
    #返回所得税费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):   
    #函数说明
    #参数: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')

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

howell(Python)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值