python的代码有哪些_Python有哪些有趣的代码呢,这些代码让
Python是一門清晰易學(xué)的語言,可是這不代表我們Python沒有黑暗料理,下面我就挑選了幾個能讓你大呼"臥槽,怎么會這樣"的程序,這些例子不光有趣,也能夠加深我們對于Python細(xì)節(jié)的理解,看看你自己能不能解釋吧。
以下代碼如果不信請手動嘗試,測試環(huán)境:Python 3.6
20跟21有什么區(qū)別
第一次看到這個例子的時候我的心里面充滿了wtf,20跟21有什么區(qū)別為什么結(jié)果不一樣?
原因是:python在進(jìn)行內(nèi)部優(yōu)化的時候會做常量替換的操作,也就是把 'a' * 20這種語句替換成'aaaaaaaaaaaaaaaaaaaa',這樣運(yùn)行的時候節(jié)省時間,而剛好,小于等于20的時候會做這個優(yōu)化,而大于20就不做這個優(yōu)化了。
讓一個函數(shù)Return兩次
一般的Python教程會告訴你,當(dāng)函數(shù)執(zhí)行到第一個return的時候會退出,剩下的語句不再執(zhí)行。
然而如果是這樣的話上面的代碼中我們的somefunc()應(yīng)該返回的是'from_try'。
結(jié)果卻不是。這個現(xiàn)象的原因是finally后面的語句永遠(yuǎn)會執(zhí)行,而函數(shù)的返回值由最后一個return語句決定,所以函數(shù)的返回值是finally語句中的返回值。
循環(huán)幾次?
你猜下面的代碼會循環(huán)幾次
正確輸出:
0
1
2
3
循環(huán)了4次,所以i=10這個語句完全沒用了嗎?
是的,這跟Python的for循環(huán)的機(jī)制有關(guān),每次在循環(huán)體之前,下一個需要的值先會產(chǎn)生好然后賦值給循環(huán)變量,這里的i。
雖然循環(huán)體中有一個i = 10,但下次循環(huán)前for又會做一個i=2或者i=3的操作,把i=10覆蓋了。
一石三鳥
現(xiàn)在我們賦個值給第一個元素,再看看結(jié)果
為什么有三個元素都變成了X,我們明明值賦了一個值啊?
這是因?yàn)閇row] * 3這個操作實(shí)際上沒有復(fù)制row,而只是創(chuàng)建了三個object reference,也就是board[0] board[1] board[2]這三個元素其實(shí)指向了同一個列表row,那么改變board[0][0]其實(shí)就是改變row[0],也同時改變了board[1][0] board[2][0]。
256和257有什么區(qū)別?
這又是怎么回事?你知道么
標(biāo)簽:
版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn),本站所提供的攝影照片,插畫,設(shè)計作品,如需使用,請與原作者聯(lián)系,版權(quán)歸原作者所有
總結(jié)
以上是生活随笔為你收集整理的python的代码有哪些_Python有哪些有趣的代码呢,这些代码让的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python如何模拟键盘输入_pytho
- 下一篇: python3.6字典有序_一日一技:P