科技改變生活 · 科技引領(lǐng)未來(lái)
Python是一種跨平臺(tái)的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。 是一個(gè)高層次的結(jié)合了解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語(yǔ)言。最初被設(shè)計(jì)用于編寫(xiě)自動(dòng)化腳本(shell),隨著版本的不斷更新和語(yǔ)言新功能的添加,越多被用于獨(dú)立的、大型項(xiàng)目的開(kāi)發(fā)。
它還有一個(gè)很驚人的中文名,叫蟒蛇。
逐個(gè)字符用ord()判斷ascii碼a - z : 97 - 122A - Z : 65 - 90def is_english_char(ch): if ord(ch) not in (97,122) and ord(ch) not in (65,90): return False return True上面函數(shù)可以辨別字符是否為英文字符
學(xué)了多年計(jì)算機(jī),還是在搬磚的碼農(nóng),還是有資格來(lái)回答這個(gè)問(wèn)題的。
一句話解答:計(jì)算機(jī)語(yǔ)言底層其實(shí)是二進(jìn)制,由于計(jì)算機(jī)是由西方國(guó)家發(fā)明,并且在英語(yǔ)國(guó)家完成工業(yè)化,互聯(lián)網(wǎng),信息化過(guò)程,所以大部分計(jì)算機(jī)語(yǔ)言是英語(yǔ)。其實(shí)現(xiàn)在有中文的編程語(yǔ)言,但是使用率不廣,沒(méi)有產(chǎn)生大的影響。
計(jì)算機(jī)語(yǔ)言發(fā)展一分鐘介紹
1、機(jī)器語(yǔ)言:最初的計(jì)算機(jī)所使用的是由“0”和“1”組成的二進(jìn)制序列,二進(jìn)制是計(jì)算機(jī)的語(yǔ)言的基礎(chǔ)。所以最初的計(jì)算機(jī)只能被少部分人使用,想一想,你需要用一大堆1010101010000110101來(lái)指揮那臺(tái)巨大的機(jī)器,在另一邊的紙帶上給你輸出同樣的一對(duì)1010101110101010001010的數(shù)據(jù),真的是頭疼。
世界上第一臺(tái)電子計(jì)算機(jī):
旁邊的箱子柜子都是這臺(tái)計(jì)算機(jī)的組成部分,就是沒(méi)有顯示器。
2、匯編語(yǔ)言:匯編語(yǔ)言是在機(jī)器語(yǔ)言的基礎(chǔ)上誕生的一門(mén)語(yǔ)言,用一些簡(jiǎn)潔的英文字母、符號(hào)串來(lái)替代一個(gè)特定的指令的二進(jìn)制串,這也提高了語(yǔ)言的記憶性和識(shí)別性。
大概就是如上圖所示。
反正我也是看不懂的。這里面包含了很多二進(jìn)制,八進(jìn)制,十六進(jìn)制的數(shù)字,寄存器、控制器,加法器的簡(jiǎn)寫(xiě)。
匯編語(yǔ)言的特點(diǎn)是和機(jī)器強(qiáng)相關(guān),也就是說(shuō),什么樣的機(jī)器,就會(huì)規(guī)定特定的匯編語(yǔ)言。比如現(xiàn)在比較廣泛的X86,基于X86處理器的匯編語(yǔ)言,就和X86架構(gòu)密切相關(guān)。
在這個(gè)層次,使用中文會(huì)出現(xiàn)兩個(gè)問(wèn)題,第一就是中文是象形文字,占用存儲(chǔ)資源較多,一個(gè)中文占用兩個(gè)字節(jié),相對(duì)于字母來(lái)講已經(jīng)是兩倍了。二是,由電子計(jì)算機(jī)的誕生地決定了,芯片廠商基本都是西方國(guó)家,比如:Intel,AMD,TI(德州儀器)。
3、高級(jí)計(jì)算機(jī)語(yǔ)言:隨著計(jì)算機(jī)使用的擴(kuò)大,需要一種不依賴(lài)于特定型號(hào)的計(jì)算機(jī)的語(yǔ)言,用這種語(yǔ)言編寫(xiě)的程序能在在各種平臺(tái)都正常運(yùn)行。這就開(kāi)始了計(jì)算機(jī)高級(jí)語(yǔ)言的發(fā)展。
計(jì)算機(jī)語(yǔ)言一分鐘簡(jiǎn)史
一、元老級(jí)語(yǔ)言
1、Fortran(公式翻譯語(yǔ)言),目前公認(rèn)為世界上第一個(gè)正式的計(jì)算機(jī)通用的語(yǔ)言。
1954年約翰·貝克斯在紐約正式對(duì)外發(fā)布,稱(chēng)為FORTRANⅠ,運(yùn)行在 IBM 704 計(jì)算機(jī)上。
2、ALGOL,是算法語(yǔ)言(ALGOrithmic Language)的簡(jiǎn)稱(chēng),目前還在科學(xué)計(jì)算領(lǐng)域活躍。1958年5月27日至6月1日,GAMM(德國(guó)的應(yīng)用數(shù)學(xué)和力學(xué)學(xué)會(huì))和ACM(國(guó)際計(jì)算機(jī)學(xué)會(huì))各有4人出席在蘇黎世舉行第一次設(shè)計(jì)會(huì)議,確定了 ALGOL 語(yǔ)言。
3、COBOL,廣泛使用于企業(yè)的商務(wù)場(chǎng)景,于1961年由美國(guó)數(shù)據(jù)系統(tǒng)語(yǔ)言協(xié)會(huì)公布。
二、主宰級(jí)語(yǔ)言
先給大家上一個(gè)圖:2018年9月的世界編程語(yǔ)言排行榜
這里的新聞點(diǎn)是,萬(wàn)年前三:Java、C、C++終于被Python打敗,Python已經(jīng)沖進(jìn)了第三名。
TIOBE排行榜是根據(jù)互聯(lián)網(wǎng)上有經(jīng)驗(yàn)的程序員、課程和第三方廠商的數(shù)量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube統(tǒng)計(jì)出排名數(shù)據(jù),只是反映某個(gè)編程語(yǔ)言的熱門(mén)程度,并不能說(shuō)明一門(mén)編程語(yǔ)言好不好,或者一門(mén)語(yǔ)言所編寫(xiě)的代碼數(shù)量多少。能判斷一下現(xiàn)在編程語(yǔ)言的流行趨向。比如:Java一直占據(jù)第一的位置,是因?yàn)樗亲顝V泛的面向?qū)ο蟮木幊陶Z(yǔ)言。下面為大家簡(jiǎn)單的介紹一下主要語(yǔ)言的誕生時(shí)間和語(yǔ)言大佬。
1、Java,1996年1月,Sun公司發(fā)布了Java的第一個(gè)開(kāi)發(fā)工具包(JDK 1.0),這是Java發(fā)展歷程中的重要里程碑,標(biāo)志著Java成為一種獨(dú)立的開(kāi)發(fā)工具。Java是由Sun公司在1991年成立了一個(gè)稱(chēng)為Green的項(xiàng)目小組,小組成員包括:帕特里克、詹姆斯·高斯林、麥克·舍林丹等,在加利福尼亞州門(mén)洛帕克市沙丘路的一個(gè)小工作室里面研究開(kāi)發(fā)新技術(shù),專(zhuān)攻計(jì)算機(jī)在家電產(chǎn)品上的嵌入式應(yīng)用研究的副產(chǎn)品,最開(kāi)始叫Oak。
其實(shí)名字不重要。SUN的其實(shí)是 Stanford University Network 的縮寫(xiě),斯坦福校園網(wǎng)。Google創(chuàng)始人拉里·佩奇和謝爾蓋·布林,都曾攻讀過(guò)斯坦福大學(xué)計(jì)算機(jī)科學(xué)博士學(xué)位。2、C,1972年,美國(guó)貝爾實(shí)驗(yàn)室的 D.M.Ritchie 在B語(yǔ)言的基礎(chǔ)上最終設(shè)計(jì)出了一種新的語(yǔ)言,他取了BCPL的第二個(gè)字母作為這種語(yǔ)言的名字,這就是C語(yǔ)言。
20世紀(jì)60年代,美國(guó)AT&T公司貝爾實(shí)驗(yàn)室(AT&T Bell Laboratory)的研究員Ken Thompson閑來(lái)無(wú)事,手癢難耐,想玩一個(gè)他自己編的,模擬在太陽(yáng)系航行的電子游戲——Space Travel。他背著老板,找到了臺(tái)空閑的機(jī)器——PDP-7。但這臺(tái)機(jī)器沒(méi)有操作系統(tǒng),而游戲必須使用操作系統(tǒng)的一些功能,于是他著手為PDP-7開(kāi)發(fā)操作系統(tǒng)。后來(lái),這個(gè)操作系統(tǒng)被命名為——UNIX。現(xiàn)在你們知道程序員無(wú)聊了都會(huì)干嘛了吧。3、Python、Python的創(chuàng)始人為Guido van Rossum。1989年圣誕節(jié)期間,在阿姆斯特丹,Guido為了打發(fā)圣誕節(jié)的無(wú)趣,決心開(kāi)發(fā)一個(gè)新的腳本解釋程序,作為ABC 語(yǔ)言的一種繼承。之所以選中Python(大蟒蛇的意思)作為該編程語(yǔ)言的名字,是因?yàn)樗且粋€(gè)叫Monty Python的喜劇團(tuán)體的愛(ài)好者。
又是一個(gè)無(wú)聊的假期的結(jié)果。綜上所述,為什么編程語(yǔ)言都是英語(yǔ)
自計(jì)算機(jī)科學(xué)發(fā)展以來(lái),主要的成果均由英語(yǔ)國(guó)家或英語(yǔ)使用率非常大的國(guó)家(從編程語(yǔ)言來(lái)看,美國(guó)、英國(guó)、德國(guó)、荷蘭等)的計(jì)算機(jī)科學(xué)家、專(zhuān)家完成。所以,自然會(huì)偏向于使用更便于自己溝通的語(yǔ)言了確定編程語(yǔ)言規(guī)范。
中文編程語(yǔ)言:易語(yǔ)言
易語(yǔ)言是一門(mén)以中文作為程序代碼編程語(yǔ)言,其以“易”著稱(chēng),創(chuàng)始人為吳濤。易語(yǔ)言早期版本的名字為E語(yǔ)言。其最早的版本的發(fā)布可追溯至2000年9月11日。創(chuàng)造易語(yǔ)言的初衷是進(jìn)行用中文來(lái)編寫(xiě)程序的實(shí)踐,方便中國(guó)人以中國(guó)人的思維編寫(xiě)程序,并不用再去學(xué)習(xí)西方思維。
創(chuàng)建者:大連大有吳濤易語(yǔ)言軟件開(kāi)發(fā)有限公司(2004年前吳濤獨(dú)立開(kāi)發(fā),2004年成立公司)
個(gè)人意見(jiàn):中文編程語(yǔ)言有是有,只是這個(gè)使用范圍不廣,其實(shí)也不太符合程序員世界的簡(jiǎn)單、通用、資源控制、可納入到現(xiàn)有語(yǔ)言和編譯系統(tǒng)的交流原則了。
我感覺(jué)用nltk 處理中文是完全可用的。其重點(diǎn)在于中文分詞和文本表達(dá)的形式。
中文和英文主要的不同之處是中文需要分詞。因?yàn)閚ltk 的處理粒度一般是詞,所以必須要先對(duì)文本進(jìn)行分詞然后再用nltk 來(lái)處理(不需要用nltk 來(lái)做分詞,直接用分詞包就可以了。嚴(yán)重推薦結(jié)巴分詞,非常好用)。
中文分詞之后,文本就是一個(gè)由每個(gè)詞組成的長(zhǎng)數(shù)組:[word1, word2, word3…… wordn]。之后就可以使用nltk 里面的各種方法來(lái)處理這個(gè)文本了。比如用FreqDist 統(tǒng)計(jì)文本詞頻,用bigrams 把文本變成雙詞組的形式:[(word1, word2), (word2, word3), (word3, word4)……(wordn-1, wordn)]。
python變成中文版的實(shí)現(xiàn)方法如下:
首先下載pycharm漢化包;
然后將“resources_en.jar”文件更名為“resources_cn.jar”;
最后將“resources_cn.jar”文件復(fù)制回lib文件夾內(nèi)即可。
PS:建議不要使用漢化版,會(huì)導(dǎo)致一些小問(wèn)題,例如設(shè)置界面顯示不完整等。
robots
版權(quán)所有 未經(jīng)許可不得轉(zhuǎn)載
增值電信業(yè)務(wù)經(jīng)營(yíng)許可證備案號(hào):遼ICP備14006349號(hào)
網(wǎng)站介紹 商務(wù)合作 免責(zé)聲明 - html - txt - xml