当前位置: 首页 > news >正文

Datawhale聪明办法学Python(竞赛题解版)

一、课程基本结构


课程开源地址:课程进度列表 - 聪明办法学 Python 第二版

章节结构:

  • Chapter 0 安装 Installation
  • Chapter 1 启航 Getting Started
  • Chapter 2 数据类型和操作 Data Types and Operators
  • Chapter 3 变量与函数 Variables and Functions
  • Chapter 4 条件 Conditionals
  • Chapter 5 循环 Loop
  • Chapter 6 字符串 Strings
     

二、竞赛题解

直接写题了。。。。注意验证后提交,不然不算分。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

1、小鲸鱼的 Lucky Word

def is_prime(n):if n < 2:return Falsefor i in range(2, int(math.sqrt(n)) + 1):if n % i == 0:return Falsereturn Truedef check_lucky_word(word):# 计算每个字母的出现次数letter_counts = [word.count(letter) for letter in set(word)]# 找到出现次数最多和最少的字母的次数max_count = max(letter_counts)min_count = min(letter_counts)# 计算差值diff = max_count - min_count# 判断差值是否为质数if is_prime(diff):return "Lucky Word", diffelse:return "No Answer", 0# 从输入中获取单词
word = input()# 调用函数检查单词是否是Lucky Word并打印结果
result, diff = check_lucky_word(word)
print(result)
print(diff)

2.哥德巴赫猜想   改编自 洛谷 P1304 哥德巴赫猜想

def is_prime(n):if n < 2:return Falsefor i in range(2, int(math.sqrt(n)) + 1):if n % i == 0:return Falsereturn Truedef goldbach_conjecture(n):results = []for i in range(4, n+1, 2):for j in range(2, i//2 + 1):if is_prime(j) and is_prime(i-j):results.append((i, j, i-j))breakreturn results# 从输入中获取偶数N
N = int(input())# 调用函数验证哥德巴赫猜想并打印结果
results = goldbach_conjecture(N)
for result in results:even_num, prime1, prime2 = resultprint(f"{even_num}={prime1}+{prime2}")

3.不高兴的小鲸鱼

def check_whale_schedule(schedule):max_unhappiness = 0unhappiest_day = 0for day, (school_hours, mom_hours) in enumerate(schedule, start=1):total_hours = school_hours + mom_hours# 计算不高兴程度unhappiness = max(0, total_hours - 8)# 更新最大不高兴程度和对应的天数if unhappiness > max_unhappiness:max_unhappiness = unhappinessunhappiest_day = dayreturn unhappiest_day# 从输入中获取每天的上课时间和安排时间
schedule = []
for _ in range(7):school_hours, mom_hours = map(int, input().split())schedule.append((school_hours, mom_hours))# 调用函数检查小鲸鱼的日程安排并打印结果
result = check_whale_schedule(schedule)
print(result)

4.小鲸鱼的游泳时间   改编自 洛谷 P1425 小鱼的游泳时间

def calculate_swimming_time(start_hour, start_minute, end_hour, end_minute):# 将开始时间和结束时间转换为分钟数start_time = start_hour * 60 + start_minuteend_time = end_hour * 60 + end_minute# 计算游泳时间total_time = end_time - start_time# 将总时间转换为小时和分钟hours = total_time // 60minutes = total_time % 60return hours, minutes# 从输入中获取开始时间和结束时间
start_hour, start_minute, end_hour, end_minute = map(int, input().split())# 调用函数计算游泳时间并打印结果
result = calculate_swimming_time(start_hour, start_minute, end_hour, end_minute)
print(result[0], result[1])

5.改编自 NOIP 2017 普及组 T1

def calculate_score(scores):weights = [0.2, 0.3, 0.5]total_score = sum(score * weight for score, weight in zip(scores, weights))return int(total_score)# 从输入中获取三个成绩
scores = list(map(int, input().split()))# 调用函数计算最终成绩并打印结果
result = calculate_score(scores)
print(result)

三、总结

最后的竞赛撒花,通过半个月的复习,加深了对python的印象,不知道当时约定好一起学习python的小伙伴还在一起学习,每次都会写在笔记里的,希望大家坚持下去,不仅是分享这份开源,更是分享自己的成长,抽时间出来和大家学习讨论还是挺有意义的,希望以后还会有这个心气去完成后续课程的学习,另外鼓励更多的小伙伴加入到DataWhale的开源当中去,构建开源生态,最后借此机会,祝DataWhale越来越好,五周年生日快乐。。。。

相关文章:

  • HBase基础知识(七):HBase 性能优化示例全解
  • isp代理/双isp代理/数据中心代理的区别?如何选择?
  • 智能三维数据虚拟现实电子沙盘
  • 图片素材管理软件Eagle for mac提高素材整理维度
  • 详解Keras3.0 Layer API: LSTM layer
  • 直接插入排序和希尔排序
  • GPT在企业自动化方面的应用
  • Linux账号和权限管理
  • Linux - 记录问题:Ubuntu查看文件夹大小
  • 云原生Kubernetes:K8S集群实现容器运行时迁移(docker → containerd) 与 版本升级(v1.23.14 → v1.24.1)
  • 代码随想录算法训练营第二十七天 | 回溯算法part4
  • alertmanage调用企业微信告警(k8s内部署)
  • Python 爬虫之下载歌曲(二)
  • 每日一题——LeetCode206.反转链表
  • 【微服务核心】Spring Boot
  • [NodeJS] 关于Buffer
  • [译] 怎样写一个基础的编译器
  • 4. 路由到控制器 - Laravel从零开始教程
  • iOS小技巧之UIImagePickerController实现头像选择
  • Laravel 菜鸟晋级之路
  • mongo索引构建
  • nfs客户端进程变D,延伸linux的lock
  • Sequelize 中文文档 v4 - Getting started - 入门
  • SQLServer之索引简介
  • VUE es6技巧写法(持续更新中~~~)
  • windows下mongoDB的环境配置
  • Xmanager 远程桌面 CentOS 7
  • 力扣(LeetCode)965
  • 爬虫模拟登陆 SegmentFault
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 实习面试笔记
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 06-01 点餐小程序前台界面搭建
  • k8s使用glusterfs实现动态持久化存储
  • 如何正确理解,内页权重高于首页?
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​【已解决】npm install​卡主不动的情况
  • ​学习一下,什么是预包装食品?​
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • #考研#计算机文化知识1(局域网及网络互联)
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • #知识分享#笔记#学习方法
  • $GOPATH/go.mod exists but should not goland
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (1)(1.11) SiK Radio v2(一)
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (windows2012共享文件夹和防火墙设置
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)linux自定义开机启动服务和chkconfig使用方法