【Educoder python 作业答案】国防科技大学《大学计算机基础》Python控制结构(二)※

  • 第1关:分支结构基础实训
  • 第2关:循环结构基础实训
  • 第3关:函数基础实训
  • 第4关:控制结构综合实训

第1关:分支结构基础实训

from math import *
def print_(x):if type(x) == float:print("%.4f" % x)else:print(x)#第一题
for temp in [-280, -100, 0, 20, 120, 200]:#请在下面编写代码# ********** Begin ********** #if temp < -273.15:F = Noneelse:F = 9/5 * temp + 32# ********** End ********** ##请不要修改下面的代码print_(F)print('\n***********************\n')#第二题
for number in [-101.23, -3.14, 0, 12.55, 1908]:# 请在下面编写代码# ********** Begin ********** #if number < 0:number = - numberelse:number = number# ********** End ********** ## 请不要修改下面的代码print_(number)print('\n***********************\n')#第三题
for (num1, num2) in [(12, 34), (-6, -7),(-12, 23), (-273, 0), (0, 199)]:# 请在下面编写代码# ********** Begin ********** #if num1 > num2:temp = num1num1 = num2num2 = temp# ********** End ********** #    # 请不要修改下面的代码print(num1, '  ', num2)print('\n***********************\n')#第四题for (num1, num2, num3) in [(-231, -321, 123), (100, 0, -99), (-980, -1002, -1), (6,1,2017)]:# 请在下面编写代码# ********** Begin ********** #list = [num1,num2,num3]list.sort()num1 = list[0]num2 = list[1]num3 = list[2]# ********** End ********** #    # 请不要修改下面的代码print(num1, num2, num3)print('\n***********************\n')#第五题for (num1, num2) in [(10, 5), (12,34), (89,0), (-100, 23), (789, -123)]:# 请在下面编写代码# ********** Begin ********** #if num2 != 0:result = num1 / num2else:result = None# ********** End ********** #    # 请不要修改下面的代码print_(result)print('\n***********************\n')#第六题for (a, b, c) in [(1,2,1), (1,-2,1), (1,2,-3), (12, 34, 56), (78, 89, 100)]:# 请在下面编写代码# ********** Begin ********** #if a != 0:delta = b**2-4*a*cif delta < 0:root1 = Noneroot2 = Noneelif delta == 0:s = -b/(2*a)root1 = sroot2 = selse :root = sqrt(delta)root1 = (-b+root)/(2*a)root2 = (-b-root)/(2*a)# ********** End ********** #    # 请不要修改下面的代码print(root1, root2)print('\n***********************\n')#第七题for x in [-9, -8, -7, -6, -5, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8]:# 请在下面编写代码# ********** Begin ********** #if x >= -10 and x < - 8:x -= 2elif x >= -8 and x < -6:x += 3elif x >= -6 and x <= -2:x = x**2elif x > -2 and x < 2:x = abs(x)elif x >= 2 and x <= 4:x = x**3elif x > 4 and x <= 6:x = 3*x - 4else:x = 4*x+1# ********** End ********** #    # 请不要修改下面的代码print_(x)

第2关:循环结构基础实训

from random import *
from math import *r = []
for i in [10, 200,300,400,500,600,700,800,900,1000]:seed(i)r.append(randint(1, i))#第一题#请在下面编写代码
# ********** Begin ********** #
print('摄氏温度\t\t华氏温度')
print('********************')
for temp in range(-40, 55, 5):fah = 9 * temp / 5 + 32print(str(temp) + '\t\t' + str(fah))
# ********** End ********** #
#请不要修改下面的代码print('\n***********************\n')#第二题numbers = []# 请在下面编写代码
# ********** Begin ********** #
n = 0
while n <= 300:if n % 2 == 0 and n % 3 == 0 and n % 5 == 0:numbers.append(n)n += 1
# ********** End ********** #
# 请不要修改下面的代码
print(numbers)print('\n***********************\n')#第三题# 请在下面编写代码
# ********** Begin ********** #
sum = 0
for i in range(1, 101):sum+=i
# ********** End ********** #
# 请不要修改下面的代码
print(sum, '\t', 100*(100+1)//2)print('\n***********************\n')#第四题# 请在下面编写代码
# ********** Begin ********** #
fac = 1
for i in range(1, 31):fac = fac*i
# ********** End ********** #
# 请不要修改下面的代码
print(fac)print('\n***********************\n')#第五题for num in r:#请在下面编写代码# ********** Begin ********** #is_prime = Truefor i in range(2, num-1):if num % i == 0:is_prime = Falsebreakprint(is_prime)# ********** End ********** ## 请不要修改下面的代码
print('\n***********************\n')#第六题
sum = 0
avg = 0
for num in r:# 请在下面编写代码# ********** Begin ********** #sum += num
avg = sum / len(r)# ********** End ********** ## 请不要修改下面的代码
print(sum, '\t', avg)

第3关:函数基础实训

from random import *
from math import *r = []
for i in [10, 200,300,400,500,600,700,800,900,1000]:seed(i)r.append(randint(1, i))def print_(x):if type(x) == float:print("%.4f" % x)else:print(x)#第一题def sumInt(n):#请在下面编写代码# ********** Begin ********** #if n < 0:return Nonesummary = 0for i in range(1, n + 1):summary += ireturn summary# ********** End ********** #    #请不要修改下面的代码return summary#第二题def factorial(n):#请在下面编写代码# ********** Begin ********** #if n < 0:return Nonefac = 1for i in range(1, n+1):fac *= i # ********** End ********** #    #请不要修改下面的代码return fac#第三题def isPrime(n):# 请在下面编写代码# ********** Begin ********** #isprime = Truefor i in range(2, int(sqrt(n))+1):if n % i == 0:isprime = Falsebreak# ********** End ********** #        # 请不要修改下面的代码return (isprime)#第四题def f(x):# 请在下面编写代码# ********** Begin ********** #if -10 <= x < -8:fx = x - 2elif x < -6:fx = x + 3elif x <= -2:fx = x * xelif x < 2:fx = abs(x)elif x <= 4:fx = x ** 3elif x <= 6:fx = 3 * x -4elif x <= 8:fx = 4 * x + 1# ********** End ********** #        # 请不要修改下面的代码return fx#第五题def tax(salary):#请在下面编写代码# ********** Begin ********** #if salary < 0:returnelif salary < 47450:salaTax = salary * 0.22elif salary < 114650:salaTax = salary * 0.25elif salary < 174700:salaTax = salary * 0.28elif salary < 311950:salaTax = salary * 0.33else:salaTax = salary * 0.35# ********** End ********** #        # 请不要修改下面的代码return salaTaxif __name__ == '__main__':for num in [-10, 0, 10, 100, 1000, 10000]:summary = sumInt(num)print(summary)print('\n***********************\n')for num in [-5, 0, 10, 15, 20, 25, 30]:fac = factorial(num)print(fac)print('\n***********************\n')for num in r:isprime = isPrime(num)print(isprime)print('\n***********************\n')for x in [-9, -8, -7, -6, -5, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8]:fx = f(x)print(fx)print('\n***********************\n')for salary in [-1000, 0, 40000, 47450, 98000, 114650, 14980, 17470, 25670, 311950, 360000]:st = tax(salary)print_(st)

第4关:控制结构综合实训

#第一题def rankHurricane(velocity):#请在下面编写代码# ********** Begin ********** #rank = Noneif velocity < 74:return Noneif 74 <= velocity <= 95:rank = 1elif velocity <= 110:rank = 2elif velocity <= 130:rank = 3elif velocity <= 154:rank = 4else:rank = 5# ********** End ********** ##请不要修改下面的代码return rank#第二题def validCreditCard(num):#请在下面编写代码# ********** Begin ********** #valid = Falseif 100000000 > num > 10000000 :oddSum = 0even = 0evenSum = 0while not(num == 0):oddSum += (num % 10)num=num//10even=(num%10)*2while not(even==0):evenSum += (even % 10)even = even // 10num = num // 10final = oddSum + evenSumif final % 10 == 0:valid = True# ********** End ********** #    #请不要修改下面的代码return valid#第三题def ISBN(n):# 请在下面编写代码# ********** Begin ********** #total = 0num = nfor i in range(2, 11):digit = num % 10total += i * digitnum //= 10strn = str(n)if len(strn) < 9:strn = '0' * (9- len(strn)) + strntrueISBN = ''if total % 11 == 1:trueISBN = strn + 'X'elif total % 11 == 0:trueISBN = strn + '0'else:trueISBN = strn + str(11 - (total % 11))# ********** End ********** #    # 请不要修改下面的代码return (trueISBN)#第四题def day(y, m, d):#计算y年m月d日是星期几# 请在下面编写代码# ********** Begin ********** #y0 = y- (14-m) // 12x= y0 + y0 // 4 - y0 // 100 + y0 // 400m0 = m + 12 *((14- m) // 12) -2d0 = (d + x + (31 * m0) //12) % 7# ********** End ********** #    # 请不要修改下面的代码return d0def isLeapYear(year): #判断year年是否闰年# 请在下面编写代码# ********** Begin ********** #isLeapYear = (year %4 == 0)isleapYear = isLeapYear and (year % 100 != 0)isleapYear = isleapYear or (year % 400 == 0)# ********** End ********** #    # 请不要修改下面的代码return isLeapYeardef calendar(y, m): #打印y年m月日历print('       {}年{}月'.format(y,m))print('Su\tM\tTu\tW\tTh\tF\tSa')# 请在下面编写代码# ********** Begin ********** #date = day(y, m, 1)days = 0if m in[1,3,5,7,8,10,12]:days = 31elif m in [4, 6, 9, 11]:days = 30else:if isLeapYear(y):days = 29else:days = 28count = datefor i in range(date):print('\t', end='')for d in range(1, days + 1):print(str(d) + '\t', end="")count=(count+1) % 7if count == 0:print()print()# ********** End ********** ## 请不要修改下面的代码#第五题def ramanujan(n):results = []#请在下面编写代码# ********** Begin ********** #for a in range(1, n + 1):a3 = a*a*aif a3 > n:breakfor b in range(a, n + 1):b3 =b * b * bif a3+b3 > n:breakfor c in range(a + 1, n + 1):c3=c*c*cif c3 > a3+b3:breakfor d in range(c, n + 1):d3=d*d*dif c3 + d3 > a3 + b3:breakif c3+d3 == a3+b3:result = str(a3+b3) + ' = ' + str(a) + '^3 + ' + str(b) + '^3 = ' +str(c) + '^3 + '+ str(d) + '^3' results.append(result)# ********** End ********** #    # 请不要修改下面的代码return results#第六题def unit_to_word(u): #将0~9的数字转换成英文,并返回转换后的英文# 请在下面编写代码# ********** Begin ********** #convert_table = {0: "zero",1: "one",2: "two",3: "three",4: "four",5: "five",6: "six",7: "seven",8: "eight",9: "nine",}return convert_table[u]# ********** End ********** ## 请不要修改下面的代码def tens_to_word(t): #利用unit_to_word,将10~19、以及20~99的十位部分数字转换成英文,并返回转换后的英文# 请在下面编写代码# ********** Begin ********** #convert_table = {0:"",10: "ten" ,11: "eleven",12: "twelve",13: "thirteen",14: "fourteen",15: "fifteen",16: " sixteen",17: "seventeen",18: "eighteen",19: "nineteen",2: "twenty",3: "thirty",4: "forty",5: "fifty",6: "sixty",7: "seventy",8: "eighty",9: "ninety",}if 9<t<20:return convert_table[t]else:tens = convert_table[t//10] +" "+ unit_to_word(t%10)return tens.lstrip()# ********** End ********** ## 请不要修改下面的代码def hundreds_to_word(h): #利用unit_to_word、tens_to_word进行转换,并返回转换后结果的函数# 请在下面编写代码# ********** Begin ********** #if h > 99:word = unit_to_word(h//100) +" hundred"tens = h % 100if tens == 0:return wordelse:return word + " and " + tens_to_word(tens)else:return tens_to_word(h)# ********** End ********** #    # 请不要修改下面的代码if __name__ == '__main__':for v in [60, 74, 95, 96, 110, 111, 130, 131, 154, 170]:rank = rankHurricane(v)print(rank)print('\n***********************\n')for num in [1234567, 43589795, 87539319, 123456789]:valid = validCreditCard(num)print(valid)print('\n***********************\n')for num in [201314525, 488888913, 977889994, 753231846, 701134069]:trueISBN = ISBN(num)print(trueISBN)print('\n***********************\n')for (y,m) in [(2017,8), (2017,10),(2015,8), (2017,2), (2016,2)]:calendar(y, m)print('---------------------------')print('\n***********************\n')for num in [2000, 10000, 100000]:st = ramanujan(num)for item in st:print(item)print('\n***********************\n')for test in [0, 5, 19, 23, 100, 700, 711, 729]:print(test, "=>", hundreds_to_word(test))

【Educoder python 作业答案】国防科技大学《大学计算机基础》Python控制结构(二)※相关推荐

  1. 天津科技大学计算机基础,天津科技大学大学计算机基础样卷

    天津科技大学大学计算机基础样卷 (8页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 说明:说明:本试卷仅用于帮助学生了解期末考试题型.了 ...

  2. 2016年大学计算机期末试题及答案,2016年大学计算机基础试题题库及答案

    2016年大学计算机基础试题题库及答案 一.单选题练习 1.完整的计算机系统由( C )组成. A.运算器.控制器.存储器.输入设备和输出设备 B.主机和外部设备 C.硬件系统和软件系统 D.主机箱. ...

  3. 大学计算机基础python学多久_基于Python 的“大学计算机基础”课程教学设计

    基于Python 的"大学计算机基础"课程教学设计 日期:2018-04-11 04:32 摘要 培养非计算机专业大学生的计算思维能力,在"大学计算机基础"课程 ...

  4. 大学入学计算机理论知识试卷及答案,2017年大学计算机基础知识试题及答案

    2017年大学计算机基础知识试题及答案 一. 用适当内容填空 1. 微型计算机通过(主板)将CPU等各种器件和外部设备有机地结合起来,形成一套完整系统. 2. 微处理器是由(控制器)和(运算器)组成. ...

  5. 大学计算机基础课程作业第4-6章,大学计算机基础课程作业(4—6章)(5页)-原创力文档...

    大理大学成人高等教育 大学计算机基础课程作业(第4-6章) 1.课程名称:大学计算机基础 2.适用专业:非计算机类各专业 3.选用教材:大学计算机基础,陈本辉 杨锦伟 主编,北京师范大学出版社,201 ...

  6. 大学计算机基础python第二次作业_第二次python作业-titanic数据练习

    原博文 2019-10-14 14:45 − 一.读入titanic.xlsx文件,按照教材示例步骤,完成数据清洗. titanic数据集包含11个特征,分别是: Survived:0代表死亡,1代表 ...

  7. 新农慕课python项目答案_2020中国大学慕课用Python玩转数据答案搜题公众号

    2020中国大学慕课用Python玩转数据答案搜题公众号 更多相关问题 低碳钥Q235钢板对接时,焊条应选用().A.E7015B.E6015C.E5515D.E4303 不属于无线宽带接入技术的() ...

  8. 华师网络计算机在线作业答案,华师在线计算机基础在线作业题目和答案

    华师在线计算机基础在线作业题目和答案 (12页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.9 积分 .华师在线计算机基础在线作业题目及答案1.第 ...

  9. 大学计算机基础python第二次作业_python第二次作业

    #!/use/bin/env python#_*_ coding:utf-8 _*_ #知识点#divmod取余#1.计算100-300之间所有能被3和7整除的数之和#sum=0#for i in r ...

  10. 大学计算机基础python第二次作业_python第二次作业-titanic数据集练习

    一.读入titanic.xlsx文件,按照教材示例步骤,完成数据清洗. titanic数据集包含11个特征,分别是: Survived:0代表死亡,1代表存活 Pclass:乘客所持票类,有三种值(1 ...

最新文章

  1. 《用户体验设计 本质、策略与经验》一导读
  2. python网上编程课程-程序设计入门—Python
  3. linux下用js生成xml文件,使用JS读取XML文件的方法
  4. String与Array
  5. jsp和mysql答辩_jsp+servletmysql 毕业论文答辩理系统(带远程指导)
  6. 2021年中国车载信息娱乐系统市场趋势报告、技术动态创新及2027年市场预测
  7. android socket第三方库,OkSocket 一个Android轻量级Socket通讯框架
  8. Linux基本操作笔记
  9. alreader 2 android,AlReader2
  10. AD中画PCB详细流程
  11. 5W1H、5W2H 分析法
  12. Dell电脑重装系统
  13. 计算机科学本质源自于数学思维,计算思维的特点、特征:形式化、程序化、机械化...
  14. 你知道Excel中身份证号码提取年龄的公式吗?
  15. 今日睡眠质量记录77分
  16. InfoQ在ETE大会上对Android工程师Jake Wharton的采访
  17. c语言中数组怎么用乘法分配律,乘法分配律说课稿(5篇)(33页)-原创力文档
  18. WCF实现双工通讯及客户端调用
  19. 1月第4周安全回顾 移动安全受关注 黑客威胁公共设施
  20. docker创建容器相关命令【详细版】

热门文章

  1. 【亲测源码】完美运营聚合易支付源码
  2. 2台博能传动伺服驱动器使用105报文(DSC)实现绝对齿轮同步
  3. IBC算法之SM9简介
  4. 计算机缺乏内存将无法运行,解决方案:计算机无法进入常见系统故障的内存
  5. 【数据库概论】关系代数(传统集合运算和专门关系运算)
  6. JS与CSS交互及JavaScript 特效之四大家族
  7. 数据库分表分页实现方案
  8. 题解洛谷1179数字统计 记录问题
  9. RocketMQ原理刨析
  10. app index.html,app_index.html =应用程序在管理站点看到