C語言老司機學Python (二)

來源:互聯網
上載者:User

標籤:字典   輸出   教程   bool   shift   value   菜鳥   貴的   設計思想   

 

標準資料類型:

共6種:Number(數字),String(字串),List(列表),Tuple(元組),Sets(集合),Dictionary(字典)

 

本次學習主要是和資料類型混個臉熟,知道每樣東西幹什麼的,有什麼特點。具體用法和資料類型的方法,查工具書就行。

排好隊,一個一個來。

 

數字:

比C簡單的多,數字只有4種類型,分別是 int, float, bool, complex,納尼?還有複數。

int就是長整型,沒有c裡面的短整型一說。看到了吧,隨著電腦硬體的強大,過去無比寶貴的記憶體資源已經不稀罕了,怎麼對程式員方便友好怎麼來,這也是現代語言的一個基本設計思想。

 

用type()和isinstance()都可以得知某個變數所指向的對象的類型。區別是,type()比較死腦筋,但是isinstance()會認為子類是一種父類類型。即:isinstance(子類型) == 父類型 會返回True

 

既然提到了True和False,就說一下,Python3裡,True和False是關鍵字,值分別是1和0。你可以試著print(True+1),結果是2。

 

數值運算子方面,大部分和c很像,少部分的不一樣,確切的說,是更便利了。比如2/4的結果是0.5,Python會自動按浮點數計算。這樣寫在c裡面就等於0了,要想得到0.5還得強制轉換類型。那麼,如果就是要取整怎麼辦,可以寫成 2//4,結果是0。 //作為運算子,也決定了不能像c裡面一樣用它做單行注釋。

乘方是 a**b,不需要像c一樣調用另外的函數庫。

 

 

字串:

字串用單引號(‘)或雙引號(")括起來。我喜歡單引號,因為不用按shift,便捷高效。

按照老規矩, \表示轉義,如果在字串前加大寫或者小寫R,就不再轉義。

字串串連用+號,複製字串N次用*號。

字串截取用 變數[下標1,下標2]的形式,下標索引從0開始,末尾位置記為-1,是個左閉右開的區間,[ )。

樣本速查:

 

str = ‘Runoob‘

print (str) # 輸出字串 Runoob
print (str[0:-1]) # 輸出第一個到倒數第二個的所有字元 Runoo
print (str[0]) # 輸出字串第一個字元 R
print (str[2:5]) # 輸出從第三個開始到第五個的字元 noo
print (str[2:]) # 輸出從第三個開始的後的所有字元 noob
print (str * 2) # 輸出字串兩次 RunoobRunoob
print (str + "TEST") # 連接字串 RunoobTEST

 

不能給字串中的單個字元賦值, str[1]=‘a‘會出錯。

另外,Python沒有c語言的字元類型char。

完全可以理解。之前說了,什麼時代了,還省啥記憶體啊,怎麼方便怎麼來。

 

 

列表:

列表的定義是 listA = [x, xx,xxx] ,方括弧包起,逗號隔開,乍看起來像c語言裡的數組,但其實不一樣。從append()、pop()等方法來看,又像是java裡面的數組。我姑且認為Python裡面的列表是一種混合動力加強版的數組吧,可操縱性簡直逆天。看例子:

list = [ ‘abcd‘, 786 , 2.23, ‘runoob‘, 70.2 ]
tinylist = [123, ‘runoob‘]

print (list) # 輸出完整列表 [‘abcd‘, 786, 2.23, ‘runoob‘, 70.2]
print (list[0]) # 輸出資料行表第一個元素 abcd
print (list[1:3]) # 從第二個開始輸出到第三個元素 [786, 2.23]
print (list[2:]) # 輸出從第三個元素開始的所有元素 [2.23, ‘runoob‘, 70.2]
print (tinylist * 2) # 輸出兩次列表 [123, ‘runoob‘, 123, ‘runoob‘]
print (list + tinylist) # 串連列表 [‘abcd‘, 786, 2.23, ‘runoob‘, 70.2, 123, ‘runoob‘]


和字串不能改變其中的元素不同,列表裡面的可以改,而且簡直是隨便改,不要太方便。

a = [9, 2, 13, 14, 15, 6]
a[2:5] = [] # 將對應的元素值設定為 []
print(a) # 結果是 [9, 2, 6]

 

 

元組(Tuple)

此物老夫從未見過。特地去搜尋了一下,Tuple這個詞似乎是Python特有的,不像list之類的詞在生活中還有別的含義。只好認真看教程了。

 

教程裡解釋:

元組寫在小括弧(())裡,元素之間用逗號隔開,只有一個元素時,唯一的元素後面要加逗號。

元組(tuple)與列表類似,不同之處在於元組的元素不能修改。

 

類似列表?行了,翻頁。

 

集合:

存放無序不重複元素的序列,用於進行成員關係測試和重複資料刪除元素。

重點:1)無序;2)不重複。

 

用{}或者 set() 函數建立集合。 setA = {‘hatemath‘} 或者 setA = set(‘hatemath‘)

注意:建立一個空集合必須用 set() 而不是 { },因為 { } 是用來建立一個空字典。

常見集合運算有:並集 |, 差集 - ,交集&, 不同時存在的元素集 ^ (按我理解就是並集減去交集)

 

例子:

a = set(‘hate‘)
b = set(‘math‘)

print(a | b)      # {‘t‘, ‘m‘, ‘a‘, ‘e‘, ‘h‘}
print(a - b)      # {‘e‘}
print(a & b)      # {‘a‘, ‘t‘, ‘h‘}

print(a ^ b)      # {‘m‘, ‘e‘}
print( (a | b) - (a & b))      # {‘e‘, ‘m‘} 果然就是我理解的意思。

 

集合,很好很強大。再見。

 

肚子餓了。。。15年前初學編程的時候,經常去計算中心上機,為了debug經常錯過飯點,而且把零錢用光了。下機後跑去跟老闆賒賬吃飯(此處應該有個笑哭的表情)。過了這麼多年還是喜歡編程,看來是真愛。

也有可能是因為我沒把它當做謀生的手段。

 

字典:

字典是無序對象的集合,其中的元素時通過鍵(key)來存取的,取出來的叫值(value)。眼熟!java裡面有這個玩意。我發現學這些進階特性的時候,跟c基本沒啥關係了。。。。

既然是熟人,就直接看例子吧。

 

dict = {}
dict[‘one‘] = "1 - 菜鳥教程"
dict[2] = "2 - 菜鳥工具"

tinydict = {‘name‘: ‘runoob‘,‘code‘:1, ‘site‘: ‘www.runoob.com‘}

print (dict[‘one‘]) # 輸出鍵為 ‘one‘ 的值        1 - 菜鳥教程
print (dict[2]) # 輸出鍵為 2 的值             2 - 菜鳥工具
print (tinydict) # 輸出完整的字典        {‘name‘: ‘runoob‘, ‘site‘: ‘www.runoob.com‘, ‘code‘: 1}
print (tinydict.keys()) # 輸出所有鍵     dict_keys([‘name‘, ‘site‘, ‘code‘])
print (tinydict.values()) # 輸出所有值  dict_values([‘runoob‘, ‘www.runoob.com‘, 1])

 

C語言老司機學Python (二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.