当前位置:   article > 正文

hnu计算机与人工智能概论答案3.8_请完成程序,对给定的三个实数,假设第一个实数是二次项系数、第二个是一次项系数、

请完成程序,对给定的三个实数,假设第一个实数是二次项系数、第二个是一次项系数、

连夜更新,求求关注!!

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

第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整除。所以也可以写成下面这样。

  1. def isleapYear(year):
  2. ####### begin #######
  3. flag = '' #flag默认为空格
  4. # 如果是闰年返回'yes',否则返回'no'
  5. if year%4 ==0 and year%100!=0 or year%400==0:
  6. return 'yes'
  7. else :
  8. return 'no'
  9. ####### ends #######
  10. return flag
  11. year = eval(input())
  12. flag = isleapYear(year)
  13. print(flag)
  14. #print('\n***********************\n')

第二问可以用列表list_1=[4,6,9,11],if x in list_1。其他按部就班即可。

  1. #第1题:
  2. def isleapYear(year):
  3. ####### begin #######
  4. flag = '' #flag默认为空格
  5. # 如果是闰年返回'yes',否则返回'no'
  6. if year%4 ==0 and year%100!=0:
  7. return 'yes'
  8. elif year%100 ==0 and year%400 !=0 :
  9. return 'no'
  10. elif year%400 == 0:
  11. return 'yes'
  12. else :
  13. return 'no'
  14. ####### ends #######
  15. return flag
  16. year = eval(input())
  17. flag = isleapYear(year)
  18. print(flag)
  19. #print('\n***********************\n')
  20. #第二题:
  21. def isSmallMonth(month):
  22. # 30天的月份:4,6,9,11
  23. #如果是30天的月份返回'yes',否则返回'no'
  24. flag = '' #flag默认为空格
  25. ####### begin #######
  26. if month==4 or month==6 or month==9 or month==11:
  27. return 'yes'
  28. else :
  29. return 'no'
  30. ####### end #########
  31. return flag
  32. month = int(input())
  33. flag = isSmallMonth(month)
  34. print(flag)
  35. #print('\n***********************\n')
  36. #第三题:
  37. # 定义等级函数,等级默认为0级
  38. def gradScore(score):
  39. grade = '0' #等级默认为0级
  40. #如果成绩>=90分的等级 'A'
  41. if score >= 90:
  42. grade="A"
  43. #否则成绩60-89分之间的用'B'表示
  44. elif 60 <= score < 90:
  45. grade = 'B'
  46. #60分以下的用'C'表示
  47. else :
  48. grade = 'C'
  49. return grade
  50. scores = int(input())
  51. grade = gradScore(scores)
  52. print(grade)
  53. #print('\n***********************\n')
  54. #第四题:
  55. # 从键盘输入风速
  56. def windVelocity(velocity):
  57. ####### begin #######
  58. # 默认是0级
  59. rank = 0
  60. # 如果风速在74到95之间,rank=1
  61. if 74<= velocity <= 95:
  62. rank=1
  63. # 如果风速在96到110之间,rank=2
  64. elif 96<= velocity <=110:
  65. rank=2
  66. # 如果风速在111到130之间,rank=3
  67. elif 111<= velocity <=130:
  68. rank=3
  69. # 如果风速在131到154之间,rank=4
  70. elif 131<= velocity <=154:
  71. rank=4
  72. # 如果风速大于155,rank=5
  73. elif velocity >= 155:
  74. rank=5
  75. ####### end #########
  76. return rank
  77. velocity = int(input())
  78. rank = windVelocity(velocity)
  79. print(rank)
  80. #print('\n***********************\n')

第2关:python分支基础训练

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

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

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

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

  1. #第一题
  2. def sortThree(num1,num2,num3):
  3. #函数说明
  4. #参数为待排序的3个数
  5. #返回排序后的3个数
  6. # 请在下面编写代码
  7. # ********** Begin ********** #
  8. if num1<num2<num3:
  9. num1,num2,num3 = num1,num2,num3
  10. elif num1<num3<num2:
  11. num1,num2,num3 = num1,num3,num2
  12. elif num2<num1<num3:
  13. num1,num2,num3 = num2,num1,num3
  14. elif num2<num3<num1:
  15. num1,num2,num3 = num2,num3,num1
  16. elif num3<num1<num2:
  17. num1,num2,num3 = num3,num1,num2
  18. elif num3<num2<num1:
  19. num1,num2,num3 = num3,num2,num1
  20. # ********** End ********** #
  21. # 请不要修改下面的代码
  22. return num1,num2,num3
  23. n1,n2,n3 = eval(input())
  24. sx1,sx2,sx3 = sortThree(n1,n2,n3)
  25. if type(sx1) == float or type(sx2) == float or type(sx3) == float:
  26. print("%.4f,%.4f,%.4f"%(sx1,sx2,sx3))
  27. else:
  28. print(sx1,sx2,sx3,sep=',')
  29. #print('\n***********************\n')
  30. #第二题
  31. import math
  32. def solve(a,b,c):
  33. #函数说明
  34. #参数a,b,c分别代表方程的三个系数
  35. #返回方程的两个根
  36. # 请在下面编写代码
  37. # ********** Begin ********** #
  38. Delta = b**2-4*a*c
  39. if Delta < 0:
  40. root1,root2= 'None','None'
  41. else:
  42. root1=(-b+math.sqrt(Delta))/(2*a)
  43. root2=(-b-math.sqrt(Delta))/(2*a)
  44. # ********** End ********** #
  45. # 请不要修改下面的代码
  46. return root1,root2
  47. a,b,c = eval(input())
  48. r1,r2 = solve(a,b,c)
  49. if type(r1) == float or type(r2) == float :
  50. print("%.4f,%.4f"%(r1, r2))
  51. else:
  52. print(r1,r2)
  53. #print('\n***********************\n')
  54. #第三题
  55. #for x in [-9, -8, -7, -6, -5, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8]:
  56. def calexpress(x):
  57. # 请在下面编写代码
  58. # ********** Begin ********** #
  59. if -10<= x <-8:
  60. fx = x-2
  61. elif -8<= x <-6:
  62. fx = x+3
  63. elif -6<= x <-2:
  64. fx = x**2
  65. elif -2<= x <2:
  66. fx = math.fabs(x)
  67. fx = int(fx)
  68. elif 2<= x <=4:
  69. fx = x**3
  70. elif 4<= x <=6:
  71. fx = 3*x-4
  72. elif 6< x <=8:
  73. fx = 4*x+1
  74. else:
  75. return 'None'
  76. # ********** End ********** #
  77. # 请不要修改下面的代码
  78. return fx
  79. x = eval(input())
  80. fx = calexpress(x)
  81. if type(fx) == float:
  82. print("%.4f" % fx)
  83. else:
  84. print(fx)

第3关:python分支综合训练

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

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

 

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

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

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

  1. #第一题
  2. def BMI(w,h):
  3. #函数说明
  4. #参数h表示体重,h表示身高
  5. #函数返回BMI值wto(国际), dom(国内)
  6. wto,dom = '',''
  7. #请在下面编写代码
  8. #wto, dom的结果为字符串类型的"肥胖","偏瘦","偏胖","正常"
  9. # ********** Begin ********** #
  10. BMI_=w/(h*h)
  11. if BMI_<18.5:
  12. wto,dom = '偏瘦','偏瘦'
  13. elif 18.5<=BMI_<24:
  14. wto,dom = '正常','正常'
  15. elif 24<=BMI_<25:
  16. wto,dom = '正常','偏胖'
  17. elif 25<=BMI_<28:
  18. wto,dom = '偏胖','偏胖'
  19. elif 28<=BMI_<30:
  20. wto,dom = '偏胖','肥胖'
  21. elif 30<=BMI_:
  22. wto,dom = '肥胖','肥胖'
  23. # ********** End ********** #
  24. return wto,dom
  25. #请不要修改下面的代码
  26. Weight,Height = eval(input())
  27. wto, dom = BMI(Weight,Height)
  28. print("BMI 指标为:国际'{0}', 国内'{1}'".format(wto, dom))
  29. #print('\n******************************\n')
  30. #第二题
  31. def calSalaTax(salary):
  32. # 函数说明
  33. #参数salary表示工作数
  34. #返回所得税费Tax
  35. Tax = 0
  36. # 请在下面编写代码
  37. # ********** Begin ********** #
  38. if 0<=salary<=47449:
  39. Tax = salary*0.22
  40. elif 47450<=salary<=114649:
  41. Tax = salary*0.25
  42. elif 114650<=salary<=174699:
  43. Tax = salary*0.28
  44. elif 174700<=salary<=311949:
  45. Tax = salary*0.33
  46. else:
  47. Tax = salary*0.35
  48. # ********** End ********** #
  49. # 请不要修改下面的代码
  50. return Tax
  51. salary = eval(input())
  52. salaTax = calSalaTax(salary)
  53. print("%.4f" %salaTax)
  54. #print('\n***********************\n')
  55. #第三题
  56. #for (p1, p2) in [('s', 'j'), ('b', 'j'),('j', 'j'), ('b', 's')]:
  57. def boxgGame(p1,p2):
  58. #函数说明
  59. #参数:p1,p2代表玩家1,玩家2,其值为's','j','b' 分别代表石头剪刀和布
  60. #返回值:game=-1,0,1分别代表p1输局,平局,赢局
  61. # ********** Begin ********** #
  62. if p1=='s' and p2=="j":
  63. game=1
  64. elif p1=='j' and p2=="b":
  65. game=1
  66. elif p1=='b' and p2=="s":
  67. game=1
  68. elif p1==p2:
  69. game=0
  70. else:
  71. game=-1
  72. # ********** End ********** #
  73. # 请不要修改下面的代码
  74. return game
  75. p1, p2 = input().split(',')
  76. game = boxgGame(p1,p2)
  77. print(game)
  78. #print('\n***********************\n')

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/324536
推荐阅读
相关标签
  

闽ICP备14008679号