当前位置:   article > 正文

湖南大学python头歌实训 实验3:分支语句(二)_湖南大学python头歌答案

湖南大学python头歌答案

实验四 分支结构

第1关:判断三角形类型

  1. x=eval(input("边长一"))
  2. y=eval(input("边长二"))
  3. z=eval(input("边长三"))
  4. #代码开始
  5. #代码结束
  6. l1 = [x,y,z]
  7. a,b,c = sorted(l1)
  8. if a+b<c:
  9. print('无法构成三角形')
  10. else:
  11. if a==b==c:
  12. print('等边三角形')
  13. elif a**2+b**2 == c**2:
  14. print('直角三角形')
  15. else:
  16. print('普通三角形')

先比较再判断

第2关:分段函数

  1. x=eval(input())
  2. #代码开始
  3. y = 0
  4. if x<1:
  5. y = x
  6. elif 1<=x<10:
  7. y = 2*x - 1
  8. else:
  9. y = 3*x - 1
  10. #代码结束
  11. print("{:.2f}".format(y))

第3关:阶梯电价计算电费

  1. sy=eval(input("输入上月电表度数"))
  2. by=eval(input("输入本月电表度数"))
  3. yf=eval(input("输入月份"))
  4. #代码开始
  5. ds = by - sy
  6. df1 = 200*0.588
  7. if ds<200:
  8. df = 0.588*ds
  9. else:
  10. if yf in [3,4,5,9,10,11]:
  11. if ds<=350:
  12. df = df1 + (ds - 200)*0.638
  13. else:
  14. df = df1 + 150*0.638 + (ds-350)*0.888
  15. else:
  16. if ds <= 450:
  17. df = df1 + (ds - 200)*0.638
  18. else:
  19. df = df1 + 250*0.638 + (ds - 450)*0.888
  20. #代码结束
  21. print("用电度数{:.2f}电费{:.2f}".format(ds,df))

这种是期中考试大题(必考?),好好熟悉。

第4关:阶梯水价计算水费

  1. sy=eval(input("输入上月水表吨数"))
  2. by=eval(input("输入本月水表吨数"))
  3. rs=eval(input("输入家庭人数"))
  4. db=input("是否低保(y/n)")
  5. #代码开始
  6. userge = by - sy
  7. if db =='y':
  8. sl = userge - 6
  9. else:
  10. sl = userge
  11. if rs < 5:
  12. if sl <= 15 :
  13. sf = 2.58 * sl
  14. elif 15 < sl <= 22:
  15. sf = 3.34*(sl-15)+2.58*15
  16. else:
  17. sf = 2.58*15+3.34*7+(sl-22)*4.09
  18. else:
  19. if sl/rs <= 4:
  20. sf = 2.58*sl
  21. elif 4 < sl/rs <= 5:
  22. sf = 3.34*(sl - rs*4)+4*rs*2.58
  23. else:
  24. sf = 4.09*(sl - rs*5)+rs*3.34+2.58*rs*4
  25. if sf<0:
  26. sf = 0
  27. print("用水吨数(减免后){:.2f}水费{:.2f}".format(sl,sf))

注意考虑减免太多,水费为负数,难道还有倒贴给你?QAQ

第5关:手机话费计算

  1. ll=eval(input("流量"))
  2. thsj=eval(input("通话时间"))
  3. #代码开始
  4. #代码结束
  5. cost = 128
  6. ct_cost = (thsj-500)*0.15
  7. if ll<33:
  8. md_cost = (ll-30)*5.00
  9. else:
  10. md_cost = 15 + (ll-33)*3.00
  11. if ct_cost>0:
  12. cost += ct_cost
  13. if md_cost > 0:
  14. cost += md_cost
  15. print("费用"+'{:.2f}'.format(cost))

大家如果碰到给你推销这种套餐的人,果断拉黑,想把你当猪宰。

第6关:血压判断

  1. x=eval(input())
  2. y=eval(input())
  3. #代码开始
  4. if x>=90 or y>=140:
  5. print('高血压')
  6. elif x<60 or y<90:
  7. print('低血压')
  8. else:
  9. print('正常血压')
  10. #代码结束

 大学生也要好好锻炼,我就很喜欢学校的乐跑:(

第7关:党费计算

  1. ch=input("")
  2. s=eval(input(""))
  3. rate = 0
  4. if ch=='n' or ch=='N':
  5. if s<=3000:
  6. rate = 0.005
  7. elif 3000<s<=5000:
  8. rate = 0.01
  9. elif 5000<s<=10000:
  10. rate = 0.015
  11. else:
  12. rate = 0.02
  13. else:
  14. if s<=5000:
  15. rate = 0.005
  16. else:
  17. rate = 0.01
  18. df = s*rate
  19. #代码开始
  20. #代码结束
  21. print("{:.2f}".format(df))

第8关 周薪计算

  1. gzbz=eval(input("工资标准"))
  2. gzr=eval(input("工作日工作时间"))
  3. xxr=eval(input("休息日工作时间"))
  4. if xxr<=4:
  5. xxrgz = xxr*2*gzbz
  6. else:
  7. xxrgz = 2*4*gzbz+(xxr-4)*gzbz*3
  8. if gzr<=40:
  9. gzrgz = gzr * gzbz
  10. else:
  11. gzrgz = 40*gzbz+(gzr-40)*1.5*gzbz
  12. gz = xxrgz + gzrgz
  13. #代码开始
  14. #代码结束
  15. print("工资{:.2f}".format(gz))

总结:

多多动手,熟悉阶梯计价,考完期中你就知道了。

实验3-1-程序控制-选择结构

第1关:关系运算符与单分支选择语句

  1. #######Begin your code here#######
  2. n = int(input())
  3. if n>0:
  4. print('正数\n')
  5. #######End your code here#######

第2关:单按钮灯光开关控制

  1. light=input() #从测试集读入light值,此部分代码不用修改
  2. ######begin 从此处向下,开始你的编码,根据ligth的值进行输出###
  3. light = '关' if light == '开' else '开'
  4. print(light)
  5. #####end###

第3关:求解一元二次方程组

  1. import math
  2. a=float(input())
  3. b=float(input())
  4. c=float(input())
  5. def quadratic_equation(a, b, c):
  6. discriminant = b ** 2 - 4.0 * a * c
  7. if discriminant < 0:
  8. sb = -b/2/a
  9. xb1 = math.sqrt(- b ** 2 + 4.0 * a * c) / (2 * a)
  10. xb2 = -math.sqrt(- b ** 2 + 4.0 * a * c) / (2 * a)
  11. x1 = complex(sb,xb1)
  12. x2 = complex(sb, xb2)
  13. return x1,x2
  14. elif discriminant == 0:
  15. x = -b / (2 * a)
  16. return x
  17. else:
  18. if a != 0:
  19. x1 = (-b + math.sqrt(discriminant)) / (2 * a)
  20. x2 = (-b - math.sqrt(discriminant)) / (2 * a)
  21. return x1, x2
  22. else:
  23. x = -c/b
  24. return x
  25. roots = quadratic_equation(a,b,c)
  26. if type(roots)==float:
  27. print("x=", roots)
  28. elif type(roots)==tuple:
  29. x1,x2 = roots
  30. print("x1=",x1,"x2=",x2)
  31. else:
  32. print("x1=", x1, "x2=", x2)

这个有点小难度了,需要考虑的情况有点多,多写两遍吧!(可以不定义函数)

第4关:输入分数,输出等级

  1. score=float(input()) #读入测试变量score
  2. #**********begin*******以下编写代码实现
  3. if score >= 90 and score <= 100:
  4. print("等级A")
  5. elif score >= 80 and score < 90:
  6. print("等级B")
  7. elif score >= 70 and score < 80:
  8. print("等级C")
  9. elif score >= 60 and score < 70:
  10. print("等级D")
  11. else:
  12. print("等级E")
  13. #**********end***********

第5关:3个数按从大到小依次输出

  1. #######Begin your code here#######
  2. l1 = input().split()
  3. l2 = [eval(num) for num in l1]
  4. num3,num2,num1 = sorted(l2)
  5. print(num1, num2, num3)
  6. #######End your code here#########

第6关:水仙花数与四叶玫瑰数 

  1. #######Begin your code here#######
  2. num = int(input())
  3. if num in[153,370,371,407]:
  4. print('narcissistic')
  5. elif num in [1634,8208,9474]:
  6. print('rose')
  7. else:
  8. print('neither')
  9. #######End your code here#########

偷懒了,其实和前面回文数核心一样的,懒得写啦QAQ

第二章-Python语言基础-2.2条件分支(理科)

第1关:python分支入门基础

  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Tue Sep 8 06:29:54 2020
  4. @author: hzh
  5. """
  6. # 第1题:
  7. year = int(input())
  8. # 如果是闰年输出yes
  9. ####### begin #######
  10. if year%4 == 0 or year%400 == 0:
  11. print('yes')
  12. else:
  13. print('no')
  14. ####### end #########
  15. # 如果不是闰年,输出no
  16. ####### begin #######
  17. ####### end #########
  18. # 第2题:
  19. month = int(input())
  20. # 30天的月份:4,6,9,11
  21. # 如果是30天的月份输出yes
  22. ####### begin #######
  23. if month in [4,6,9,11]:
  24. print('yes')
  25. else:
  26. print('no')
  27. ####### end #########
  28. # 如果不是30天的月份,输出no
  29. ####### begin #######
  30. ####### end #########
  31. # 第3题:
  32. # 从键盘输入成绩,等级默认为0
  33. scores = int(input())
  34. grade = '0'
  35. # 如果成绩>=90分的输出'A'
  36. ####### begin #######
  37. if scores>=90:
  38. grade = 'A'
  39. ####### end #########
  40. # 否则成绩60-89分之间的用B表示
  41. if 60<=scores<=89:
  42. grade = 'B'
  43. ####### end #########
  44. # 60分以下的用C表示
  45. if scores<60:
  46. grade = 'C'
  47. ####### end #########
  48. print(grade)
  49. # 第4题:
  50. # 从键盘输入风速
  51. v = int(input())
  52. # 默认是0
  53. rank = 0
  54. # 如果风速在7495之间,输出1
  55. ####### begin #######
  56. if 74<=v<=95:
  57. rank = 1
  58. elif 96<=v<=110:
  59. rank = 2
  60. elif 111<=v<=130:
  61. rank = 3
  62. elif 131<=v<=154:
  63. rank = 4
  64. elif 155<=v:
  65. rank = 5
  66. print(rank,end='')

我还以为点错题目了

第2关:python分支基础训练

  1. def print_(x):
  2. if type(x) == float:
  3. print("%.4f" % x)
  4. else:
  5. print(x)
  6. import math
  7. # 第1
  8. # 数据来源于列表
  9. for temp in [-280, -100, 0, 20, 120, 200]:
  10. # 请在下面编写代码
  11. # ********** Begin ********** #
  12. if temp>-273.5:
  13. F = 9/5*temp+32
  14. else:
  15. F = None
  16. # ********** End ********** #
  17. # 请不要修改下面的代码
  18. print_(F)
  19. print('\n***********************\n')
  20. # 第2
  21. # 数据来源于列表
  22. for number in [-101.23, -3.14, 0, 12.55, 1908]:
  23. # 请在下面编写代码
  24. # ********** Begin ********** #
  25. number = number if number >= 0 else -number
  26. # ********** End ********** #
  27. # 请不要修改下面的代码
  28. print_(number)
  29. print('\n***********************\n')
  30. # 第3
  31. # 数据来源于列表
  32. for (num1, num2) in [(12, 34), (-6, -7), (-12, 23), (-273, 0), (0, 199)]:
  33. # 请在下面编写代码
  34. # ********** Begin ********** #
  35. a = min(num2,num1)
  36. b = max(num2,num1)
  37. # ********** End ********** #
  38. # 请不要修改下面的代码
  39. print(a,' ',b)
  40. print('\n***********************\n')
  41. # 第4
  42. # 数据来源于列表
  43. for (num1, num2, num3) in [(-231, -321, 123), (100, 0, -99), (-980, -1002, -1), (6, 1, 2017)]:
  44. # 请在下面编写代码
  45. # ********** Begin ********** #
  46. l = sorted([num1,num2,num3])
  47. num1 = l[0]
  48. num2 = l[1]
  49. num3 = l[2]
  50. # ********** End ********** #
  51. # 请不要修改下面的代码
  52. print(num1, num2, num3)
  53. print('\n***********************\n')
  54. # 第5
  55. # 数据来源于列表
  56. for (num1, num2) in [(10, 5), (12, 34), (89, 0), (-100, 23), (789, -123)]:
  57. # 请在下面编写代码
  58. # ********** Begin ********** #
  59. if num2 != 0:
  60. result = num1/num2
  61. else:
  62. result = None
  63. # ********** End ********** #
  64. # 请不要修改下面的代码
  65. print_(result)
  66. print('\n***********************\n')
  67. # 第6
  68. # 数据来源于列表
  69. def quadratic_equation(a, b, c):
  70. discriminant = b ** 2 - 4 * a * c
  71. if discriminant < 0:
  72. return None
  73. elif discriminant == 0:
  74. x = -b / (2 * a)
  75. return x
  76. else:
  77. x1 = (-b + math.sqrt(discriminant)) / (2 * a)
  78. x2 = (-b - math.sqrt(discriminant)) / (2 * a)
  79. return x1, x2
  80. for (a, b, c) in [(1, 2, 1), (1, -2, 1), (1, 2, -3), (12, 34, 56), (78, 89, 100)]:
  81. roots = quadratic_equation(a, b, c)
  82. if roots is None:
  83. print(None,None)
  84. elif isinstance(roots, float):
  85. print(roots, roots)
  86. else:
  87. x1, x2 = roots
  88. print(x1,x2)
  89. # else:
  90. # print("方程的实根为:", roots)
  91. # ********** End ********** #
  92. # 请不要修改下面的代码
  93. print('\n***********************\n')
  94. # 第7
  95. # 数据来源于列表
  96. for x in [-9, -8, -7, -6, -5, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8]:
  97. # 请在下面编写代码
  98. # ********** Begin ********** #
  99. if -10 <= x< -8:
  100. fx = x-2
  101. elif -8 <= x < -6:
  102. fx = x+3
  103. elif -6 <= x <= -2:
  104. fx = x**2
  105. elif -2 < x < 2:
  106. fx = x if x >= 0 else -x
  107. elif 2 <= x <= 4:
  108. fx = x**3
  109. elif 4 < x <= 6:
  110. fx = 3*x-4
  111. elif 6 < x <= 8:
  112. fx = 4*x+1
  113. # ********** End ********** #
  114. # 请不要修改下面的代码
  115. print_(fx)

第3关:python分支综合训练

  1. # 第一题
  2. # 数据来源列表,每组数据输出一个结果
  3. for (Weight, Height) in [(60, 1.65), (40, 1.60), (80, 1.70), (75, 1.83), (88, 1.80)]:
  4. bmi = float(Weight / pow(Height, 2))
  5. wto, dom = " ", " "
  6. # 请在下面编写代码
  7. # wto, dom的结果为字符串类型的"肥胖""偏瘦""偏胖""正常"
  8. # ********** Begin ********** #
  9. bmi1,bmi2 = bmi,bmi
  10. if bmi<18.5:
  11. wto, dom = "偏瘦", "偏瘦"
  12. elif 18.5<bmi1<=25:
  13. wto = '正常'
  14. elif 25< bmi1 <=30:
  15. wto = '偏胖'
  16. elif 30<= bmi1:
  17. wto = '肥胖'
  18. if 18.5 < bmi2 <= 24:
  19. dom = '正常'
  20. elif 24 < bmi2 <= 28:
  21. dom = '偏胖'
  22. elif 28 <= bmi2:
  23. dom = '肥胖'
  24. # ********** End ********** #
  25. # 请不要修改下面的代码
  26. print("BMI 指标为:国际'{0}', 国内'{1}'".format(wto, dom))
  27. #print(bmi1,bmi2)
  28. print('\n******************************\n')
  29. # 第二题
  30. # 数据来源列表,每组数据输出一个结果
  31. for salary in [-1000, 0, 40000, 47450, 98000, 114650, 14980, 17470, 25670, 311950, 360000]:
  32. # 请在下面编写代码
  33. # ********** Begin ********** #
  34. if 0<salary<=47449:
  35. salaTax = salary*0.22
  36. elif 47450<=salary<=114649:
  37. salaTax = salary * 0.25
  38. elif 114650<=salary<=174699:
  39. salaTax = salary * 0.28
  40. elif 174700<=salary<=311949:
  41. salaTax = salary * 0.33
  42. elif 311950<=salary:
  43. salaTax = salary * 0.35
  44. else:
  45. salaTax = 0
  46. # ********** End ********** #
  47. # 请不要修改下面的代码
  48. print("%.4f" % salaTax) # 输出个人所得税salaTax
  49. print('\n***********************\n')
  50. # 第三题
  51. # 数据来源列表,每组数据输出一个结果
  52. for (p1, p2) in [('s', 'j'), ('b', 'j'), ('j', 'j'), ('b', 's')]:
  53. # 请在下面编写代码
  54. # p1,p2代表玩家1,玩家2's','j','b' 分别代表石头、剪刀和布
  55. # game=-101分别代表p1输局,平局,赢局
  56. # ********** Begin ********** #
  57. if p1 == p2:
  58. game = 0
  59. elif p1 == 's' and p2 == 'j':
  60. game = 1
  61. elif p1 == 'j' and p2 == 'b':
  62. game = 1
  63. elif p1 == 'b' and p2 == 's':
  64. game = 1
  65. else:
  66. game = -1
  67. # ********** End ********** #
  68. # 请不要修改下面的代码
  69. print(game)
  70. print('\n***********************\n')

总结:

很多题目都是思路简单,写起来麻烦,感觉只能用来练习打字》-《

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

闽ICP备14008679号