Ken Thompson爷爷的经典复制自身代码程序 - Python版本(只用两行!)
生活随笔
收集整理的這篇文章主要介紹了
Ken Thompson爷爷的经典复制自身代码程序 - Python版本(只用两行!)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Ken Thompson可是大牛人了!不認識的人趕快Google/百度一下。Ken爺爺是Unix創(chuàng)始人,C語言鼻祖!Ken 當(dāng)時大學(xué)時候沒游戲玩,就自己給自己出題目寫程序,就有了這個復(fù)制自身代碼的程序了,相當(dāng)經(jīng)典,當(dāng)然那時還沒有C語言, Ken 是用 Fortran 編的. 后來在獲圖靈獎的演說中, Ken 用 C 語言演示了這個程序.請看Ken爺爺?shù)慕?jīng)典C程序:
解法一:
a?=?"print?'a?=?',?repr(a),?'\n',?repr(a)[1:-5]',?a"
print?'a?=?',?repr(a),?'\n',?repr(a)[1:-5]
輸出結(jié)果:
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) 輸出結(jié)果:
a = ["print 'a = ', a, '\\n', ''.join(a)"]
print 'a = ', a, '\n', ''.join(a)
有興趣的朋友可以用C#試試~~
最后,真心祝愿震區(qū)的朋友平安。讓我們堅信:中國人民是不可戰(zhàn)勝的!
Ken Thompson 的經(jīng)典 C 程序
我嘗試用Python來完成這個復(fù)制自己的程序,出乎預(yù)料,我最短只用了兩行就完成了,可見Python的強大。解法一:
a?=?"print?'a?=?',?repr(a),?'\n',?repr(a)[1:-5]',?a"
print?'a?=?',?repr(a),?'\n',?repr(a)[1:-5]
輸出結(jié)果:
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) 輸出結(jié)果:
a = ["print 'a = ', a, '\\n', ''.join(a)"]
print 'a = ', a, '\n', ''.join(a)
有興趣的朋友可以用C#試試~~
最后,真心祝愿震區(qū)的朋友平安。讓我們堅信:中國人民是不可戰(zhàn)勝的!
總結(jié)
以上是生活随笔為你收集整理的Ken Thompson爷爷的经典复制自身代码程序 - Python版本(只用两行!)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 6月份Asp.net源码推荐
- 下一篇: [Classic] 日文版《出师表》