這兩天看完了python速成教程,從c++轉到python確實有點不是很適應。主要是兩種語言差別還是挺大的,下面我就先說說,我在轉換過程中出現的一些問題。
1、python 的語言風格是指令碼式的,語言側重於解決問題,而不是語言本身,所以可以發現,對於變數(python裡都是物件)的使用上來看,python要靈活很多,不需要像c++那樣需要給定變數型別,可以直接就賦值,python直譯器可以自動識別型別。
2、說到變數(物件),python中有乙個非常重要的特性,那就是」動態型別「
,意思是我們在使用物件的時候,不是直接使用變數本身,而是乙個引用。如:
a = 3
a = "at"
a 可以用作不同資料型別,原理就是當乙個變數沒有引用指向物件時候,python會自動呼叫(destruct),刪除物件記憶體
3、python中很重的是用縮進來確定語句的所屬關係。具體上是這樣的乙個語句與另乙個語句有4個空格差,那麼這個語句就是屬於上乙個語句。
對於初學者來說,用慣了以括號為所屬關係,python的縮排方式是非常容易出錯的
4、語句塊的一定要有冒號
比如 if ():
else:
while():
for i in set :
def () :
5、python中比較重要的資料結構
1》、序列
序列有分為兩種型別,乙個是元組(tuple),還有乙個是表(list),此外字串是乙個定值表。表裡面的元素是可以改變的,但是定值表裡面的元素是不可以改變。
元組:s = (1,2,3,4)
表: s1 = [1,2,3,4]
任何的序列都可以引用其中的元素(item)。
下面的內建函式(built-in function)可用於序列(表,定值表,字串):
# s為乙個序列
len(s) 返回: 序列中包含元素的個數
min(s) 返回: 序列中最小的元素
max(s) 返回: 序列中最大的元素
all(s) 返回: true, 如果所有元素都為true的話
any(s) 返回: true, 如果任一元素為true的話
下面的方法主要起查詢功能,不改變序列本身,可用於表和定值表:
sum(s) 返回:序列中所有元素的和
# x為元素值,i為下標(元素在序列中的位置)
s.count(x) 返回: x在s中出現的次數
s.index(x) 返回: x在s中第一次出現的下標
由於定值表的元素不可變更,下面方法只適用於表:
# l為乙個表, l2為另乙個表
l.extend(l2) 在表l的末尾新增表l2的所有元素
l.sort() 對l中的元素排序
l.reverse() 將l中的元素逆序
l.pop() 返回:表l的最後乙個元素,並在表l中刪除該元素
del l[i] 刪除該元素
(以上這些方法都是在原來的表的上進行操作,會對原來的表產生影響,而不是返回乙個新錶。)
下面是一些用於字串的方法。儘管字串是定值表的特殊的一種,但字串(string)類有一些方法是改變字串的。這些方法的本質不是對原有字串進行操作,而是刪除原有字串,再建立乙個新的字串,所以並不與定值表的特點相矛盾。
#str為乙個字串,sub為str的乙個子字串。s為乙個序列,它的元素都是字串。width為乙個整數,用於說明新生成字串的寬度。
str.count(sub) 返回:sub在str中出現的次數
str.find(sub) 返回:從左開始,查詢sub在str中第一次出現的位置。如果str中不包含sub,返回 -1
str.index(sub) 返回:從左開始,查詢sub在str中第一次出現的位置。如果str中不包含sub,舉出錯誤
str.rfind(sub) 返回:從右開始,查詢sub在str中第一次出現的位置。如果str中不包含sub,返回 -1
str.rindex(sub) 返回:從右開始,查詢sub在str中第一次出現的位置。如果str中不包含sub,舉出錯誤
str.isalnum() 返回:true, 如果所有的字元都是字母或數字
str.isalpha() 返回:true,如果所有的字元都是字母
str.isdigit() 返回:true,如果所有的字元都是數字
str.istitle() 返回:true,如果所有的詞的首字母都是大寫
str.isspace() 返回:true,如果所有的字元都是空格
str.islower() 返回:true,如果所有的字元都是小寫字母
str.isupper() 返回:true,如果所有的字元都是大寫字母
str.split([sep, [max]]) 返回:從左開始,以空格為分割符(separator),將str分割為多個子字串,總共分割max次。將所得的子字串放在乙個表中返回。可以str.split(',')的方式使用逗號或者其它分割符
str.rsplit([sep, [max]]) 返回:從右開始,以空格為分割符(separator),將str分割為多個子字串,總共分割max次。將所得的子字串放在乙個表中返回。可以str.rsplit(',')的方式使用逗號或者其它分割符
str.join(s) 返回:將s中的元素,以str為分割符,合併成為乙個字串。
str.strip([sub]) 返回:去掉字串開頭和結尾的空格。也可以提供引數sub,去掉位於字串開頭和結尾的sub
str.replace(sub, new_sub) 返回:用乙個新的字串new_sub替換str中的sub
str.capitalize() 返回:將str第乙個字母大寫
str.lower() 返回:將str全部字母改為小寫
str.upper() 返回:將str全部字母改為大寫
str.swapcase() 返回:將str大寫字母改為小寫,小寫改為大寫
str.title() 返回:將str的每個詞(以空格分隔)的首字母大寫
str.center(width) 返回:長度為width的字串,將原字串放入該字串中心,其它空餘位置為空格。
str.ljust(width) 返回:長度為width的字串,將原字串左對齊放入該字串,其它空餘位置為空格。
str.rjust(width) 返回:長度為width的字串,將原字串右對齊放入該字串,其它空餘位置為空格。
python學習日記(一)
windows下python2配置完成,在power shell下學習python.計算機基礎較為薄弱,所以對於power shell不是很了解,因為對python學習沒有太大影響,所以暫時不作深入研究,大概理解為類似於linux系統中,可以通過命令列來控制電腦程式的環境。學習在terminal下如...
Python學習日記一
人生很迷茫吶,找不到自己有什麼價值,只能先挖掘自己的潛力了,聽朋友說沒事寫寫部落格什麼的,能夠加深記憶,可以更好的總結所學知識。不妨試一試?沒事幹總不能閒著吧,遊戲又沒人一起玩,逛街又不會逛街,看電影,追劇又容易睡覺。一 了解python 1 python是一門解釋型語言。解釋型語言指的是源 不是直...
python學習日記(一)
第一次用csdn來寫部落格,以後這就是我的常駐站了哈哈哈哈,這幾天在學習python,看的是小甲魚的網課,感覺講的挺詳細的,每次學完要進行部落格記載,第二天重溫學過的知識。好了不說廢話了,開始記載第一天的學習內容。1.這次學的是python3,相對於python2做了很大的改動,很多地方也與2不相容...