資訊內(nèi)容
一行代碼能實(shí)現(xiàn)如此酷的效果,小朋友干嘛還想去做病毒呢
經(jīng)常會(huì)有小朋友問我,“我想做個(gè)黑客,我該學(xué)什么編程語言?”,或者有的小朋友會(huì)說:“我要學(xué)c,我要做病毒”。其實(shí)對(duì)于這些小朋友而言他們基本都沒有接觸過編程語言,只是通過影視或者其他地方看到的一些東西認(rèn)為黑客很酷,超級(jí)厲害,因此也萌生了這樣的想法。我也認(rèn)為黑客很厲害,他們不只是會(huì)一門編程語言那么簡單,要想成為他們那樣厲害的人對(duì)小朋友來說還有很長的路要走。
而很多小朋友真正想做的就是能通過簡單的代碼做出很酷炫的東西,能在同學(xué)間炫耀一把,那就很滿足了。如果你真的想學(xué)編程,那么我還是建議python,看到下面這些神奇的代碼,也許你會(huì)改變自己最初的想法。不是我們覺得C不好(很多人是從c入門而從此心生畏懼,受挫而放棄的),而是python更適合入門,當(dāng)你通過一段時(shí)間的學(xué)習(xí),你真的愛上了編程,你可以再去學(xué)習(xí)c,這樣你之前所積累的知識(shí)會(huì)讓你對(duì)它有更深刻的理解與認(rèn)知,畢竟興趣真的很重要。
如果你能在同學(xué)朋友面前秀一下這行代碼,我估計(jì)他們會(huì)用特別崇拜的眼神看你的。
print'\n'.join([''.join([('ChinaLove'[(x-y)%8]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')for x in range(-30,30)])for y in range(15,-15,-1)])
在python 里執(zhí)行它,會(huì)輸出一個(gè)字符拼出的心形,是不是很酷啊。
再來一個(gè),雖然你可能不知道這個(gè)東西,不過看看結(jié)果也是讓你很激動(dòng)的。
有一個(gè)著名的圖像叫mandelbrot。Mandelbrot圖像中的每個(gè)位置都對(duì)應(yīng)于公式N=x+y*i中的一個(gè)復(fù)數(shù),高中學(xué)過復(fù)數(shù)的都還應(yīng)該有印象。每個(gè)位置用參數(shù)N來表示,它是x*x+y*y的平方根。如果這個(gè)值大于或等于2,則這個(gè)數(shù)字對(duì)應(yīng)的位置值是 0。如果參數(shù)N的值小于2,就把N的值改為N*N-N(N=(x*x-y*y-x)+(2*x*y-y)*i)),并再次測(cè)試這個(gè)新N值。wiki百科給出的圖像是這樣的:
讓我們用一行代碼畫一個(gè)Mandelbrot:
print'\n'.join([''.join(['*'if abs((lambda a:lambda z,c,n:a(a,z,c,n))(lambda s,z,c,n:z if n==0else s(s,z*z+c,c,n-1))(0,0.02*x+0.05j*y,40))<2 else' 'for x in range(-80,20)])for y in range(-20,20)])

對(duì)于隨手小工具而言,更是Python的拿手好戲。
一行代碼打印九九乘法表:
print '\n'.join([' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)])
如何?如果你想學(xué)編程,我們首先推薦小朋友從scratch開始,生產(chǎn)型語言進(jìn)階學(xué)習(xí)python是個(gè)不錯(cuò)的選擇。
本站部分內(nèi)容轉(zhuǎn)載自網(wǎng)絡(luò),如有侵權(quán)請(qǐng)聯(lián)系管理員及時(shí)刪除。
