當前位置:首頁 » 編程語言 » shellperlpython

shellperlpython

發布時間: 2022-11-07 04:13:51

python 與其他語言的比較優點是

Python已經和很多語言比較過了。一個原因就是Python提供了很多其他語言擁有的特性,另外一個原因就是Python本身也是由諸多其他語言發展而來的,包括ABC、Mola-3、C.C++.Algol-68.SmallTalk.Unix shell和其他的腳本語言,等等。Python就是「濃縮的精華」VanRossum研究過很多語言,從中吸收了許多覺得不錯的特性,並將它們溶於一爐。
然而,往往因為Python是一門解釋型語言,你會發現大多數的比較是在Perl、java.Tcl,還有JavaScript之間進行的。Perl是另外一種腳本語言,遠遠超越了標準的shell腳本。像Python一樣,Perl賦予了你所有編程語言的功能特性,還有系統調用能力。
Per最大的優勢在於它的字元串模式匹配能力,其提供了一個十分強大的正則表達式匹配引擎。這使得Per1實際上成為了一種用於過濾、識別和抽取字元串文本的語言,而且它一直是開發Web伺服器端CGI (common gateway interface,通用網關介面)網路程序的最流行的語言。Python的正則表達式引擎很大程度上是基於Perl的。然而,Perl語言的晦澀和對符號語法的過度使用,讓解讀變得很困難。這些語法令初學者不得精要,為他們的學習帶來了不小的阻礙。Perl的這些額外的「特色」使得完成同一個任務會有多個方法,進而引起了開發者之間的分歧。最後,通常當你想閱讀幾個月前寫的Perl腳本的時候都不得不求助參考書。Python也經常被拿來和Java作對比,因為他們都有類似的面向對象的特性和語法。Java的語法盡管比C++簡單的多,但是依舊有些繁瑣,尤其是當你想完成一個小任務的時候。Python的簡潔與純粹使用Java相比提供了更加快速的開發環境。在Python和Java的關繫上,一個非常重大的革命就是Jython的開發。Jython是一個完全用Java開發的Python解釋器,現在可以在只有Java虛擬機的環境中運行Python程序。我們會在後面的章節中簡單講述Jython的更多優點,但是現在就可以告訴你:在Jython的腳本環境中,你可以熟練地處理Java對象,Java可以和Python對象進行交互,你可以訪問自己的Java標准類庫,就如同Java一直是Python環境的一部分一樣。
現在,由於Rails項目的流行,Python也經常被拿來和Ruby進行比較。就像前面我們提到的,Python是多種編程範式的混合,它不像Ruby那樣完全面向對象,也沒有像Smalltalk那樣的塊,或許這正是Ruby最引人注目的特性。Python有一個位元組碼解釋器,而Ruby沒有。Python更加易讀,而Ruby事實上可以看作是面向對象的Perl。相對於Rails, Python有幾個自己的Web應用框架,比如Django和Turbogears這兩個項目。

❷ 怎樣用perl腳本調用python腳本並傳遞參數

舉例:shell的腳本:t.sh內容:echo "this is a test shell with arguments"echo "arg1 = $1; arg2 = $2;"執行腳本./t.sh zhao結果如下:[noncode@gnode108 knockdown_workflow]$ ./t.sh zhao1 zhao2this is a test shell with argumentsarg1 = zhao1; arg2 = zhao2;python腳本:[noncode@gnode108 knockdown_workflow]$ cat t.py #!/usr/bin/env pythonimport osimport sysdef main():print 'Hello world!'if len(sys.argv) < 2 : print "usage:%s config log" %(sys.argv[0]) sys.exit(1)arg0 = sys.argv[0]arg1 = sys.argv[1]print "arg0 = %s; arg1 = %s" % (arg0, arg1) print "test ./t.sh: "os.system('./t.sh ' + arg0 + ' ' + arg1)print "test method of replacing: "t = 't.sh'm = 'zhao'n = 'zhao'cmd = "./%s %s %s" % (t,m,n)print "t = %s; m = %s; n = %s; cmd = %s" % (t,m,n,cmd)os.system(cmd)if __name__ == '__main__':main()運行腳本:python t.py t.sh執行結果:[noncode@gnode108 knockdown_workflow]$ python t.py t.shHello world!arg0 = t.py; arg1 = t.shtest ./t.sh: this is a test shell with argumentsarg1 = t.py; arg2 = t.sh;test method of replacing: t = t.sh; m = zhao; n = zhao; cmd = ./t.sh zhao zhaothis is a test shell with argumentsarg1 = zhao; arg2 = zhao;[noncode@gnode108 knockdown_workflow]$ cat t.sh echo "this is a test shell with arguments"echo "arg1 = $1; arg2 = $2;"[noncode@gnode108 knockdown_workflow]$ ./t.sh zhao1 zhao2this is a test shell with argumentsarg1 = zhao1; arg2 = zhao2;說明:兩種方法使用python腳本調用shell腳本:第一種方法:os.system('./t.sh ' + arg0 + ' ' + arg1)註:./t.sh後面有一個空格,不同的第二種方法:t = 't.sh'm = 'zhao'n = 'zhao'cmd = "./%s %s %s" % (t,m,n)print "t = %s; m = %s; n = %s; cmd = %s" % (t,m,n,cmd)os.system(cmd)註:在之前把字元串聚合到一起。

❸ perl和python各自擅長什麼領域

Perl

設 計之初就是為了方便編寫復雜高效的系統腳本,它也是應該最為廣泛的腳本編程語言。它在編程方面相當於瑞士軍刀,對字元、文本文件處理能力很強,以前要求 shell+sed+awk+C才能完成的任務,只需perl腳本就可以完成了。而且應用領域一直在拓寬,支持面向對象程序設計。

Python

面向對象的動態公共語言,適於腳本編程和快速開發,它最顯著的特點是作為編譯語言(如C)和腳本語言(如perl)之間的橋接語言,它具有的強大功能,可擴充性及面向對象的特徵使其成為大規模應用程序開發工具。

關於強類型

Perl語言中,數據的類型,取決於數據所處的上下文。Python語言中,數據類型,是數據自身確定的。Python因此一般被認為是強類型語言,而Perl則不是,不過Perl的愛好者一般不關心這種事情。實際上,換個角度來看,Python是固定的數據類型,變化的函數類型;而

Perl則是固定的函數類型,變化的數據類型。都很有意思。

關於 內置基礎類型

Perl的基礎類型叫做scalar,這是為了和後面的array和hash做區別。scalar可以是數字,也可以是字元串。基本上說,scalar非此即彼;換句話說,scalar既是數字,又是字元串。scalar到底是字元串,還是數字,完全取決於使用scalar的上下文,如果是一個處理字元串的函數,那麼它是字元串;如果是一個處理數字的函數,那麼它是數字。Perl會盡一切努力完成它們之間的轉化,無論在你看來有多麼荒誕。

Perl中,所有scalar都以$開頭,所有以$開頭的都是scalar。

Python的基礎類型,同樣,不是數字,就是字元串。但是,不可能既是數字,又是字元串。Python會判斷變數到底是數字,還是字元串,以此來選擇怎麼解釋函數;如果它找不到一個合適的解釋,那麼Python會拋出異常。一般來說,這種策略能夠取悅一部分程序員,同時讓另外一部分人感覺很不爽。

關於 復合類型

Perl有兩種復合類型:array和hash。Python有三種復合類型:tuple,

list, dict。

Python中的tuple+list,完全對應於Perl中的array;因此不存在誰提供的

類型更豐富這樣的問題。

關於 創建

Perl中創建array可以通過()。但是()到底是否會創建一個array,這取決於所處的上下文;換句話說,只有當上下文要求一個array時,()才會產生一個array。事實上,()可能創建一個scalar,也可能創建一個hash,這完全取決於上下文。

關於存取單個元素

Perl中我們可以用$foo[$bar]來表示foo這個array中的第$bar個元素。特別詭異的是,這個foo和$foo中的foo是完全不相乾的,這回應了前面提到的Perl原則,一個符號到底什麼意思,取決於上下文。並且,在$foo[$bar]這樣一個上下文中,$bar會被Perl 搞成整數,無論它本來是什麼。

Perl中,用一個越界的idx訪問array是完全正常的,Perl會悄悄的擴展array。Python中,tuple或者是list,兩者都通過lst[idx]這樣的形式存取其中的元素。

Python中,用一個越界的idx訪問array會觸發一個異常。

Python中,提供了強大的slice功能。

關於做為整體的list

Perl中,用@開頭的名字表示整個array,據說是因為@是array的字頭。但是,又根據Perl的原則,@foo這樣的array也可以被使用到一個需要scalar的環境中去,Perl會盡力把@foo轉換成一個scalar,一般來說,這個scalar就是@foo的長度。

Python中,直接使用變數名,就能獲得整個list(或者tuple)。

❹ perl和python各自擅長什麼領域

Perl 設 計之初就是為了方便編寫復雜高效的系統腳本,它也是應該最為廣泛的腳本編程語言。它在編程方面相當於瑞士軍刀,對字元、文本文件處理能力很強,以前要求 shell+sed+awk+C才能完成的任務,只需perl腳本就可以完成了。而且應用領域一直在拓寬,支持面向對象程序設計。
Python 面向對象的動態公共語言,適於腳本編程和快速開發,它最顯著的特點是作為編譯語言(如C)和腳本語言(如perl)之間的橋接語言,它具有的強大功能,可擴充性及面向對象的特徵使其成為大規模應用程序開發工具。
關於強類型Perl語言中,數據的類型,取決於數據所處的上下文。
Python語言中,數據類型,是數據自身確定的。Python因此一般被認為是強類型語言,而Perl則不是,不過Perl的愛好者一般不關心這種事情。實際上,換個角度來看,Python是固定的數據類型,變化的函數類型;而 Perl則是固定的函數類型,變化的數據類型。都很有意思。
關於 內置基礎類型
Perl的基礎類型叫做scalar,這是為了和後面的array和hash做區別。scalar可以是數字,也可以是字元串。基本上說,scalar非此即彼;換句話說,scalar既是數字,又是字元串。scalar到底是字元串,還是數字,完全取決於使用scalar的上下文,如果是一個處理字元串的函數,那麼它是字元串;如果是一個處理數字的函數,那麼它是數字。Perl會盡一切努力完成它們之間的轉化,無論在你看來有多麼荒誕。 Perl中,所有scalar都以$開頭,所有以$開頭的都是scalar。 Python的基礎類型,同樣,不是數字,就是字元串。但是,不可能既是數字,又是字元串。Python會判斷變數到底是數字,還是字元串,以此來選擇怎麼解釋函數;如果它找不到一個合適的解釋,那麼Python會拋出異常。一般來說,這種策略能夠取悅一部分程序員,同時讓另外一部分人感覺很不爽。
關於 復合類型
Perl有兩種復合類型:array和hash。Python有三種復合類型:tuple, list, dict。 Python中的tuple+list,完全對應於Perl中的array;因此不存在誰提供的 類型更豐富這樣的問題。
關於 創建Perl中創建array可以通過()。但是()到底是否會創建一個array,這取決於所處的上下文;換句話說,只有當上下文要求一個array時,()才會產生一個array。事實上,()可能創建一個scalar,也可能創建一個hash,這完全取決於上下文。
關於存取單個元素
Perl中我們可以用$foo[$bar]來表示foo這個array中的第$bar個元素。特別詭異的是,這個foo和$foo中的foo是完全不相乾的,這回應了前面提到的Perl原則,一個符號到底什麼意思,取決於上下文。並且,在$foo[$bar]這樣一個上下文中,$bar會被Perl 搞成整數,無論它本來是什麼。 Perl中,用一個越界的idx訪問array是完全正常的,Perl會悄悄的擴展array。Python中,tuple或者是list,兩者都通過lst[idx]這樣的形式存取其中的元素。 Python中,用一個越界的idx訪問array會觸發一個異常。 Python中,提供了強大的slice功能。
關於做為整體的list
Perl中,用@開頭的名字表示整個array,據說是因為@是array的字頭。但是,又根據Perl的原則,@foo這樣的array也可以被使用到一個需要scalar的環境中去,Perl會盡力把@foo轉換成一個scalar,一般來說,這個scalar就是@foo的長度。

❺ PHP,Python,Perl是些什麼語言

PHP:PHP是一種開放源代碼的腳本編程語言。主要用於Web伺服器的伺服器端應用程序,用於動態網頁設計,是一種嵌入HTML頁面中的腳本語言。
Python
(發音:[
'paiθ(ə)n;
(US)
'paiθɔn
]),是一種面向對象的解釋性的計算機程序設計語言,也是一種功能強大而完善的通用型語言,已經具有十多年的發展歷史,成熟且穩定。Python
具有腳本語言中最豐富和強大的類庫,足以支持絕大多數日常應用。
Perl借取了C、sed、awk、shell
scripting以及很多其他程序語言的特性。
Perl
一般被稱為「實用報表提取語言」(PracticalExtraction
andReportLanguage),雖然有時被稱做「病態折中垃圾列表器」(PathologicallyEclectic
Rubbish
Lister)。它是術語,而不僅僅是簡寫,Perl的創造者,LarryWall提出第一個,但很快又擴展到第二個。那就是為什麼「Perl」沒有所有字母都大寫。沒必要爭論那一個正確,Larry
兩個都認可。
你也可能看到「perl」,所有的字母都是小寫的。一般,「Perl」,有大寫的
P,是指語言本身,而「perl」,小寫的
p,是指程序運行的解釋器。
Perl的正式網站是
www.perl.org。

❻ 敢問Perl 比 Python 好在哪裡

1. perl正則好用: sed, awk, grep的正則有細微差異, 難以記憶, 基本上一個正則表達式需要試很久. 而perl在onelinar寫shell腳本中, 可以替換sed/awk/grep. 只需要記住統一的perl正則即可, 統一簡潔好用.
2. 形式自由, 可以隨心所欲. 用perl寫腳本, 可以有多種寫法. 想簡潔就簡潔, 想整潔就整潔, 風格自己定.
3. 繁雜的extension和精簡的語言內核很吸引人. 函數(sub)和符號表(%::)都是first-citizen, 所以高階函數和typeglob都用起來很爽.
4. 最最重要原因, 用perl的人, 內心強烈的認為perl比python好, 不用不知道這種偏好是多麼強烈. 偏好是一種強烈的執念, 執念容易虛妄.
5. 其實ruby要比perl和python都好. 但腳本語言, 屬於小語種, 熟悉了常用的一種, 就不想學其他小語種了.

❼ perl 、shell、python三種腳本語言那種好學、易用

perl、shell、python三種腳本語言的區別:

1、適用不同:shell是操作linux的基本,是必須學的。學shell就是學linux命令。perl有強大的正則表達式支持,對於文本處理非常強悍,玩linux不得不學。python作用一種面向對象的,能作為linux腳本的語言,學好之後能幫你很好地完成工作。

2、特點不同:Perl是一種能完成任務的語言。從一開始,Perl就設計成可以把簡單工作簡單化,同時又不失去處理困難問題能力的語言。它可以很容易操作數字,文本,文件和目錄,計算機和網路,特別是程序的語言。

這種語言應該很容易運行外部的程序並且掃描這些程序的輸出獲取感興趣的東西。而且它還應該很容易能把這些你感興趣的東西交給其它程序做特殊的處理。當然,這種語言還應該很容易在任何現代的操作系統上可以移植地編譯和運行。

shell提供了你與操作系統之間通訊的方式。這種通訊可以以交互方式(從鍵盤輸入,並且可以立即得到響應),或者以shellscript(非交互)方式執行。

shellscript是放在文件中的一串shell和操作系統命令,它們可以被重復使用。本質上,shellscript是命令行命令簡單的組合到一個文件裡面。Shell基本上是一個命令解釋器,類似於DOS下的command.com。

它接收用戶命令(如ls等),然後調用相應的應用程序。較為通用的shell有標準的Bourneshell(sh)和Cshell(csh)。

Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣,盡管這個英語的要求非常嚴格,Python的這種偽代碼本質是它最大的優點之一。它使你能夠專注於解決問題而不是去搞明白語言本身。

3、優點不同:perl,用作文本處理比較好,可以作為系統的輔助工具。shell,用作系統維護、操作等方面。python,功能強大,模塊多、跨平台能力好,完全面向對象,尤其適用做大型腳本程序的開發和快速開發。

(7)shellperlpython擴展閱讀:

erl比shell+sed+awk更強大,但學習兩者並不沖突,通常是學習shell做為腳本編程的入門基礎。而Python在應用領域則與前兩者有很大的差別,無太大的可比性。面向不同的任務,可以只需用到其中的一種,也可能三種都要用到,所以究竟該學誰不學誰,需要由面對的任務來決定。

總之,shell是基礎,其他是進階輔助。

Shell腳本通常都是以.sh為後綴名的,這個並不是說不帶.sh這個腳本就不能執行,只是大家的一個習慣而已。所以,以後你發現了.sh為後綴的文件那麼它一定會是一個shell腳本了。

test.sh中第一行一定是「#!/bin/bash」它代表的意思是,該文件使用的是bash語法。如果不設置該行,那麼你的shell腳本就不能被執行。』#』表示注釋。後面跟一些該腳本的相關注釋內容以及作者和創建日期或者版本等等。

❽ 計算機病毒只感染磁碟上的可執行文件

(1)計算機數據信息大程度被破壞

一般會直接破壞數據信息源的病毒會在病毒激發的過程中對用戶硬碟進行破壞,包括文件格式化,磁碟分區功能文紊亂,惡意自動刪除文件或產生信息垃圾,改動文件本來的屬性和對CMOS破壞等等。

(2)佔用磁碟空間和破壞信息

一般用戶磁碟空間是非常大的,一旦受到病毒攻擊,用戶磁碟空間自動會被病毒佔用。病毒的佔領方式主要為排擠磁碟的引導扇區自己占據磁碟的引導扇區,最後實行全覆蓋,只要磁碟數據和文件信息被佔用,所有的數據將會出現錯亂,信息將會被自動修改。而文件病毒相反不會這樣,它們在傳染過程中一般只佔據磁碟空間不會造成信息聚聚的丟失和缺失破壞。


病毒會破壞信息

(3)搶占系統資源

一般大多數病毒一旦傳播進入電腦,在電腦裡面的存留時間都是非常長久的,除少數病毒例外,如VIENNA、CASPER等特殊少數病毒例外。病毒進入電腦後由於自身長度較大,所以占據的內存空間也相對較大,磁碟空間內存減少,一些軟體和程序就會無法進行,嚴重系統會自動停運。另外病毒也會干擾系統的重啟和正常運行,因為計算機的操作系統自動終端技術程序一般被病毒終端破壞干擾。

(4)降低計算機運行速度

病毒進入計算機網路系統不僅會干擾系統正常運行,還會在運行速度方面進行非干擾,具體表位為以下幾大方面:病毒會加劇對電腦的工作狀態的監視進程,也就是說會增大電腦運行負荷。有些病毒功能強大,一旦進入用戶計算機系統,占據磁碟後為防止主人破解是識別病毒,這些病毒會自動給自己進行加密,所以計算機的cpu運行速率較正常情況下會加快,計算機只有先將解密程序打開後才能對病毒釋放破解,電腦才能正常工作運行,但是正常運行結束後,病毒又會重新占據磁碟給自己重新加密。綜上所述,病毒一旦感染電腦後,計算機系統的運行程序被打亂,導致計算運行負荷增加,運行速度自然會變慢。軟盤也會受之影響,發出噪音,讀寫不規范。

❾ 為什麼Python被稱為「膠水語言」

膠水語言,原本是Python針對一門叫做perl的語言來講的。。。。在很長一段時間里,perl語言都是python面臨的最大競爭對手。。就和java與C#之間的情況差不多。。
perl語言是捧著金飯碗出生的,剛一出生,就有當時最主流的操作系統Unix保駕護航,成為了Unix內置的標准件,一大群的編程教父為其代言,更少不了一大群瘋狂追捧的鐵桿粉。。。在很短的時間內,就建立起了一批龐大的用戶群,被稱為「夢幻腳本語言」。一時之間,所向無敵。
大概兩年之後。。與Perl採用同樣設計思路的另一門語言,Python誕生了。。一出生地位便十分尷尬。。。。因為與perl語言作用重疊,而perl語言又占據了Python可以發揮的幾乎一切領域。。無論Python如何獻殷勤,拋媚眼,最終也沒能攀上Unix這個爹。。只好硬著頭皮,以小三的身份,嫁進了Linux的門。。。
作為shell和perl之後,第三種嫁入Linux大院兒的語言,python為了凸顯自己的存在價值,便以膠水語言自居。。。即可以在shell與perl之間和諧共處。。。做了幾年小三之後,隨著Unix閉源,Unix陣營的迅速消亡。。Perl的娘家突然之間倒台了。。
Linux把Perl作為標准件的主要原因,是為了兼顧Unix操作習慣。。。由於Unix陣營的倒台。。Perl也就不像以前那麼得寵了。。Python也逐漸開始做一些「本該由Perl來做的事情」。。。隨著後來Python越來越「不守本分」。。導致Perl的地位開始下滑。。直到最後雙方對調。。Python轉成了正房,Perl變成了小三。。
今天的Python,要風得風,要雨得雨,在Linux平台更是唯我獨尊,早就不是當年的膠水語言了。。。
————以上為個人2015年的回答————
本人做出以上回答時,Python還是個小語種。當時本人只是站在「動態語言」的立場下進行回復,而不是站在「所有編程語言」的立場之下。
當時本人實在沒想到,四年之後,Python會變得這么火,而且火的有些過頭。因此對之前的回復進行一些補充。
但由於歷史問題導致,Python是一門動態語言,相對於JAVA,C#之類的靜態語言來說,並不適合編寫較大的程序。盡管編寫代碼很省事兒,但卻難以維護,後續問題較多。因此Python並不能替代靜態語言,更適合作為一門輔助語言來使用。

❿ (Python派森平台)有什麼做用

用於運行由python平台編寫的程序,可以說成解析器,就像你安裝jar游戲要用到java平台,只是java平台手機本身就有,不用安裝而已

熱點內容
電腦改文檔伺服器 發布:2025-01-11 16:41:14 瀏覽:869
編譯匯編語言實例 發布:2025-01-11 16:36:55 瀏覽:670
海康ntp校時伺服器地址 發布:2025-01-11 16:34:35 瀏覽:743
伺服器運行超時怎麼辦 發布:2025-01-11 16:34:32 瀏覽:298
人妖迅雷種子ftp 發布:2025-01-11 16:33:04 瀏覽:916
python將列表轉化為字元串 發布:2025-01-11 16:32:11 瀏覽:192
大疆穩定器wifi連接初始密碼多少 發布:2025-01-11 16:25:36 瀏覽:890
專線伺服器運行的項目如何訪問 發布:2025-01-11 16:15:13 瀏覽:720
小米智能攝像機雲存儲 發布:2025-01-11 16:12:08 瀏覽:556
lnmpphp升級 發布:2025-01-11 16:12:07 瀏覽:326