【Python CheckiO 题解】Multicolored Lamp


CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。

CheckiO 官网:https://checkio.org/

我的 CheckiO 主页:https://py.checkio.org/user/TRHX/

CheckiO 题解系列专栏:https://itrhx.blog.csdn.net/category_9536424.html

CheckiO 所有题解源代码:https://github.com/TRHX/Python-CheckiO-Exercise


题目描述

【Multicolored Lamp】:新年快到了,您已经决定要装修房屋。但是简单的灯光和圣诞节装饰太无聊了,因此您已经意识到可以使用编程技巧来创建一些非常酷和新颖的东西。您的任务是创建类 Lamp() 和方法 light(),它们将使灯以序列中的四种颜色之一(Green, Red, Blue, Yellow)发光。第一次使用 light() 方法时,颜色应为 Green,第二次应为 Red,依此类推。如果当前颜色为 Yellow,则下一个颜色应为 Green,依此类推。

【链接】:https://py.checkio.org/mission/multicolored-lamp/

【输入】:字符串,表示打开灯的次数

【输出】:灯的颜色

【前提】:4 colors: Green, Red, Blue, Yellow.

【范例】

lamp_1 = Lamp()
lamp_2 = Lamp()lamp_1.light() #Green
lamp_1.light() #Red
lamp_2.light() #Greenlamp_1.light() == "Blue"
lamp_1.light() == "Yellow"
lamp_1.light() == "Green"
lamp_2.light() == "Red"
lamp_2.light() == "Blue"

代码实现

colors = ['Green', 'Red', 'Blue', 'Yellow']class Lamp:def __init__(self):self.count = 0def light(self):if self.count == 4:self.count = 0color=colors[self.count]else:color=colors[self.count]self.count += 1return colorif __name__ == '__main__':#These "asserts" using only for self-checking and not necessary for auto-testinglamp_1 = Lamp()lamp_2 = Lamp()lamp_1.light() #Greenlamp_1.light() #Redlamp_2.light() #Greenassert lamp_1.light() == "Blue"assert lamp_1.light() == "Yellow"assert lamp_1.light() == "Green"assert lamp_2.light() == "Red"assert lamp_2.light() == "Blue"print("Coding complete? Let's try tests!")

大神解答

大神解答 NO.1

from itertools import cycleclass Lamp:sequence = ('Green', 'Red', 'Blue', 'Yellow')def __init__(self):self.lights = cycle(Lamp.sequence)def light(self):return next(self.lights)

大神解答 NO.2

from itertools import cycleclass Lamp(cycle):__new__ = lambda cls: cycle.__new__(cls, 'Green Red Blue Yellow'.split())light = cycle.__next__

大神解答 NO.3

from itertools import cyclesequence = ('Green', 'Red', 'Blue', 'Yellow')
Lamp = type('', (), {'__init__': lambda s: setattr(s, 'c', cycle(sequence)), 'light': lambda s: next(s.c)})

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】五大方法,彻底永久关闭win10自动更新的方法【已验证有效】

自从微软大面积使用某员工后,思路越来越奇葩了,前天工作没做完,放在那里,第二天毫无羞耻的就给你重启了,那一瞬间,真想拿dollar到对面slay。于是就有下文,大部分内容是从网上摘录、归纳起来的。…

【Python CheckiO 题解】Probably Dice

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

【Python CheckiO 题解】Roman Numerals

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

Dynamics CRM 2016 安装

Dynamics CRM 2016 安装 CRM 2016出来了一段时间了,一直也没机会尝试一下,现在再测试ADFS的时候顺手装一个测试环境,记录一下整个安装配置流程。 首先准备好windows 2012 std,sql server 2014, dynamics crm2016安装…

【Python CheckiO 题解】Largest Rectangle in a Histogram

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

Dynamics 365 on-premises 安装

安装Dynamics 365环境配置要求: 系统版本:Windows Server 2016 SQL 版本: Microsoft SQL Server 2016 SP2 Dynamics 365 版本:CRM9.0-Server-CHS-amd64 安装步骤: 一.在虚拟机安装Windows Server 2016 二.安装好…

【Python CheckiO 题解】Date and Time Converter

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

2.1Dynamics 365 安装问题——无法访MSCRM_CONFIG数据库

1. 问题 2. 原因 出现此问题的一个或多个下列条件都为真︰ 在多务器中安装 Microsoft Dynamics 365。然后,直接在运行 Microsoft SQL Server 的服务器上安装 Microsoft Dynamics 365。但是,没有设置某些 SQL Server 权限。Mic…

【Python CheckiO 题解】Army Battles

CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。 Chec…

Dynamics 365 On-premises和Online 的不同

1、新建账号的不同:on-premises(下文简称op)是和ad绑定的,所以必须先在ad中新建账号后才能在CRM中新建。而online是和Office365(下文简称O365)绑定的,所以需在O365中新建账号再分配D365许可(前提是已购买license),当分配完许可后,…

华中科技大学文华学院 CSDN 高校俱乐部成立啦!

CSDN高校俱乐部是由中国专业的IT社区 CSDN(Chinese Software Develop Net)发起的,由全国各高校在校生代表自发加入的 IT 技术学习型组织。CSDN 由此搭建起行业与校园之间的桥梁,公益为各俱乐部提供行业资讯、技术学习、专家交流、…

4.Dynamics CRM 数据数量限制更改

1.在CRM2016中如果想要导出超过10000记录数据,更新 MaxRecordsForExportToExcel 这个字段的值。 SELECT MaxRecordsForExportToExcel FROM [FCCRM_MSCRM].[dbo].[OrganizationBase] 2.列表页面,最大显示的数量 5000,修改 DeploymentProper…

2019年总结【跨越今天,更不平凡】

还记得小时候写作文,畅想2020会怎样怎样,光阴似箭,2020真的来了,度过了艰难的考试周,抽了个晚上,回想了一下,决定写一写总结吧,似乎以前都没写过呢,那干脆连带2017、2018…

【转】LCS和LCS服务器应用程序概述

Live Communication Server 2005(以下简称LCS)是微软最新推出的企业即时消息服务器,使用业界标准的SIP协议。本文介绍LCS及LCS服务器应用程序。目录 1. 1. LCS2005概览 1.1 Live Communications Server 2005是什么; 1.2 …

Hexo博客:您备案的网站未指向阿里云国内节点(不含香港)服务器,备案号可能被取消接入

问题描述:经检查您的网站域名 xxxxxx 未指向阿里云国内节点(不含香港)服务器且无访问记录 ,依据工信部相关法规规定属于空壳网站,请您尽快将域名解析IP地址指向阿里云国内节点(不含香港)服务器。…

【转】win10录屏快捷键报错显示需要新应用打开ms-gamingoverlay

Win10 截图快捷键 winshift s Win10 录屏快捷键 winG ,提示:需要新应用打开此ms-gamingoverlay 这也是因为被你卸载了Xbox相关的应用或者文件,所以无法启用了。解决办法如下: 1.管理员方式运行powershell 快捷键:ct…

【Python 必会技巧】获取字典中(多个)最大值(value)的键(key)

先总结一下,分为以下四种情况: 情况一:最大值只有一个,只获取最大值(value)所对应的键(key)情况二:最大值只有一个,同时获取最大值(value&#x…

【Python 必会技巧】对字典按照键(key)或者值(value)排序

先总结一下,分为以下四种情况: 情况一:按照键排序,只输出排序后所有的键情况二:按照值排序,只输出排序后所有的值情况三:按照键排序,同时输出排序后所有的键和对应的值情况四&#…

【Python 必会技巧】三元表达式(三目运算符)

三元表达式是编程中的一个固定格式,一般编程语言的格式为:判段条件 ? 条件为真时的结果 : 条件为假时的结果,举例说明: int A,B,C; A 1; B 2; C A > B ? 10 : 20; 解释:如果 A > B,就将 10 赋…

【转】Microsoft Cloud全新认证体系介绍

IT认证,是IT技术从业者必不可少的一个敲门砖,有了它让甲方、乙方以及原厂对你有了基本的了解,能够初步预判您是否胜任这一工作岗位。例如,大家耳熟能详的Microsoft MCSE,RedHat RHCE,VMware VCP、CISSP、CI…