Ken Thompson爷爷的经典复制自身代码程序 - Python版本(只用两行!)
生活随笔
收集整理的这篇文章主要介绍了
Ken Thompson爷爷的经典复制自身代码程序 - Python版本(只用两行!)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
Ken Thompson可是大牛人了!不认识的人赶快Google/百度一下。Ken爷爷是Unix创始人,C语言鼻祖!Ken 当时大学时候没游戏玩,就自己给自己出题目写程序,就有了这个复制自身代码的程序了,相当经典,当然那时还没有C语言, Ken 是用 Fortran 编的. 后来在获图灵奖的演说中, Ken 用 C 语言演示了这个程序.请看Ken爷爷的经典C程序:
解法一:
a = "print 'a = ', repr(a), '\n', repr(a)[1:-5]', a"
print 'a = ', repr(a), '\n', repr(a)[1:-5]
输出结果:
a = "print 'a = ', repr(a), '\n', repr(a)[1:-5]', a"
print 'a = ', repr(a), '\n', repr(a)[1:-5]
解法二:
a = ["print 'a = ', a, '\\n', ''.join(a)"]
print 'a = ', a, '\n', ''.join(a) 输出结果:
a = ["print 'a = ', a, '\\n', ''.join(a)"]
print 'a = ', a, '\n', ''.join(a)
有兴趣的朋友可以用C#试试~~
最后,真心祝愿震区的朋友平安。让我们坚信:中国人民是不可战胜的!
Ken Thompson 的经典 C 程序
我尝试用Python来完成这个复制自己的程序,出乎预料,我最短只用了两行就完成了,可见Python的强大。解法一:
a = "print 'a = ', repr(a), '\n', repr(a)[1:-5]', a"
print 'a = ', repr(a), '\n', repr(a)[1:-5]
输出结果:
a = "print 'a = ', repr(a), '\n', repr(a)[1:-5]', a"
print 'a = ', repr(a), '\n', repr(a)[1:-5]
解法二:
a = ["print 'a = ', a, '\\n', ''.join(a)"]
print 'a = ', a, '\n', ''.join(a) 输出结果:
a = ["print 'a = ', a, '\\n', ''.join(a)"]
print 'a = ', a, '\n', ''.join(a)
有兴趣的朋友可以用C#试试~~
最后,真心祝愿震区的朋友平安。让我们坚信:中国人民是不可战胜的!
总结
以上是生活随笔为你收集整理的Ken Thompson爷爷的经典复制自身代码程序 - Python版本(只用两行!)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 6月份Asp.net源码推荐
- 下一篇: python 学习笔记一