前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【每周一坑】美队盾牌

【每周一坑】美队盾牌

作者头像
Crossin先生
发布2018-04-17 11:38:44
8310
发布2018-04-17 11:38:44
举报
文章被收录于专栏:Crossin的编程教室

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

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

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

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

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

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

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

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

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

用 Python 画美国队长的盾牌

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

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

或者大师级的:

期待各位同学提交解答。

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

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

【解答】罗马数字转换

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

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

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

示例代码:

代码语言:javascript
复制
# 罗马数字转整数
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/

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-07-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Crossin的编程教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【解答】罗马数字转换
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档