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