你好,歡迎進(jìn)入江蘇優(yōu)軟數(shù)字科技有限公司官網(wǎng)!
發(fā)布時(shí)間:2024-01-21
瀏覽次數(shù):0
大家好,我叫唐亮。
很多讀者給我私信說,公眾號(hào)遷移后,文章的分類已經(jīng)沒有了,看起來很不方便。 唐亮也注意到了這個(gè)問題,目前正在對(duì)之前的文章做一些整理和修正。
我打算先從這個(gè)話題開始。 畢竟我不是專業(yè)的開發(fā)者,所以這篇文章主要是針對(duì)初學(xué)者的。 幫助大家打下比較扎實(shí)的基礎(chǔ),進(jìn)而具備向各個(gè)方向發(fā)展的能力。
我們?yōu)槭裁匆獙W(xué)習(xí)
想學(xué)的人很多,現(xiàn)在講課的廣告也很多,我的朋友圈里也有很多。 這些廣告中使用的噱頭有很多,常見的有以下幾種:
它是一種多功能語言,可以做任何事情。 與現(xiàn)在幾乎沒有工作的C++不同,Java只能作為后端。 一旦學(xué)會(huì)了,你就可以做人工智能、爬蟲、后端、圖像、文本等。
語法簡單,小學(xué)生即可學(xué)會(huì)。 不像Java和C++語法困難,上手并不容易。 開始只需要幾個(gè)月的時(shí)間。
你是否貪圖人工智能黑科技? 你必須學(xué)會(huì)??玩。
銷售焦慮現(xiàn)在不僅是小學(xué)生都知道,身邊的同事也都知道。 你是唯一一個(gè)還不知道的人,所以為什么不盡快學(xué)習(xí)??呢!
很多人因?yàn)檫@幾點(diǎn)被騙去買課程或者書籍來入門,卻從來沒有思考過為什么要從自己的實(shí)際角度去學(xué)習(xí)。 學(xué)習(xí)后你能實(shí)現(xiàn)什么目標(biāo),對(duì)你未來的發(fā)展有什么幫助。
我個(gè)人強(qiáng)烈建議大家學(xué)習(xí)這門語言,無論你是哪個(gè)方向,從事什么領(lǐng)域。不需要很深入,只要有基本的概念,懂基本的語法,能夠使用它。
原因并不復(fù)雜。 最主要的是它非常方便,甚至是我見過的最方便的語言之一。 您可以快速實(shí)現(xiàn)您的想法或編寫腳本或工具。 只要有環(huán)境,沒有IDE也沒關(guān)系。 vim 和記事本等文本編輯器可以編寫代碼。 讀取文件、發(fā)起請(qǐng)求、處理圖像、調(diào)用系統(tǒng)函數(shù)等諸多操作都非常方便。
如果是其他語言,需要構(gòu)建項(xiàng)目、安裝打包環(huán)境、編譯、運(yùn)行、調(diào)試,整個(gè)過程的效率會(huì)低很多。 而且讀取文件、發(fā)送請(qǐng)求、處理數(shù)據(jù)等一系列操作確實(shí)沒有那么方便,代碼也比較復(fù)雜。
所以即使你不搞算法,學(xué)一學(xué)也沒有壞處。
前期準(zhǔn)備
安裝非常簡單。 網(wǎng)上有很多教程,我就不贅述了。 你自己百度一下就可以了。 安裝時(shí)請(qǐng)注意。 官方已停止維護(hù)和更新。 您必須安裝它。 最好選擇.6版本。
如何確保已安裝? 這很簡單。 在命令行中輸入它。 如果可以輸入并運(yùn)行該程序,則說明該程序已安裝。
這里的第一行將輸出版本。 注意這里的版本。 有時(shí)計(jì)算機(jī)上存在多個(gè)版本并存。 此時(shí),您可以配置環(huán)境變量并將命令映射到其中。
安裝完之后還需要一個(gè)包管理工具pip。 通過pip,我們可以方便的下載安裝各種第三方庫來實(shí)現(xiàn)我們想要的各種功能。 安裝pip的方法有很多,大家自行百度即可。 安裝完成后,輸入pip -V。 如果您看到 pip 版本,則表明它已安裝。
如果你想從事機(jī)器學(xué)習(xí)、人工智能等領(lǐng)域的研究,也可以安裝。 它也是一個(gè)包管理工具,但是比pip更重量級(jí)。 它還具有UI界面sublime text 3 函數(shù)追蹤,操作更方便。 你可以根據(jù)自己的需要選擇這個(gè),可以安裝也可以不安裝。
最后說一下IDE,基本上只有兩種選擇,一種是Jet-的,另一種是微軟的。 少數(shù)人喜歡使用其他文本編輯器,比如atom等,這個(gè)就看大家的喜好了。 我個(gè)人的建議是,如果你要開發(fā)一個(gè)大的項(xiàng)目,那么選擇只寫腳本和一些簡單的工具就足夠了。
當(dāng)然,如果你不覺得不舒服,也可以在命令行的黑框里寫。 只是縮進(jìn)比較麻煩,一般人都不會(huì)這么做。
我們來談?wù)勗瓌t
環(huán)境配置好之后,先不用管編碼。 我們先了解一些基本原理,這樣可以避免后續(xù)開發(fā)過程中出現(xiàn)很多問題。
解釋性語言
很多教科書都會(huì)說它是一種解釋性語言。 我們先不說這個(gè)結(jié)論正確與否。 我們先解決一個(gè)問題。 什么是解釋性語言?
這個(gè)問題說來話長。 簡單來說,我們現(xiàn)在的主流編程語言都是高級(jí)語言。 所謂高級(jí)語言,就是計(jì)算機(jī)無法直接識(shí)別我們寫的代碼,中間需要有一個(gè)連接。 另一方面,匯編語言并不是高級(jí)語言,因?yàn)橛?jì)算機(jī)的CPU可以直接執(zhí)行匯編語言代碼。
中間連接方式一般有兩種。 第一個(gè)是編譯,就是將代碼翻譯成計(jì)算機(jī)可以直接執(zhí)行的機(jī)器語言。 比如C、C++。 第二個(gè)是解釋,就是有一個(gè)解釋器,逐行解釋代碼,然后運(yùn)行。
它屬于哪一個(gè)? 事實(shí)上,事實(shí)并非如此。 Java這兩種語言有些特殊。 它們是編譯+解釋語言。 它首先會(huì)被編譯成虛擬機(jī)可以識(shí)別的字節(jié)碼,然后交給虛擬機(jī)解釋執(zhí)行。 我們都知道Java代碼編譯后會(huì)生成.class文件,運(yùn)行后也會(huì)生成pyc文件。 只是這些pyc文件并不是很顯眼,很多人都沒有注意到。
但與 Java 不同的是,Java 是全局編譯的,但是是按順序編譯的。 所以這樣寫是錯(cuò)誤的:
test()
def?test():
?print('yyyyy')
因?yàn)榻忉屍髟趫?zhí)行測試函數(shù)時(shí)還沒有讀取它的定義,找不到這個(gè)函數(shù),自然會(huì)報(bào)錯(cuò)。
弱類型語言
第二要說的是它是一種弱類型語言。 并不是說語言中沒有類型,而是類型是隱藏的,正常情況下是不顯示的。 相反的是強(qiáng)類型語言。
弱類型語言最大的優(yōu)點(diǎn)就是編寫簡單,函數(shù)調(diào)用靈活。
首先我們來說說靈活寫作。 因?yàn)轭愋碗[藏,變量完全擺脫了類型的約束,你可以隨心所欲地賦值。 讓我舉一個(gè)例子。 你可以看下面的代碼:
a?=?3
b?=?"hello"
a?=?b
print(a)
我們直接a = 3,b="hello"聲明了兩個(gè)變量a和b,a和b的類型會(huì)根據(jù)賦值的結(jié)果自動(dòng)標(biāo)記。 而且,雖然a是int類型,b是類型,但是完全可以將b賦值給a。 在其他語言中,這樣的操作是絕對(duì)不可能的。 只有相同類型的變量才能互相賦值。
不僅如此,我們還可以使用變量來接收任何值,例如函數(shù)甚至類。 例如,以下代碼:
def?test():
?print('hello')
a?=?test
a()
class?Test:
?def?__init__(self):
??self.text?=?"hello"
a?=?Test
print(a().text)
我們首先讓a接收測試函數(shù),然后讓它接收一個(gè)類。 沒有問題,可以直接運(yùn)行。 變量完全擺脫了類型的限制,帶來了極大的靈活性,可以隨意傳遞和接收。
接下來我們來說說函數(shù)調(diào)用。 因?yàn)闆]有類型限制,所以我們?cè)谡{(diào)用函數(shù)時(shí)可以任意傳遞它們。 例如,我們有一個(gè)這樣的函數(shù):
def?test(a):
?print(a)
它接收一個(gè)參數(shù)a。 由于這里沒有限制,所以外界可以傳入任何內(nèi)容。
test(3)
test('str')
test(Test())
test([3,?4,?5])
我們可以傳入一個(gè)數(shù)字、一個(gè)字符串、一個(gè)類實(shí)例、一個(gè)數(shù)字、一個(gè)函數(shù)……在了解了函數(shù)參數(shù)之后,我們甚至可以傳入任意數(shù)量的參數(shù)。
這種靈活性也是前所未有的,極大的方便了開發(fā)者。
但有利有弊。 除了簡化編碼、解除限制之外,如此巨大的靈活性也帶來了很多問題。 例如,參數(shù)驗(yàn)證變得很麻煩,因?yàn)槲覀儾恢勒{(diào)用者將傳遞給我什么樣的值。 類型可能根本不是我想要的。 因此需要額外的參數(shù)驗(yàn)證,調(diào)試變得復(fù)雜。 由于弱類型,剛才一個(gè)變量是A類型sublime text 3 函數(shù)追蹤,一轉(zhuǎn)眼賦值就變成了B類型。 追蹤調(diào)查非常不便。
以上僅是部分特點(diǎn)和原理。 這些內(nèi)容可能看起來無關(guān)緊要,如果你不知道它們也不會(huì)影響編碼。 但了解它們可以幫助我們避免和鎖定很多問題,也是一個(gè)工程師素質(zhì)和能力的體現(xiàn)。 所以,大家千萬不能忽視原理的理解和學(xué)習(xí),不能僅僅停留在使用上。
好了,我就簡單的說一下背景,具體的語法和用法我會(huì)從下一期給大家分享。
最后祝大家周末愉快。
如果喜歡這篇文章,別忘了關(guān)注哦~
如有侵權(quán)請(qǐng)聯(lián)系刪除!
Copyright ? 2023 江蘇優(yōu)軟數(shù)字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服務(wù)提供商
13262879759
微信二維碼