【每周一坑】特殊的生日

好吧,我在跳票的道路上又双叒叕前进了一步……今天终于厚着脸皮来更新【每“周”一坑】啦。感谢在后台孜孜不倦催促我的同学们。

在出题前,先插两句:

  1. 上次关于 Python 学习方向的直播《Python 路线图》回放已上传,公众号回复 直播,或从网站的“学习资源”栏目最下方的“直播录像”中可下载。
  2. Python 实战训练营”新一期即将于 12.12 正式开讲,目前开放报名中。了解课程详情可点击文末的 阅读原文 或在公众号里回复 训练营

今天的题目是一道脑筋急转弯:

每个日期可以转成8位数字,比如 2017年12月4日 对应的就是 20171204。小明发现,自己的生日转成8位数字后,8个数字都没有重复,而且自他出生之后到今天,再也没有这样的日子了。请问小明的生日是哪天?

当然,如果你脑筋转得够快,很容易推出这个日期。但我们是程序员啊,我们都很懒的,这种事就交给电脑去算好啦。

期待各位同学提交解答。

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

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

【解答】注册表单验证

上期的问题,可以用字符串的相关函数来处理,但更好的方法是通过正则表达式。

有好几位同学给出了解答,其中 @elyt 的正则表达式最完备。在他的代码基础上做了一点小修改,供参考:

#coding:utf-8
import re

pattern = re.compile(r'^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$')
while True:
    mail = raw_input('邮箱地址:')
    match = pattern.match(mail)
    if match:
        break
    else:
        print('邮箱地址格式不正确,请重新输入。')

pattern = re.compile(r'(?=.*[0-9].*)(?=.*[A-Z].*)(?=.*[a-z].*).{8,}$')
while True:
    password = raw_input("密码:") 
    match = pattern.match(password)
    if match:
        break
    else:
        print('密码需要8位以上,并包含有大写字母、小写字母和数字三种字符。请重新输入。')

print('注册提交成功')

@王炎 和初二的 @方子正 同学分别用 PyQT 和 Tkinter 给出了图形界面版本,不过都还有点小 bug 值得改进。

@古美萌 和 @九二 增加了邮箱重复的验证。

完成代码的还有 @狮子不咬人 @.*+。

欢迎在论坛 bbs.crossincode.com 上对代码做进一步讨论。

感谢大家的积极参与!期待在下一期中看到你的代码!

  • 代码问题请在论坛 bbs.crossincode.com 上发帖提问
  • 欢迎加入讨论交流群组共同学习进步
  • 别忘了将我们的文章转发朋友圈或在知乎上为我们的专栏点赞,你们的支持将会让编程教室做得更好:)

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

原文发表时间:2017-12-04

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

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

据说这篇总结覆盖了一般Python开发面试中可能会问到的大部分问题

? 原文标题:一名python web后端开发工程师的面试总结 先介绍下我的情况 通信背景,工作一年多不到两年。之前一直在做C++的MFC软件界面开发工作。公...

4796
来自专栏Java技术栈

重大利好,Dubbo 3.0要来了。

关于Dubbo的好消息,2018年1月8日,Dubbo创始人之一梁飞在Dubbo交流群里透露了Dubbo 3.0正在开工的重大消息。 Dubbo是阿里开源的分布...

45710

为什么我们从Python切换到Go?

切换到新的编程语言向来是关键一步,尤其是当你的团队只有一位成员有该语言的使用经验时。今年年初,我们将 Stream 的主要编程语言从Python 切换到 Go。...

2672
来自专栏顶级程序员

Java 9、10、11,谁才是Java程序员的本命?

之前,我们在《Java 10无跳票发布,主推的新特性引争议》的文章中做了一个小的调查,主要是调查现在的Java程序员都在使用哪个版本的Java?根据调查结果,绝...

923
来自专栏Fundebug

JavaScript一团乱,这是好事

为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。

23311
来自专栏王清培的专栏

.NET项目开发—浅谈面向接口编程、可测试性、单元测试、迭代重构(项目小结)

阅读目录: 1.开篇介绍 2.迭代测试、重构(强制性面向接口编程,要求代码具有可测试性) 2.1.面向接口编程的两个设计误区 2.1.1.接口的依赖倒置 ...

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

【编程基础】聊聊C语言-磨刀不误砍柴工

看到上篇讲的《程序和编程语言》引发了大家的热议,小编很是激动。不过被人评论说是不懂编程,小编还真是郁闷了一下下,在此声明小编可是货真价实的“程序猿”哦。言归正传...

3939
来自专栏LuckQI

美团面试经历,贡献出来一起学习

  晚7点,因为想到下周一才面试,我刚准备出去打个羽毛球,北京的电话就来了。面试官各种抱歉,说开会拖延了。 1、自我介绍 说了很多遍了,很流畅捡重点介绍完。...

3102
来自专栏java思维导图

程序员,请优先提高代码的可读性

现在,当有人提及“优化”一词时,他们通常是指“优化执行时间”,除非他们明确表明要优化GPU的内存消耗,网络流量等等。

924
来自专栏牛客网

2018今日头条前端实习面经

1896

扫码关注云+社区