在使用Python開發(fā)環(huán)境中,很多人比較喜歡使用Atom。在Atom中,有很多編輯工具,包括文字,方括號,原子。Atom是完全免費的,并且它具有許多可用的程序包和主題,從而使編碼變得更加容易。在這里,將介紹如何使用Atom設(shè)置“對Python友好的”開發(fā)環(huán)境,以及一些對python編碼有用的軟件包,然后看看如何編寫一些基本代碼。
1)下載Atom
首先,如果要使用Atom作為文本編輯器,則最好下載它。
2)安裝語法主題
一旦安裝了Atom,就可以轉(zhuǎn)到首選項,然后在首選項菜單中選擇+ install。然后,選擇主題選項以下載主題。語法主題將具有一種配色方案,這將使代碼一目了然。我發(fā)現(xiàn)某些主題在JavaScript中似乎很棒,但是在Python中卻不那么可讀。例如,對于我的UI和語法主題,我一直是Atom Dark和One Dark的忠實擁護(hù)者。直到最近,我主要使用JavaScript,React和Node進(jìn)行編碼,這個主題對我來說適合那些語言。但是,在Python中,我不太喜歡它。找到適合您的語法主題可能很困難,尤其是一旦您習(xí)慣了一個主題。
以下是一些我最喜歡的Python:
1)原材料
這是我在本文中將一直使用的主題,也是在上例中看到的主題。我喜歡它,因為許多主題趨向于單色,并且由于這個原因似乎不太可讀。Atom Material使用多種顏色,并且具有高對比度,從而使查找和閱讀代碼變得容易。
2)手提鑿巖機(jī)
這個顏色的使用范圍不及Atom材質(zhì)那么廣泛,但對比度卻很高。
3)黎明前
另一個偉大的。我已經(jīng)看到很多開發(fā)人員使用這一代碼,并且看起來對Python非常友好。
3)自動完成Python程序包
并非所有人都喜歡自動完成功能。我同意,有時可能會遇到障礙。但是,如果您像我一樣,并且剛開始使用Python,它會非常有用。autocomplete-python軟件包使您可以選擇由Jedi或Kite驅(qū)動。絕地是一個本地圖書館,而風(fēng)箏則訪問在線圖書館。
4)文件圖標(biāo)包
文件圖標(biāo)包使您可以查看正在處理的每種文件類型的圖標(biāo)/徽標(biāo)。如果僅使用Python或僅使用JavaScript或其他工具,則可能不是問題。但是,您的文件樹很有可能包含多種語言和格式的多個文件。在這種情況下,擁有此軟件包將幫助您輕松地在樹中查找文件。
5)Linter-flake8軟件包
這是一個很棒的模塊化源代碼檢查器。安裝軟件包后,還需要使用命令行來完成安裝。有關(guān)如何執(zhí)行操作的說明均已記錄在案。
6)小地圖包
Minimap不是特定于python的,但對于任何編碼語言而言,它都是一個出色的工具。一旦代碼長度達(dá)到數(shù)百行,就很難在代碼庫中找到您的位置。Minimap提供了整個代碼的“縮小”視圖,并突出顯示了您在代碼中的位置,從而將整個可視化效果保留在atom編輯器中的簡潔側(cè)邊欄中。
7)python-autopep 8軟件包
autopep8自動格式化Python代碼以符合PEP 8樣式指南。它使用pycodestyle實用工具來確定代碼的哪些部分需要格式化。autopep8能夠解決pycodestyle可以報告的大多數(shù)格式問題。一旦安裝了該軟件包,您可能需要單擊設(shè)置并選擇“保存時格式化”選項。如文檔中所示,這還需要您在命令行上使用pip完成安裝。
8)腳本包
到目前為止,此列表上最重要的軟件包之一是腳本軟件包。這使您可以使用“ command + i”鍵盤快捷鍵在Atom編輯器中運行腳本。該代碼將在文本編輯器底部的面板中運行。
9)開始用Python編寫代碼
我最喜歡的入門方法之一是找到要解決的問題。Project Euler網(wǎng)站上有許多基于數(shù)學(xué)的問題,您可以使用任何編程語言來解決。由于我是Python的新手,所以我決定接受我在JavaScript中解決的項目歐拉問題之一,并在Python中解決同樣的問題。項目Euler上的5號內(nèi)容如下:
2520是可以除以1到10的每個數(shù)字而沒有任何余數(shù)的最小數(shù)字。
能被1到20的所有數(shù)均分的最小正數(shù)是多少?
因此,在JavaScript中,我通過以下方式解決了該問題:
讓數(shù)字= 1;
while(數(shù)字%1!== 0 ||數(shù)字%2!== 0 ||數(shù)字%3!== 0 ||數(shù)字%4!== 0 ||數(shù)字%5!== 0 ||數(shù)字%6 !== 0 ||數(shù)字%7!== 0 ||數(shù)字%8!== 0 ||數(shù)字%9!== 0 ||數(shù)字%10!== 0 ||數(shù)字%11!== 0 | |數(shù)字%12!== 0 ||數(shù)字%13!== 0 ||數(shù)字%14!== 0 ||數(shù)字%15!== 0 ||數(shù)字%16!== 0 ||數(shù)字%17! == 0 ||數(shù)字%18!== 0 ||數(shù)字%19!== 0 ||數(shù)字%20!== 0){
數(shù)字=數(shù)字+ 1;
}
console.log(number);
基本上在這里我有一個while循環(huán),從1開始,它檢查數(shù)字是否可以被1到20整除而沒有余數(shù)。如果沒有,它將添加一個并再次檢查直到找到匹配項。因此,對于Python,我嘗試簡單地使用相同的代碼,但將其轉(zhuǎn)換為如下所示的Python,并以這實際上不是一個好主意的事實作為我的序言。
數(shù)字= 1
而(數(shù)字%1 <> 0或數(shù)字%2 <> 0或數(shù)字%3 <> 0或數(shù)字%4 <> 0或數(shù)字%5 <> 0或數(shù)字%6 <> 0或數(shù)字%7 <> 0或數(shù)字%8 <> 0或數(shù)字%9 <> 0或數(shù)字%10 <> 0或數(shù)字%11 <> 0或數(shù)字%12 <> 0或數(shù)字%13 <> 0或數(shù)字%14 < > 0或數(shù)字%15 <> 0或數(shù)字%16 <> 0或數(shù)字%17 <> 0或數(shù)字%18 <> 0或數(shù)字%19 <> 0或數(shù)字%20 <> 0):
數(shù)字+ = 1
印刷號碼
基本上,這與上述代碼具有相同的作用,但是是為Python編寫的。我很快意識到的一個主要區(qū)別是Python將打印從1開始的每個數(shù)字,直到得到答案為止,這可能需要很長時間。因此,當(dāng)我開始嘗試?yán)斫釶ython時,以下是一些語法上的區(qū)別,這些將有助于入門:
1)對于循環(huán)
我發(fā)現(xiàn)JavaScript中的普通for循環(huán)如下所示:
for(var i = 0; i<array.length; p="" ++){<="" i="">
array [i]
}
但是,在Python中,它看起來更像JavaScript“ for in”循環(huán):
對于范圍(0,3)中的x:
打印“我們在時間%d”%(x)
for循環(huán)從0到2,因此運行3次。
2)變數(shù)
在JavaScript中,需要先調(diào)用“ let,var或const”來定義變量。
令x = 1
常數(shù)y = 2
變數(shù)z = 3
令my_array = [1、2、3、4]
在Python中,您可以簡單地鍵入變量名稱,而無需將其定義為變量。
x = 1
y = 2
z = 3
my_array = [1、2、3、4]
3)功能
在JavaScript中,使用“函數(shù)”調(diào)用函數(shù),并且可以采用一個參數(shù)或多個參數(shù):
函數(shù)test_prime(n){
//做事
}
在Python中,它們基本相同,但是使用關(guān)鍵字“ def”來調(diào)用。
def test_prime(n):
//做一些事情
函數(shù)調(diào)用之間的另一個主要區(qū)別是,在JavaScript中,函數(shù)內(nèi)部的工作始終在花括號之間,并緊跟參數(shù)。在Python中,函數(shù)以冒號開頭,而不是花括號,而是在調(diào)用該函數(shù)的行下方縮進(jìn)的任何內(nèi)容。使用我們之前安裝的某些軟件包,您經(jīng)常會看到“意外縮進(jìn)”,讓您知道自己縮進(jìn)了一些不需要的縮進(jìn)。如果您更熟悉JavaScript之類的縮進(jìn)不會影響代碼的功能,那么這很難適應(yīng)。
4)控制臺日志
在JavaScript中,如果您要運行腳本或代碼塊,則只需console.log它
console.log(my_function);
在Python中,通常使用“ print”命令
打印解決方案
有了這些構(gòu)建基塊之后,我接著進(jìn)行了Stack Overflow,并為我的原始項目Euler問題找到了更好的解決方案:
check_list = [1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、20]
def find_solution(step):
對于xrange中的num(step,999999999,step):
如果全部(check_list中n中的num%n == 0):
返回num
return None
如果__name__ =='__main__':
解決方案= find_solution(2520)
如果解決方案為無:
打印“未找到答案”;
否則:
打印“找到答案:”,解決方案
在這里,我們有一個變量“ check_list”,其中包含一個數(shù)組。
在函數(shù)“ def find_solution”中,我們逐步瀏覽數(shù)字1到999999999,并檢查每個數(shù)字與數(shù)組中數(shù)字的可除性。如果匹配,則返回數(shù)字,如果不匹配,則不返回。
然后,我們將解決方案輸入2520的步驟,而不是檢查每個數(shù)字或每個其他數(shù)字,而僅檢查每個2520個數(shù)字,這使代碼運行得更快。然后打印解決方案,或者如果找不到解決方案,則打印解決方案。
好了關(guān)于在Atom中設(shè)置Python開發(fā)環(huán)境的內(nèi)容介紹到這里就結(jié)束了,想了解更多關(guān)于Python的信息,請繼續(xù)關(guān)注中培偉業(yè)。