【每周一坑】美队盾牌

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

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

顺便说下,因为现在我们的公共交流群人数比较多,没法保证所有的问题都能看到且回答,提个问题能不能正好有人帮你解决还得看运气。因此正在开发群助教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/

(0)

相关推荐

  • 算法创作 | 将数字变成 0 的操作次数

    问题描述给你一个非负整数 num ,请你返回将它变成 0 所需要的步数.如果当前数字是偶数,你需要把它除以 2 :否则,减去 1 .为了方便理解题意,下面给出两个示例:示例 1:输入:num = 14 ...

  • Python|如何判断丑数

    问题描述编写一个程序判断给定的整数是否为丑数.丑数就是只包含质因数 2,3, 5 的正整数.说明:(1)1是丑数.(2)输入不会超过 32 位有符号整数的范围: [-2³¹,  2³¹-1].解决方案 ...

  • Leetcode面试系列 第1天:Leetcode 89 - 格雷码

    最近,打算花点时间写个 Python 解决 Leetcode 题的系列文章~ 大家是否还记得电影黑客帝国中的数字雨林的场景?事实上,计算机底层数据的存储和运算都是二进制的,因而面试题环节中面试官也经常 ...

  • 我用Python做出真的“字节跳动”!

    我用Python做出真的"字节跳动"! Python入门与进阶 2021-07-14 来源:https://blog.csdn.net/hhladminhhl/article/de ...

  • 【每周一坑】疯狂的小母牛 +【解答】数据库

    之前我们的"每周一坑"栏目挖了一个"单词本"的系列.不过看起来大家都这种中长线项目兴趣不大啊--最近的一期,直到最近几天才有一位同学提交了解答. 所以我决定暂停 ...

  • 【每周一坑】数据库 +【解答】自动翻译

    我们的系列坑 单词本 今天继续第3期. 上次我们的目标是加入自动翻译,需要用到网络接口,可以看作是一个最简单的爬虫.详细方法稍后分析,先来谈谈今天的任务: 使用数据库存储单词数据 交互效果与之前相同, ...

  • 【每周一坑】自动翻译 | 【解答】单词本

    上次我们挖了一个系列坑:[每周一坑]单词本. 第一期的目标,是实现控制台下的单词录入及保存功能.各位都有实现吗?在本文后半段,我们会来做具体分析. 在这之前,先给出新的目标: 自动给添加的单词增加翻译 ...

  • 【每周一坑】单词本 +【解答】三国演义中谁的存在感最强

    "每周一坑"这个系列在本教室的文章中,阅读量不算高.但我屡次在和读者沟通时听到说"我都有跟着每周一坑里的题在做".这是个有意思的普遍现象:内容的价值和传播度并不 ...

  • 【每周一坑】三国演义中谁的存在感最强 +【解答】暴力计算圆周率

    自然语言处理(NLP)是人工智能的一个重要领域.在对中文做自然语言处理的时候,一个很基础的操作就是分词:因为中文不像英语有现成的单词划分,需要将汉字序列切分成一个个单独的词,以便于后续的处理和分析. ...

  • 【每周一坑】暴力计算圆周率 +【解答】生成/识别二维码

    我们之前有出过一些和概率相关的问题.比如 几道有趣的概率题.三门问题.田忌赛马.蜥蜴流感与贝叶斯定理.我讲过,用计算机程序来解编程题有个很有意思的思路,就是暴力解法.就是利用电脑的计算能力,去模拟大量 ...

  • 【每周一坑】生成/识别二维码 +【解答】新个税计算器

    二维码的本质是将文本信息转化成符合一定格式的平面图片信息,以便于计算机/手机通过摄像头或扫码设备快速而准确地识别,实现信息的传递.从某种角度来说,二维码可算是打通次元壁的途径,将互联网与现实世界更便捷 ...

  • 【每周一坑】新个税计算器 + 【解答】数字水印

    根据全国人大常委会关于修改个人所得税法的决定,10月1日起,纳税人的工资.薪金所得将适用新的费用减除标准(通常说的"起征点"),由每月3500元提高到每月5000元,并适用新的个税 ...

  • 【每周一坑】图像的指纹:数字水印 + 【解答】鸡兔同笼

    曾经有过这样的新闻:某公司的员工将内网论坛上的言论截屏发布到互联网上,引发了热议.于是公司通过截图定位到了员工的身份,将其开除. 有人可能好奇,仅凭截图就能知道是谁干的吗?这里就是用到了"数 ...