摘要:三種運(yùn)行方式的快捷鍵見(jiàn)菜單分別表示只運(yùn)行當(dāng)前單元格運(yùn)行并選擇下一個(gè)單元格和運(yùn)行并向下插入一個(gè)單元格。也可以使用直接在中顯示網(wǎng)頁(yè),代碼效果直接在單元格下方展示差異情況。等未來(lái)正式發(fā)布的時(shí)候,一定非常好用后,沒(méi)有的用戶(hù)們也可以使用該功能。
大家好,我是小小明。
受CSDN官方邀請(qǐng),前來(lái)測(cè)評(píng)《python 技能樹(shù)》 ,活動(dòng)地址:https://bbs.csdn.net/topics/600937310
XDM,一起來(lái)測(cè)評(píng),一起來(lái)拿獎(jiǎng)吧!獎(jiǎng)品多多,福利多多噢~
首先,我們打開(kāi)內(nèi)測(cè)技能樹(shù)頁(yè)面:
眾所周知,jupyter是數(shù)據(jù)分析領(lǐng)域最常用的工具,所以我直接進(jìn)入數(shù)據(jù)分析版塊。
雖然目前看到選項(xiàng)過(guò)于單薄,但是不耽誤我們玩玩csdn的jupyter。
下面我們就點(diǎn)開(kāi)第一個(gè)模塊的第一題開(kāi)始玩玩吧:
我去,雖然只是一道選擇題,但實(shí)在是已經(jīng)嚇?biāo)缹殞毩?,這代碼也太長(zhǎng)了點(diǎn)。那么先隨便選個(gè)試試:
嘿嘿,選擇A點(diǎn)提交后,在線(xiàn)Jupyter的入口就出現(xiàn)了??次以趺磁艽a干翻你這道 《大家來(lái)找茬》 的題目。
點(diǎn)擊前往就出現(xiàn)了,服務(wù)啟動(dòng)的頁(yè)面:
等待啟動(dòng)完畢后,就進(jìn)入到了JupyterNoteBook的開(kāi)發(fā)頁(yè)面:
作為一名資深jupyter玩家,這點(diǎn)功能和插件顯然是不滿(mǎn)足要求的,下面我們看看如何安裝一些插件:
首先點(diǎn)擊open:
然后進(jìn)入Nbextensions插件選項(xiàng)卡,我將我最需要的三個(gè)插件打勾:
對(duì)于A(yíng)utopep8這玩意,我們需要pip裝點(diǎn)庫(kù),回到前面的代碼界面執(zhí)行:
!pip install autopep8
這是因?yàn)槲疑洗问褂脮r(shí)已經(jīng)下載過(guò)有緩存,所以直接就安裝好了。
安裝完成后刷新網(wǎng)頁(yè)剛才選擇的插件就會(huì)生效。然后給代碼框加個(gè)默認(rèn)行號(hào)顯示:
點(diǎn)開(kāi)目錄按鈕后,就可以編輯Markdown文本:
如何將一個(gè)代碼節(jié)點(diǎn)轉(zhuǎn)換為Markdown節(jié)點(diǎn)呢? 按下快捷鍵H
即可打開(kāi)快捷鍵菜單:
這意味著,只需要記住H快捷鍵,其他快捷鍵都通過(guò)這個(gè)面板隨時(shí)查詢(xún)。
可以看到按下ESC退出進(jìn)入命令行模式后,按下快捷鍵M
即可將其轉(zhuǎn)換為Markdown文本節(jié)點(diǎn),數(shù)字快捷鍵1
~6
即可將將其轉(zhuǎn)換對(duì)應(yīng)等級(jí)的標(biāo)題。
點(diǎn)擊右上角的復(fù)制按鈕即可復(fù)制代碼:
然后粘貼到JupyterNotebook中:
粘貼完,代碼是這種使用制表符/t
縮進(jìn)的形式,現(xiàn)在按下快捷鍵Ctrl+L即可啟動(dòng)autopep8代碼格式化:
可以看到格式化之后的代碼都是空格縮進(jìn)的形式。
根據(jù)右上角的提示即可運(yùn)行代碼,運(yùn)行后:
報(bào)錯(cuò),顯然我們可以排除A選項(xiàng)。
三種運(yùn)行方式的快捷鍵見(jiàn)Cell菜單:
分別表示只運(yùn)行當(dāng)前單元格、運(yùn)行并選擇下一個(gè)單元格 和 運(yùn)行并向下插入一個(gè)單元格。
大家可以都試試,感受一下區(qū)別。
復(fù)制B選項(xiàng)的代碼并運(yùn)行后也報(bào)錯(cuò):
運(yùn)氣比較好已經(jīng)排除兩個(gè)選項(xiàng)了,繼續(xù)干C和D:
D選項(xiàng)居然正確了:
咱們就選個(gè)D試一下?
?Good,回答正確了:
下面我們繼續(xù)下一題:
這次代碼終于簡(jiǎn)化多了。這次全部復(fù)制粘貼到j(luò)upyter運(yùn)行后發(fā)現(xiàn),A和C報(bào)錯(cuò),B和D正確運(yùn)行。
對(duì)于B和D這兩個(gè)選項(xiàng)的代碼,我看了好幾眼還真看不出區(qū)別在哪里,太像 《大家來(lái)找茬》 的找茬游戲了。
不過(guò)沒(méi)有關(guān)系,咱們有JupyterNotebook來(lái)運(yùn)行Python代碼,標(biāo)準(zhǔn)庫(kù)difflib
讓差異無(wú)處遁形:
import difflibtext1 = """import csvdef dump_list(file, list): with open(file, "w", newline="") as csvfile: spamwriter = csv.writer(csvfile, delimiter=" ", quotechar="|", quoting=csv.QUOTE_MINIMAL) for row in list: spamwriter.writerow(row)def load_list(file): with open(file, "r", newline="") as csvfile: spamreader = csv.reader(csvfile, delimiter=" ", quotechar="|") for row in spamreader: yield rowif __name__ == "__main__": rows = [ ["Spam"] * 5 + ["Baked Beans"], ["Spam", "Lovely Spam", "Wonderful Spam"] ] list_file = "/tmp/list.csv" dump_list(list_file, rows) rows = load_list(list_file) for row in rows: for cell in row: print(cell)"""text2 = """import csvdef dump_list(file, list): with open(file, "w", newline="") as csvfile: spamwriter = csv.writer(csvfile, delimiter=" ", quotechar="|", quoting=csv.QUOTE_MINIMAL) for row in list: spamwriter.writerow(row)def load_list(file): with open(file, "r", newline="") as csvfile: spamreader = csv.reader(csvfile, delimiter=" ", quotechar="|") for row in spamreader: yield rowif __name__ == "__main__": rows = [ ["Spam"] * 5 + ["Baked Beans"], ["Spam", "Lovely Spam", "Wonderful Spam"] ] list_file = "/tmp/list.csv" dump_list(list_file, rows) rows = load_list(list_file) for row in rows: while cell in row: print(cell)"""def diff_compare(text1, text2, diff_out="diff_result.html", max_width=30, numlines=0, show_all=False): text1 = [row.rstrip() for row in text1.splitlines(keepends=True)] text2 = [row.rstrip() for row in text2.splitlines(keepends=True)] d = difflib.HtmlDiff(wrapcolumn=max_width) with open(diff_out, "w", encoding="u8") as f: f.write(d.make_file(text1, text2, context=not show_all, numlines=numlines))diff_compare(text1, text2, numlines=3)
運(yùn)行后,打開(kāi)生成的html文件:
原來(lái)差異在一個(gè)選項(xiàng)是for,一個(gè)選項(xiàng)是while。當(dāng)然選for的這個(gè)選項(xiàng)啦。
也可以使用IPython.display.HTML
直接在jupyter中顯示網(wǎng)頁(yè),代碼:
from IPython.display import HTMLdef diff_compare(text1, text2, diff_out="diff_result.html", max_width=70, numlines=0, show_all=False): text1 = [row for row in text1.splitlines(keepends=True)] text2 = [row for row in text2.splitlines(keepends=True)] d = difflib.HtmlDiff(wrapcolumn=max_width) return d.make_file(text1, text2, context=not show_all, numlines=numlines)diff_html = diff_compare(text1, text2, numlines=1)HTML(diff_html)
效果:
直接在單元格下方展示差異情況。
以上就是個(gè)人體驗(yàn)Jupyter notebook的全過(guò)程,個(gè)人感覺(jué)還是挺方便的。幾乎跟本地自己安裝的Jupyter一樣的用,想裝啥插件也都可以直接裝。
不過(guò),我有點(diǎn)想吐槽這個(gè)題,根本就不是技術(shù)題啊,純粹就是PK技術(shù)達(dá)標(biāo)的情況下誰(shuí)的眼力好啊。
不過(guò)呢,咱們還是可以通過(guò)代碼差異查找軟件,找出差異后進(jìn)行對(duì)比分析,從而快速解題。代碼差異查找除了使用我上面所用的代碼還可以使用Beyond Compare這個(gè)軟件。
最后感謝CSDN,這個(gè)Jupyter服務(wù)雖然還處于VIP內(nèi)測(cè)階段,但是已經(jīng)挺好用了,相信未來(lái)還會(huì)越來(lái)越好。等未來(lái)正式發(fā)布的時(shí)候,一定非常好用后,沒(méi)有VIP的用戶(hù)們也可以使用該功能。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/121428.html
摘要:你想學(xué)習(xí)嗎你知道技能樹(shù)嗎技能樹(shù)是提供的系統(tǒng)化,面向?qū)崙?zhàn)的學(xué)習(xí)環(huán)境。如果你是初學(xué)者請(qǐng)馬上開(kāi)始學(xué)習(xí),你最終可以獲得的技能認(rèn)證。學(xué)習(xí)到任何一階段的同學(xué)們都可以輕松加入技能樹(shù)的學(xué)習(xí),所以你要學(xué)習(xí)就請(qǐng)趕快加入吧。 python 是一種很流行的高級(jí)動(dòng)態(tài)語(yǔ)言。編程語(yǔ)言的的排行可以參考TIOBE。當(dāng)然如果從...
摘要:今天看到社區(qū)有活動(dòng),官方需要的友友們?nèi)?nèi)測(cè)下新產(chǎn)品,領(lǐng)域技能樹(shù)領(lǐng)域技能樹(shù)。并進(jìn)行大范圍的口口相傳,在學(xué)生之間進(jìn)行大量推廣。對(duì)于大部分職場(chǎng)人,業(yè)務(wù)學(xué)習(xí)第一位。他們的學(xué)習(xí)更多是為了解決工作問(wèn)題。以上僅個(gè)人愚見(jiàn)。 今天看到社區(qū)有活動(dòng),官方需要csdn的友友們?nèi)?nèi)測(cè)下新產(chǎn)品,Python領(lǐng)域「技能樹(shù)...
摘要:每個(gè)模塊都有對(duì)應(yīng)的分支內(nèi)容,并且分支內(nèi)容都分為參考資料練習(xí)題交流討論三個(gè)內(nèi)容,我最喜歡的是練習(xí)題,之前都是非正規(guī)軍的學(xué)習(xí),沒(méi)有系統(tǒng)訓(xùn)練過(guò),現(xiàn)在有技能樹(shù)測(cè)評(píng)終于可以把之前散亂的知識(shí)點(diǎn)總結(jié)在一起了。祝大家都能在技能樹(shù)測(cè)評(píng)判斷自己在哪個(gè)級(jí)別的。 通過(guò)《Python技能樹(shù)測(cè)評(píng)》判斷自己在哪個(gè)級(jí)別: ...
摘要:具體來(lái)說(shuō),技能樹(shù)是的一次新嘗試,就是說(shuō)通過(guò)大家的力量,來(lái)提供一個(gè)系統(tǒng)化,面向?qū)崙?zhàn)的學(xué)習(xí)環(huán)境。最后希望該板塊能越做越好,更加貼近于實(shí)際這就是技能樹(shù)內(nèi)測(cè)地址,想體驗(yàn)的小伙伴們可以去試試 相信很多剛接觸到python的朋友肯定是一頭霧水,覺(jué)得python的知識(shí)點(diǎn)怎么那么多,自己到底該怎么學(xué)?即使有...
閱讀 3844·2023-04-25 16:32
閱讀 2225·2021-09-28 09:36
閱讀 2043·2021-09-06 15:02
閱讀 683·2021-09-02 15:21
閱讀 930·2019-08-30 15:56
閱讀 3526·2019-08-30 15:45
閱讀 1720·2019-08-30 13:09
閱讀 391·2019-08-29 16:05