php 以-截取剩余的字符串_10分钟从PHP到Python
微信公眾號:PHP在線
?1 用途
? 2 語法
? 3 字符串
? 4 注釋
? 5 數組
? 6 類和對象
PHP和Python都是解釋性語言,用過PHP一般再學Python就比較容易,畢竟很多概念都一樣。
當然,反過來也一樣,會Python再入手PHP,也很簡答。
不過如果要使用框架,那就得稍微多用些力氣。
這里我們以語言本身為主,就暫不討論框架。
1 用途
我是先用PHP,再學Python,所以對他們的用途也算清楚。
PHP以WEB服務起家,而且多年來都是以這個為重點,所以PHP在WEB方面是個強項。
Linux + Nginx/Aapche + MySQL + PHP環境(俗稱LNMP/LAMP)以部署簡單、性能高效著稱,是各個服務器廠商的必裝套件。
可以這樣說,PHP是世界上最好的WEB后端語言。
Python在WEB上比PHP起步晚,這方面略遜一籌。
不過Python簡單易用,所以用途廣泛,運維、計算科學、人工智能、WEB幾乎各個計算機領域都有它的存在。
特別是這幾年人工智能的崛起,Python更是如日沖天。
趁著這股熱勁,我們也花個10分鐘,把它學到手吧。
2 語法
我們以具體的程序來展示PHP和Python之間的區別,這比直接用文字直觀些。
起步最佳程序是hello world,我們就從hello Word程序開始。
如下,上邊是helloword.php,下邊是helloworld.py。
<?php function?helloWorld(){????$a?=?'Hello?World';echo?$a;
}
helloWorld();def?hello_world():
????a?=?'Hello?World'
????print(a)
hello_world()
用 php helloworld.php和 python helloworld.py分別執行這兩個文件,打印結果是一樣的。
PHP文件必須以<?php 開頭,Python不需要PHP用function聲明函數,Python用defPHP語句必須以分號;結尾,Python不需要以;分號結尾,當然用;結尾也可以,一般在一行內有多個語句的時候用,但是不建議這樣寫。
PHP用大括號{}表示一個程序塊,Python用4個空格的縮進表示一個程序塊
PHP變量以$符號開頭,Python變量不需要$符號開頭
(非強制)PHP依據PSR格式規范,方法名和變量名以小駝峰命名,Python建議函數名用小寫,并以下劃線分割,函數內變量用小寫,函數外變量大小寫均可。
3 字符串
字符串是所有程序中非常重要的特性,PHP和Python處理字符串的方式相差很大。
PHP以函數處理字符串,Python中字符串是一個對象。
3.1 字符串聲明和使用
mb_internal_encoding("UTF-8");$a?=?'誰不會休息,誰就不會工作。';
$b?=?'--列寧';
echo?$a?.?$b;
$c?=?'?--杜牧';
$d?=?"??清明時節雨紛紛,
????????路上行人欲斷魂。
????????借問酒家何處有?
????????牧童遙指杏花村。$c";
echo?$d;
#?coding:?utf-8
a?=?'誰不會休息,誰就不會工作。'
b?=?'--列寧'
print(a?+?b)
c?=?'?--杜牧'
d?=?"""?清明時節雨紛紛,
????????路上行人欲斷魂。
????????借問酒家何處有?
????????牧童遙指杏花村。%s"""?%?c
print(d)
????PHP文件內字符串一般以文件編碼格式為準,Python一般需要在文件頭聲明,如上的?#?coding:?utf-8,所有字符串以utf-8格式編碼。PHP也可以用mb_internal_encoding("UTF-8");方法實現同樣效果。
????PHP中單行和多行字符串用單引號和雙引號都可以,Python中單行字符串用單引號或雙引號,多行字符串用三個雙引號括住。
????PHP中雙引號內可以引用變量,Python中不可以,須用%或format()方法格式化。
????字符串拼接PHP用點號.,Python用加號+。PHP中如果用點號拼接字符串和整型,整型自動轉換為字符串類型再拼接,Python中則不能拼接字符串和整型,必須強制將整型轉換為字符串類型后再用+拼接,否則程序出錯。
3.2 字符串處理
$a?=?'PHP?to?Python';echo?$a;???????????????????????????#?輸出完整字符串
echo?$a{1};????????????????????????#?輸出:H
echo?substr($a,?4,?2);?????????????#?輸出:to
echo?substr($a,?4);????????????????#?輸出:to?Python
echo?substr($a,?0,?6);?????????????#?輸出:PHP?to
echo?str_repeat($a,?2);????????????#?輸出:PHP?to?PythonPHP?to?Python
echo?strpos($a,?'PHP')?!==?false;??#?輸出:true
echo?strpos($a,?'Java')?===?false;?#?輸出:true
a?=?'PHP?to?Python'
print(a)????????????????#?輸出完整字符串
print(a[1])?????????????#?輸出:H,通過索引獲取字符
print(a[4:6])???????????#?輸出:to,截取字符串
print(a[4:])????????????#?輸出:to?Python,截取字符串
print(a[:6])????????????#?輸出:PHP?to,截取字符串
print(a*2)??????????????#?輸出:PHP?to?PythonPHP?to?Python,重復字符串
print('PHP'?in?a)???????#?輸出:true,判斷字符串包含
print('Java'?not?in?a)??#?輸出:true,判斷字符串不包含
說明已經寫在注釋上了。
對于截取字符串,PHP的函數是offset加length,Python是start加end,但不包括end項。
4 注釋
還是以上面的程序為例,我們加上注釋。
<?php /**?*?這是PHP的多行注釋
?*/function?helloWorld(){
????$a?=?'Hello?World';//?這是PHP的單行注釋echo?$a;
}#?這是PHP的另外一種單行注釋
helloWorld();def?hello_world():
????"""
????這是Python的多行注釋,函數注釋寫在函數體內
????:return:
????"""
????a?=?'Hello?World'
????#?這是Python的單行注釋
????print(a)
#?同樣是單行注釋
hello_world()
具體區別請看代碼。
5 數組
PHP中的序列類型只有數組。
5.1 元組、列表和字典
Python中分為3種:元組(tuple)、列表(list)和字典(dictionary)。
a?=?(1,?2,?3,?'hello')b?=?[1,?2,?3,?'hello']
c?=?{'name':?'gary',?'url':?'www.awaimai.com'}
第一個是元組,元組是不能更改的類型,只能查詢,不能增改刪元素。
a[3]???????????????#?查找第4個元素,返回hello字符串為了和運算符中的括號區別,單個元組也需要在元素后面加一個逗號,如:a = (1, )。
第二行是列表,類似PHP中的數字索引數組,可以增查改刪元素如:
b.append(10)???????#?在列表最后增加元素10,列表變為:[1,?2,?3,?'hello',?10]b[0]???????????????#?查找第1個元素,返回數字1
b[2]?=?10??????????#?修改第3個元素為10,列表變為:[1,?2,?10,?'hello']
b.pop()????????????#?刪除最后一個元素并返回它的值,用pop(0)可以刪除第1個元素
第三行是字典,類似PHP中的字符串下標數組,可以增查改刪元素:
c['country']?=?'china'???#?增加一個減值對應元素c['url']?????????????????#?根據鍵名查找值,返回字符串?www.awaimai.com
c['url']?=?'awaimai.com'?#?修改值
c.pop('name')????????????#?根據鍵名刪除元素
可以看到,元組、列表、字典的查詢方式都是用中括號:[]
5.2 類型轉換
實際使用時,我們還可以轉換類型:
list(a)????????????#?元組轉換成列表,可以,返回:[1,?2,?3,?'hello']dict(a)????????????#?元組轉換成字典,不可以,出錯
tuple(b)???????????#?列表轉換成元組,可以,返回:(1,?2,?3,?'hello')
dict(b)????????????#?列表轉換成字典,不可以,出錯
tuple(c)???????????#?字典轉換成元組,可以,返回:('url',?'name')
list(c)????????????#?字典轉換成列表,可以,返回:['url',?'name'],等同于c.keys()
???????????????????#?要返回值列表,請用c.values()
6 類和對象
class?Person:????#?類屬性,所有方法都可以調用
????age?=?100
????#?構造函數
????#?同時定義一個name的類屬性,并賦值,所有方法都可以調用
????def?__init__(self,?name):
????????self.name?=?name
????#?self代表類示例,相當與PHP中的$this
????def?get_name(self):
????????return?self.name
????#?在定義類方法時,必須手動在第一個參數傳入類實例,
????#?名稱可以是self,如上一個方法,也可以是別的,如下,
????#?但是一般建議用self
????def?get_age(this):
????????return?this.age
class?User(Person):
????#?雙下劃線開頭,private屬性,僅類內部可以調用
????__country?=?'China'
????#?單下劃線開頭,protected屬性
????_address?=?'My?City?No?1'
????"""
????User類繼承自Person類
????用?super().__init__()?方式調用父類構造函數
????"""
????def?__init__(self,?name,?url):
????????super().__init__(name)
????????self.url?=?url
????def?get_url(self):
????????return?self.url
????def?get_country(self):
????????return?self.__country
#?實例化一個類,并調用其屬性和方法
user?=?User('gary',?'www.awiamai.com')
print(user.name,?user.url,?user.age)
print(user.get_name(),?user.get_url(),?user.get_age(),?user.get_country())
總結
以上是生活随笔為你收集整理的php 以-截取剩余的字符串_10分钟从PHP到Python的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 按某列获取几行_机器学习获取数据难?别忘
- 下一篇: 闪灯什么意思_开车闪一下闪二下闪三下大灯