【Python】练习:控制语句(二)第4关

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

  • 第一题
  • 第二题(※)
  • 第三题(※)
  • 第四题(※)
  • 第五题(※)
  • 第六题(※)

第一题

在这里插入图片描述

#第一题def rankHurricane(velocity):#请在下面编写代码# ********** Begin ********** #if velocity<74:rank=Noneelif 74 <= velocity <= 95:rank = 1elif velocity <= 110:rank = 2elif velocity <= 130:rank = 3elif velocity <= 154:rank = 4else:rank = 5# ********** End ********** ##请不要修改下面的代码return rank

第二题(※)

在这里插入图片描述

解题思路
(1)在八位数字里,从右边开始,取最后一位后,加至偶数位和中,然后去掉最后一位,此时为奇数位,取其并乘2
(2)把奇数位乘以2的结果拆解相加:结果是两位数,因此先%10得到个位数,后//10去掉个位数,循环结束条件为even==0,即十位数已经加完,只剩下十位数//10,得到0,不再进行相加
(3)去掉该奇数位,如此循环。循环结束条件依然是num为0

#第二题def validCreditCard(num):#请在下面编写代码# ********** Begin ********** #valid=Falseif 10000000<num<100000000: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

第三题(※)

在这里插入图片描述

解题思路
(1)在九位数字中,先把公式中的权重和写出来:从最后一位起,逐个乘以对应系数
(2)使用字符串相连接,不足九位,前面补0
(3)将公式总和%11,余数为1,则补X;余数为0,则刚好是11的倍数,补0;其他情况,算加上数字几后可以成为11的倍数,后补上该数字

#第三题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)

第四题(※)

在这里插入图片描述

解题思路
(1)本题涉及三个函数的编写
(2)借助计算y年m月d日是星期几这个函数(记):
在这里插入图片描述
(3)判断闰年的函数:四年一闰,百年不闰,四百年又闰
(4)将本月1号是星期几赋给date,并判断此月有多少天
(5)打印y年m月,打印星期,打印一号前的空格,而后打印1号到28/29/30/31号,一星期一星期打印。count = (count + 1) % 7 更新count为下一天的星期几,如果count为0,表示已经到了星期六,打印换行符print()以开始新的一周

#第四题def day(y, m, d):#计算y年m月d日是星期几# 请在下面编写代码# ********** Begin ********** ## 调整年份,如果月份在3月之前,年份减1y0 = y - (14 - m) // 12# 计算世纪数和世纪内的年份,用于计算星期几x = y0 + y0 // 4 - y0 // 100 + y0 // 400# 调整月份,如果月份在3月之前,将其转换为前一年的13月或14月m0 = m + 12 * ((14 - m) // 12) - 2# 使用蔡勒公式计算星期几,结果是一个06的数字,0代表星期六,1代表星期日,以此类推d0 = (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 ********** ## 请不要修改下面的代码

测试结果
在这里插入图片描述

第五题(※)

在这里插入图片描述

解题思路
(1)利用四个嵌套循环找到abcd
(2)从1到n开始找a,然后从a到n开始找b,然后等号右边,从a+1到n开始找c,从c到n开始找d
(3)这个过程中,a的立方、a的立方+b的立方不能超过n,c的立方不能超过a的立方+b的立方、c的立方+d的立方不能超过a的立方+b的立方

#第五题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

测试结果
在这里插入图片描述

第六题(※)

在这里插入图片描述

解题思路:
(1)0~9:借助字典转换
(2)10 ~ 19、 20 ~ 99:用字典写出10 ~ 19的转换以及0、2 ~ 9的转换
(3)百位:分为0 ~ 99和100以后的处理

#第六题def unit_to_word(u): #将09的数字转换成英文,并返回转换后的英文# 请在下面编写代码# ********** 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,将1019、以及2099的十位部分数字转换成英文,并返回转换后的英文# 请在下面编写代码# ********** 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",}# 如果数字在1019之间,直接返回对应的英文单词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 ********** ## 如果数字大于99,处理百位if h>99:word=unit_to_word(h//100)+" hundred"tens=h%100if tens==0:return wordelse:return word+" and "+tens_to_word(tens)# 如果数字小于或等于99,直接调用tens_to_word函数else:return tens_to_word(h)# ********** End ********** #    # 请不要修改下面的代码

测试结果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/145808.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

毫米波雷达预警功能 —— 盲区检测(BSD)预警

文档声明&#xff1a; 以下资料均属于本人在学习过程中产出的学习笔记&#xff0c;如果错误或者遗漏之处&#xff0c;请多多指正。并且该文档在后期会随着学习的深入不断补充完善。感谢各位的参考查看。 笔记资料仅供学习交流使用&#xff0c;转载请标明出处&#xff0c;谢谢配…

MySQL高阶1875-将工资相同的雇员分组

目录 题目 准备数据 分析数据 题目 编写一个解决方案来获取每一个被分配到组中的雇员的 team_id 。 返回的结果表按照 team_id 升序排列。如果相同&#xff0c;则按照 employee_id 升序排列。 这家公司想要将 工资相同 的雇员划分到同一个组中。每个组需要满足如下要求&a…

Lichee NanoKVM基本使用环境

Lichee NanoKVM基本使用环境 本文章主要记录一些自己在初期的使用&#xff0c;以及自己的一些经验 &#xff0c;非常感谢sipeed NanoKVM官方使用教程 外观&#xff08;博主自己的是lite版本&#xff0c;非常感谢sipeed&#xff09; Lichee NanoKVM 是基于 LicheeRV Nano 的 I…

msvcp120dll丢失问题的相关分享,4种靠谱的修复msvcp120dll的方法

在你启动某个软件或游戏的过程中&#xff0c;如果屏幕上突然出现一条提示说“msvcp120.dll文件缺失”这时候请不要紧张&#xff0c;要解决这个问题还是比较简单的。msvcp120.dll 是一个关键的系统文件&#xff0c;属于 Microsoft Visual C 可再发行组件包的一部分。它包含了许多…

电影《祝你幸福!》观后感

上周看了电影《祝你幸福&#xff01;》&#xff0c;虽然讲述的是一个悲伤的故事&#xff0c;但自己看来&#xff0c;其实更是一个人遭遇创伤后&#xff0c;如何自己走出来的过程&#xff0c;尤其重大精神创伤。另外作为本部电影的主角&#xff0c;另一个身份是律师&#xff0c;…

编译成功!QT/6.7.2/Creator编译Windows64 MySQL驱动(MSVC版)

相邻你找了很多博文&#xff0c;都没有办法。现在终于找到了正宗。 参考 GitHub - thecodemonkey86/qt_mysql_driver: Typical symptom: QMYSQL driver not loaded. Solution: get pre-built Qt SQL driver plug-in required to establish a connection to MySQL / MariaDB u…

小红书本地生活,要生活还是生意?

8月&#xff0c;沉寂许久的小红书本地生活突然动作频频。8月23日&#xff0c;小红书新增本地生活服务商管理规范和入驻规则&#xff0c;10天后正式宣布开放全国49座城市的餐饮团购类目&#xff0c;并将技术服务费从0.6%最新调整至2.6%&#xff0c;49城餐饮商家自此打通门店团购…

python开发子域名扫描器

python开发子域名扫描器 1. 前言2. 子域名扫描器开发2.1. 第一阶段2.2. 第二阶段2.3. 第三阶段2.4. 第四阶段 3. 总结 1. 前言 不想对内容解释过多了&#xff0c;自行去百度搜索相关的参数怎么使用的吧。对于编写工具基本上用到的无非就是多线程、请求等等这些&#xff0c;很多…

【Elasticsearch】-spring boot 依赖包冲突问题

<dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.17.24</version></dependency> 在pom的配置中&#xff0c;只引入了elasticsearch-7.17.24 &#xff0c;但实际上会同时…

android编译make详细过程日志查看showcommands/verbose.log

背景&#xff1a; 平时做aosp开发时候&#xff0c;如果要编译某一个模块就会直接使用命令make&#xff0c;或者make xxx模块。 比如&#xff1a; make SettingsProvider make SystemUI make bootanimation这样就直接有对应的apk&#xff0c;或者bin文件了&#xff0c;具体这些…

20240921 每日AI必读资讯

AI、悟空、西湖文创集盒……2024云栖大会有超多硬核科技&#xff01; - 9月19日&#xff0c;一年一度的阿里云栖大会拉开帷幕 - 阿里现任掌舵者吴泳铭、CTO周靖人携手大模型领域当红炸子鸡月之暗面CEO杨植麟、小鹏汽车CEO何小鹏等一众明星企业创始人给业界带来了一场久违的国…

Docker + Win 10 学习记录

下载Docker Release notes | Docker Docs 推荐使用4.33版本&#xff0c;最新的Docker版本在win10 22H2无法安装。需要升级到win11. 查看Win10版本是否与最新版的Docker兼容 运行 win R&#xff0c; 然后输入winver 如果你的Docker版本无法在当前的win10安装&#xff0c;请更…

搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(五)-聚合

聚合 聚合基于Query结果的统计&#xff0c;执行过程是搜索的一部分&#xff0c;Onesearch支持0代码构建聚合&#xff0c;聚合目前完全在引擎层 0代码聚合 上图是聚合的配置&#xff0c;包括2个pdm文档聚合统计 termsOfExt term桶聚合&#xff0c;统计ext&#xff0c;如&…

热点|创邻图查询范式引爆LDBC TUC2024

2024年8月30日至31日&#xff0c;创邻科技Galaxybase团队联合蚂蚁集团TuGraph团队、阿里巴巴GraphScope团队共同主办第18届LDBC TUC会议。在本次会议中&#xff0c;来自全球图数据库领域的学者和技术专家做了很多精彩的分享&#xff0c;共同探讨图技术的最新进展。创邻科技Gala…

MySQL高阶1853-转换日期格式

目录 题目 准备数据 分析数据 总结 题目 给定一个Days表&#xff0c;请你编写SQL查询语句&#xff0c;将Days表中的每一个日期转化为"day_name, month_name day, year"格式的字符串。 返回的结果表 不计顺序 。 准备数据 Create table If Not Exists Days (d…

【Kubernetes知识点】HPA如何控制不同的资源实现自动扩缩容?

【Kubernetes知识点】HPA如何控制不同的资源实现自动扩缩容&#xff1f; 目录 1 概念 1.1 什么是HPA1.2 Deployment 与 HPA 的关系 1.2.1 工作原理 1.3 StatefulSet 与 HPA 的关系 1.3.1 工作原理 2 实验案例&#xff1a;HPA 控制 StatefulSet 进行扩缩容 2.1 部署一个有状态…

[产品管理-28]:NPDP新产品开发 - 26 - 产品生命周期管理 - 产品上市的八大步骤

目录 一、产品发布 1.1 传统的产品上市发布步骤&#xff1a;线性一次性发布 1. 产品概念提出与市场调研 2. 产品开发与测试 3. 生产准备与质量控制 4. 营销策略制定 5. 产品上市发布 6. 持续优化与迭代 1.2 新型的产品上市发布步骤&#xff1a;逐步迭代&#xff0c;多…

【mysql技术内幕】

MySQL之技术内幕 1.MVCC模式2. 实现mvcc模式的基础点3.MySQL锁的类型4. 谈谈分库分表5. 分表后的id咋么保证唯一性呢&#xff1f;6. 分表后非sharding key的查询咋么处理的&#xff1f; 1.MVCC模式 MVCC, 是multi-version concurrency control的缩写&#xff0c;即多版本并发控…

基于RK3588,AI边缘模块,单片6TOPS,可集群堆叠,Mixtile Blade 3

Mixtile Blade 3 是一款经济实惠、节能的 SBC&#xff0c;围绕下一代 8 纳米瑞芯微 RK3588 处理器构建。它非常适合快速开发、AI 应用程序原型设计和边缘计算&#xff0c;允许您集群多个 Mixtile Blade 3 SBC 以扩展您的部署。 硬件布局正反面 开箱即用的 Mixtile Blade 3 是一…

Jordan标准型

Jordan(若尔当)标准型知识梳理 szmike Keep curious 已关注 raDar 等 634 人赞同了该文章 本文主要介绍什么是Jordan标准型以及怎么把一个矩阵化为Jordan标准型。 一&#xff0c;Jordan标准型的定义 矩阵 J 除了主对角线和主对角线上方元素之外&#xff0c;其余都是0&…