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 学习笔记一