
php與Python之間有何區(qū)別?
php和Python哪個(gè)好?php與Python的區(qū)別有哪些?很多朋友都會(huì)來(lái)問(wèn)這么一個(gè)問(wèn)題,那么今天php中文網(wǎng)給大家來(lái)說(shuō)一說(shuō)關(guān)于php與Python的區(qū)別比較,相信你看了這篇文章應(yīng)該會(huì)有所判斷。
首先我們來(lái)看一看關(guān)于php與Python應(yīng)用的區(qū)別:
php是一種通用開(kāi)源腳本語(yǔ)言。語(yǔ)法吸收了C語(yǔ)言、Java和Perl的特點(diǎn),利于學(xué)習(xí),使用廣泛,主要適用于Web開(kāi)發(fā)領(lǐng)域。
python主要是做系統(tǒng)運(yùn)維、監(jiān)控、爬蟲(chóng)、隊(duì)列任務(wù)等等,所以,脫離Web開(kāi)發(fā)領(lǐng)域Python比較好用一些。
其次我們看一看關(guān)于php與Python語(yǔ)法上面的區(qū)別:
注意:python是強(qiáng)類型語(yǔ)言,php是弱類型語(yǔ)言
1、php與Python的輸出語(yǔ)法的區(qū)別:
php: echo 可以輸出多個(gè)變量;print ()只輸出一個(gè)變量,且成功返回值為1,失敗為0;print_r() 只輸出數(shù)組;die() 先輸出,后關(guān)機(jī);printf() 格式化輸出字符串;var_dump()可以判斷一個(gè)變量的類型與長(zhǎng)度,并輸出變量的數(shù)。
Python: print 默認(rèn)換行,不換行要加逗號(hào)。
2、php與Python變量的區(qū)別:
php是以“$”標(biāo)識(shí)符開(kāi)始;例如:$a = 0的方式來(lái)定義的。
Python都是直接來(lái)定義的;例如:a=0。
3、php與Python數(shù)組之間的區(qū)別:
php數(shù)組相對(duì)簡(jiǎn)單統(tǒng)一,即array;包括了普通數(shù)組和關(guān)聯(lián)數(shù)組兩部分。
// 定義
$arr = array('Michael', 'Bob', 'Tracy');
// 調(diào)用方式
echo $arr[0]
// Michael
// 數(shù)組追加
array_push($arr, "Adam");
// array('Michael', 'Bob', 'Tracy','Adam');
python數(shù)組可分為列表[],元組(),字典{},集合([]),格式多變,用法也比較靈活。
list(鏈表):有序的項(xiàng)目,通過(guò)索引進(jìn)行查找,使用方括號(hào)“[]”;
test_list = [1, 2, 3, 4, 'Oh']
tuple(元組):元組將多樣的對(duì)象集合到一起,不能修改,通過(guò)索引進(jìn)行查找,使用括號(hào)”()”;
test_tuple = (1, 2, 'Hello', (4, 5))
dict(字典):字典是一組鍵(key)和值(value)的組合,通過(guò)鍵(key)進(jìn)行查找,沒(méi)有順序, 使用大括號(hào)”{}”;
test_dict = {'Wang' : 1, 'Hu' : 2, 'Liu' : 4}
set(集合):無(wú)序,元素只出現(xiàn)一次, 自動(dòng)去重,使用”set([])”
test_set = set(['Wang', 'Hu', 'Liu', 4, 'Wang'])
4、php與Python之間條件判斷語(yǔ)句與循環(huán)語(yǔ)句的區(qū)別:
php與Python之間條件判斷語(yǔ)句的區(qū)別:
例:php的判斷語(yǔ)句為:
if($age = '5'){
echo "小孩";
}else if($age < 25 and $age > 14){
echo "青少年";
}else{
echo "空";
}
Python的判斷語(yǔ)句為:
sex = ''
if sex == 'man':
print('男')
elif sex == 'women':
print('女')
else:
print('空')
php與Python之間循環(huán)語(yǔ)句的區(qū)別:
例:php的循環(huán)語(yǔ)句為:
$arr = array('a' => '蘋(píng)果', 'b' =>'香蕉', 'c' => '梨子', 'd' => '水果');
foreach ($arr as $key => $value){
echo "數(shù)組key:".$key."<br>";
echo "key對(duì)應(yīng)的value:".$value."<br>";
}
Python的循環(huán)語(yǔ)句為:
arr = {'a': '蘋(píng)果', 'b': '香蕉', 'c': '梨子', 'd': '水果'}
# 第一種
for (key,value) in arr.items():
print("這是key:" + key)
print("這是key的value:" + value)
# 第二種
for key in arr:
print("這是key:" + key)
print("這是key的value:" + arr[key])
5、php與Python函數(shù)語(yǔ)法的區(qū)別:
php函數(shù)語(yǔ)法:
function calc($number1, $number2 = 10)
{
return $number1 + $number2;
}
print(calc(7));
Python函數(shù)語(yǔ)法:
def calc(number1, number2 = 10):
sum = number1 + number2
return sum
print(calc(7))
最后我們來(lái)看一看php與Python性能的比較:
php的測(cè)試:
<?php
function fibonacci($i){
if($i<2) return $i;
return fibonacci($i-2) + fibonacci($i-1);
}
echo fibonacci(34);
php5.6測(cè)試如下:
qiangjian@localhost:/works/learnCPP$ php -v && time php fib.php
PHP 5.6.28 (cli) (built: Dec 6 2016 12:38:54)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
5702887
real 0m2.307s
user 0m2.278s
sys 0m0.017s
php7測(cè)試如下:
qiangjian@localhost:/works/learnCPP$ php -v && time php fib.php
PHP 7.1.2 (cli) (built: Feb 17 2017 10:52:17) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
5702887
real 0m0.815s
user 0m0.780s
sys 0m0.015s
Python的測(cè)試:
def fibonacci(i):
if i<2:
return i
return fibonacci(i-2) + fibonacci(i-1)
print(fibonacci(34))
python2.7測(cè)試如下:
qiangjian@localhost:/works/learnCPP$ python2 -V && time python2 ./fib.py
Python 2.7.13
5702887
real 0m2.651s
user 0m2.594s
sys 0m0.027s
python3.5測(cè)試如下:
qiangjian@localhost:/works/learnCPP$ python3 -V && time python3 ./fib.py
Python 3.5.1
5702887
real 0m3.110s
user 0m2.982s
sys 0m0.026s
從上面的測(cè)試可以看出來(lái)python越升級(jí)越慢, 而且很多語(yǔ)法不兼容,平時(shí)寫(xiě)寫(xiě)算法和小程序可以很好;php中php7和5的速度差別很大,感覺(jué)就不像是一個(gè)程序,而且進(jìn)步提升很大。
當(dāng)然,上面所有的內(nèi)容,都只是對(duì)php與python之間簡(jiǎn)單的比較,還有很多都沒(méi)有寫(xiě)出來(lái),但可以看出來(lái)的是php與python各有各的優(yōu)缺點(diǎn)。
北京星誠(chéng)視野網(wǎng)絡(luò)科技有限公司 © 2008-2022 京ICP備09003513-1號(hào) 技術(shù)支持:北京網(wǎng)站建設(shè)公司 北京APP開(kāi)發(fā)