【每周一坑】美队盾牌

大家好,最近更新频率又慢了,【每周一坑】快变成【每两周一坑】了……不过别急,我们正在酝酿一些好玩又实用的内容和活动,很快会陆续奉上。

刚刚加入不久朋友,如果是初学编程,跟着我们公众号菜单里的入门教程学习即可。更多学习建议可以参考之前发的两篇文章:

顺便说下,因为现在我们的公共交流群人数比较多,没法保证所有的问题都能看到且回答,提个问题能不能正好有人帮你解决还得看运气。因此正在开发群助教AI机器人的问答功能,之后可以缓解这个问题。

不过,还是建议先学会用搜索和查文档,自己掌握解决问题的能力才是坠好的。如果代码中实在有问题搞不定,请通过以下方式提问:

  1. 发布到我们的论坛 bbs.crossincode.com 上,说清问题,附上你的代码、输出、开发环境、报错等必要信息和截屏。不是实时响应,但看到后都会回复,最长不超过一天。
  2. 发微博 @Crossin,同样附上上述说的必要信息和截屏,收到后我会给你回复。

尽量一次性准确描述你的问题及提供完整的信息,有助于你的问题更好得到解决。(无须先问“你好”“在吗”“能不能请教你一个问题”)

其他途径由于信息流过多或展现形式的限制,不太方便做代码相关的问答。

当然,如果你想获得长期的、及时的、有效的、有问必答的答疑支持,请加入码上行动

之前老是让大家做数学题,这次我们轻松一点,来个有趣的:

用 Python 画美国队长的盾牌

用自带的 turtle 模块即可实现,算是入门级的难度。用法可参考:【编程课堂】海龟作图

如果你觉得不过瘾,可以挑战更高难度:

或者大师级的:

期待各位同学提交解答。

提交代码可以使用 paste.ubuntu.com 或 codeshare.io 等代码分享网站,只需将代码复制上去保存,即可获得一个分享地址,非常方便。

往期问题可通过公众号菜单栏“课外辅导”栏目中进入查看。

【解答】罗马数字转换

技术上来说没有很高的难度,但写在代码里还是要小心点处理。

罗马转阿拉伯的时候,建议从右向左判断,这样会简单一些。

阿拉伯转罗马,要用到整除。在 py2 里,两整数相除得到的结果就是整除结果,而 py3 则必须使用 // 运算符。

示例代码:

# 罗马数字转整数
def romanToInt(s):

    d = {'M':1000, 'D':500, 'C':100, 'L':50, 'X':10, 'V':5, 'I':1}
    res, p = 0, 'I'
    # 逆序逐一遍历
    # 使用逆序的好处在于,每次只需对一位罗马数字进行加或减的操作
    # 使用顺序的话,可能为两位
    for c in s[::-1]:
        if d[c] < d[p]:
            res = res - d[c]
        else:
            res = res + d[c]
        p = c

    return res

# 整数转罗马数字
def intToRoman(self, num):
    values = [ 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 ]
    numerals = [ "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I" ]

    # 迭代依次处理每位数字
    res, i = "", 0
    while num:
        res += (num//values[i]) * numerals[i]
        num %= values[i]
        i += 1
    return res

给出两份同学的答案:

@郑文杰 Willie 代码最简洁:

http://paste.ubuntu.com/25047059/

@wuxiaojiao 简单并易于理解:

http://paste.ubuntu.com/25046101/

『码上行动』在线学习班正在开放中,详情请回复 码上行动 查看

原文发布于微信公众号 - Crossin的编程教室(crossincode)

原文发表时间:2017-07-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏HansBug's Lab

【作业】HansBug的前三次OO作业分析与小结

OO课程目前已经进行了三次的作业,容我在本文中做一点微小的工作。 第一次作业 第一次作业由于难度不大,所以笔者程序实际上写的也比较随意一些。(点击就送指导书~)...

36060
来自专栏程序员的诗和远方

20181118_ARTS_week21

这题一开始一直没思路,然后看了 leetcode 的讨论,这个解法还是比较精妙的,用两个指针,然后距离就是 n,等到最后一个碰到末尾,要踢掉的元素就是 前一个指...

10340
来自专栏WeTest质量开放平台团队的专栏

浅谈软件工程师的代码素养

“程序是写给人读的,只是偶尔让计算机执行一下。” ——Donald Ervin Knuth(高德纳)

647130
来自专栏程序员互动联盟

如何提高编写代码的速度?

如何提高代码编写的速度,一直是一个逃避不了的问题。在天朝你得像打字员一样做程序员,不然老板和上司都觉得你是在玩耍。对项目的贡献体现在哪里?码农难道不是以code...

44980
来自专栏大数据文摘

编程新手入门踩过的25个“坑”,你犯过其中哪些错误?

20230
来自专栏PPV课数据科学社区

【学习】《R实战》读书笔记(第一章)

第一章 R简介 本章概要 1安装R 2理解R语言 3运行R程序 本章所介绍的内容概括如下。 一个典型的数据分析步骤如图1所示。 图1:典型数据分析步骤 简而言之...

33780
来自专栏phodal

如何识别不同的编程语言(上)

漫谈编程语言:数量 这又是一个有趣的话题~~,要知道编程语言有那么的多。引自Quora上一个相关问题的答案,从ABC到Z Shell就有256个。 但是这并不是...

45560
来自专栏H2Cloud

领域驱动设计-软件中的对象

软件中的对象 About DOMAIN-DRIVEN DESIGN 领域驱动设计是一种思维方式,目的在于处理具有复杂问题的软件项目。在传统的瀑布软件开发模型中,...

36150
来自专栏web前端教室

WEB前端架构(四)

今天是第三天,把购物车的基本功能算是都写完了。 这东西吧,思路想清楚之后,其实不难实现。 就是里面的逻辑交互很多,来来回回的,神烦啊,, 每一步每个操作都是对数...

24490
来自专栏牛客网

18届学长Java面经分享:应届生找工作,基础为主,项目在精

先说一下我的个人情况,18届应届毕业生,去年9月份开始在上海一家软件公司实习,直到今年的4月底离开公司,6月中旬开始找工作,现已经拿到较为满意的offer(坐标...

14820

扫码关注云+社区

领取腾讯云代金券