當前位置:首頁 » 編程語言 » python與perl的區別

python與perl的區別

發布時間: 2022-09-05 18:06:41

❶ 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的長度。

❷ perl 語言跟python 語言的區別。學哪一個比較好。

python代碼清晰一些,一切東西都是對象。
perl靈活一些,主要面向過程,內置正則表達式(這個是perl的精髓,很強悍的),支持有限有面向對象,有很多默認的東西和符號,可以把代碼寫得很簡潔(也讓不熟悉的很難讀懂代碼)。
個人使用python, 可以互動式運行,這個很爽的。

❸ 敢問Perl 比 Python 好在哪裡

其實不能這樣比較的, perl 和 python 都只是一種語言, 就像中文, 英文, 日文... 那個好? 是無法做直接比較的, 中文我們易用來溝通, 但很難做技術性的表達; 英文更好面向世界, 但單詞最多且語法迂迴(認真的話), 日文變化不多易掌握, 但難於入門.... perl 和 python 一樣, 好與不好, 要看處境而定, perl 易學但難精, 因為她超靈活多變, 學習你常常會有"嚇! 竟然可以這樣!!" 的感慨, 但一旦你掌握了(和懂得在cpan找資源), 又會變得很自在, 開始有那種 "嗯.. 這個事情三幾句可以搞定了" 的優越感. python 很規矩 (純OO), 很煩, 但相對很好維護, 但開發很費勁, 一個很簡單的事情要分好多句來寫 ( 相對於 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,功能強大,模塊多、跨平台能力好,完全面向對象,尤其適用做大型腳本程序的開發和快速開發。

(4)python與perl的區別擴展閱讀:

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

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

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

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

❺ 敢問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和python區別是什麼

python與perl區別在於:
python使用fetchall()函數後,一次獲取所有行。
perl則是每讀取一次獲取一條記錄。
關於縮進:
python很注重縮進的,有時看起來是對齊的,但是還是會報縮進錯誤。此種情況,一般是有的是TAB縮進,有的是空格縮進。
所以,一般同一個腳本中,使用同一處方式縮進(要麼全TAB,要麼全空格)。
相關推薦:《Python教程》
關於{} []
perl中的數組,哈希都是使用()qw生成 ,只不過是數組使用[]索引,哈希使用{}索引。
python()表示元組,[]表示數組 ,{}表示字典,即哈希。
關於函數:
perl使用{}和C一樣,但是形參,都是用特殊變數@_ 來獲取。關健字 sub ##PERL中大量使用特殊變數。
python 是使用縮進來區分函數語句塊的,關健字 def。
關於python版本問題:
舊版本2.0的,print("這裡面有中文") 列印在屏幕上會是亂碼,列印到文件中則是正常的。
##在舊版本2.0,print如果有列印中文到屏幕上最好不要加()括弧。 列印到文件則無所謂。
關於print
python --- 字元串後面可以不用加n 自動換行。
per --- 不會自動換行,需加上n。
關於執行SQL語句。
python與perl相同,使用變數來接收時,它是個二維數組,每一條查詢結果,即為一個一維數組,每個欄位,即為一維數組中的元素。
## 注意:
如果python執行SQL返回一行數據,則它為一維數組,返回多行數據,則為二維數組。

❼ shell+sed+awk和perl和python的區別

shell+sed+awk是linux下的語言和開發工具,很多系統類基礎類用起來比較快捷
perl和python是2個非常強大的語言,但是個人認為python更強,適應廣泛

❽ Python和perl各有什麼特點和優勢,哪個更好一些

perl是駱駝,python是蟒蛇,優勢或者兩者差異可以用 perl vs python這些來google一下獲得別人的看法。 perl代碼比較晦澀,python現在也是linux的標配了。建議python,除非你是要維護老代碼。

熱點內容
李根資料庫 發布:2025-01-14 03:44:52 瀏覽:340
php資料庫刪除 發布:2025-01-14 03:35:51 瀏覽:293
上傳進度條代碼 發布:2025-01-14 03:32:01 瀏覽:637
電腦怎樣創建文件夾 發布:2025-01-14 03:31:20 瀏覽:657
王朝腳本 發布:2025-01-14 03:26:08 瀏覽:174
dcloud源碼 發布:2025-01-14 03:26:00 瀏覽:300
梅林IPTV腳本 發布:2025-01-14 03:23:46 瀏覽:632
c語言if語句執行順序 發布:2025-01-14 03:22:19 瀏覽:989
浙江大學c語言答案 發布:2025-01-14 03:18:53 瀏覽:665
vivo查看緩存 發布:2025-01-14 03:10:46 瀏覽:618