Python3.3 學習筆記3 - 數據類型和運算


基本數據類型:

  • bool,布爾類型:True,False

 

  • 數字:如number=8.
    • 進制:
      • 二進制:0b或者0B,比如0b11 -> 十進制3
      • 八進制:0o或者0O,比如0o11 -> 十進制9
      • 十進制:
      • 十六進制:0x或者0X,比如ox11 -> 十進制17
    • 簡單的運算符:
      • +,-,*,/,//(求商),%(取余),**(冪運算)  #沒有++,--運算符
      • 位運算符<<,>>,|(按位或),&(按位與)
      • 三元運算符:A=X?Y:Z  (等同於:A=Y if X else Z)
    • 浮點數:如2.5,12.3E-3即0.0123
    • 復數:虛部使用j表示,例 2+3j
    • 相關模塊:math,random

 

  • bytes,字節: 而一系列不可改變的介於0-255之間的數字被稱為bytes對象。每一個byte可以是一個ASCII字符或者十六進制數從\x00到\xff。
    • 不能對bytes對象直接復制,可以將bytes轉換為一個bytearray對象,bytearray對象是可以被修改的。如barr = batearray(bytes_object)
    • bytes對象和string不可以混在一起:
      • print(by+str) 導致錯誤:TypeError: can't concat bytes to str
      • bytes對象有一個decode()方法,向該方法傳遞一個字符編碼參數,該方法會返回使用該種編碼解碼后的字符串。同樣的,string有一個encode()方法,完成反向的工作。
        • btest = b'abcde'
        • strtest = 'abc'
        • btest.decode('utf-8')    #結果'abcde'
        • strtest.encode('utf-8')    #結果b'abc'
    • 例:
      • btest = b'abcde'
      • len(btest)     #結果5
      • btest += b'f'    #結果b'abcdef'
      • btest[0]   #結果97

 

  • string,字符串(由一系列不可改變的Unicode字符組成):如strtest='abcde'。(不能使用strtest[0] = 'a'改變字符串的內容)
    • 字符串提取 
      • print (strtest[0]),輸出a
      • print (strtest[-1]),輸出e
      • 范圍引用,基本樣式[下限:上限:步長]
        • print (strtest[:3])      #輸出abc 
        • print (strtest[1:-1])   #輸出bcd
        • print (strtest[::2])     #輸出ace
      • print (strtest + strtest) = print (strtest*2),輸出abcdeabcde
    •  字符串包含判斷:in, not in
      • "He" in str
      • “she” not in str
    • 字符串的方法
      • S.find(substring, [start [,end]]) #可指范圍查找子串,返回索引值,否則返回-1
      • S.rfind(substring,[start [,end]]) #反向查找
      • S.index(substring,[start [,end]]) #同find,只是找不到產生ValueError異常
      • S.rindex(substring,[start [,end]])#同上反向查找
      • S.count(substring,[start [,end]]) #返回找到子串的個數
      • S.lowercase()
      • S.capitalize()      #首字母大寫
      • S.lower()           #轉小寫
      • S.upper()           #轉大寫
      • S.swapcase()        #大小寫互換
      • S.split(str, ' ')   #將string轉list,以空格切分
      • S.join(list, ' ')   #將list轉string,以空格連接
      • S.format():接受位置參數和關鍵字參數. 例:"I like {0} and {{rice}}.".format("eggs.") -> "I like eggs and {rice}."
    • 處理字符串的內置函數
      • len(str)                #串長度
      • cmp("my friend", str)   #字符串比較。第一個大,返回1
      • max('abcxyz')           #尋找字符串中最大的字符
      • min('abcxyz')           #尋找字符串中最小的字符
    • string的轉換
      • oat(str) #變成浮點數,float("1e-1")  結果為0.1
      • int(str)        #變成整型,  int("12")  結果為12
      • int(str,base)   #變成base進制整型數,int("11",2) 結果為2
      • long(str)       #變成長整型,
      • long(str,base)  #變成base進制長整型,
    • 字符串的格式化(注意其轉義字符,大多如C語言的,略)
    • str_format % (參數列表) #參數列表是以tuple的形式定義的,即不可運行中改變
    • >>>print ("%s's height is %dcm" % ("My brother", 180))
    • #結果顯示為 My brother's height is 180cm
    • 單引號和雙引號的字符串的對比
      • "Hello, world" 與 'Hello, world'相同
      • "Let's go!"(正常字符串) 與 'Let's go!'(非正常字符串 -> 使用轉義字符修改為正常字符串:'Let\'s go!')
      • print ('ab\ncd') :輸出分別為'ab'和'cd'的兩行;而print (r'ab\ncd')直接輸出無轉移的字符串'ab\ncd'

 

  •  complex:虛數
    • 例:8.3+3j

 

  • 列表 List,如[1,2,3,4]。
      • 0為第一個元素,-1為最后一個元素(-2為倒數第二)
      • len(list):取出list的長度
      • type(variable):顯示變量的類型
      • 新建list對象:newlist = list()
      • 切片:mylist[start:end:step],其中 start 和 end 分別是開始和結束索引,step 是在切片時要跨過的條目數量
      • 刪除一段數據:L[1:3]=[]
    • 列表的方法
      • L.append(var):追加元素
      • L.clear():刪除所有元素
      • L.copy:
      • L.count(var):該元素在列表中出現的個數
      • L.extend(list):追加list,即合並list到L上
      • L.index(var):該元素的位置,無則拋異常 
      • L.insert(index,var):插入元素
      • L.pop(var):返回最后一個元素,並從list中刪除之
      • L.remove(var):刪除第一次出現的該元素
      • L.reverse():倒序
      • L.sort():排序
    • list 操作符:,+,*,關鍵字del
      • a[1:]:片段操作符,用於子list的提取
      • [1,2]+[3,4] :為[1,2,3,4]。同extend()
      • [2]*4:為[2,2,2,2]
      • del L[1]:刪除指定下標的元素
      • del L[1:3]:刪除指定下標范圍的元素
    • list的復制:
      • L1 = L:L1為L的別名,用C來說就是指針地址相同,對L1操作即對L操作。函數參數就是這樣傳遞的
      • L1 = L[:]:L1為L的克隆,即另一個拷貝。

 

  • 字典
    • dict = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'}
      每一個元素是pair,包含key、value兩部分。key是Integer或string類型,value 是任意類型。鍵是唯一的,字典只認最后一個賦的鍵值。
    • dictionary的方法
      • D.clear():清空字典,同del dict
      • D.copy():拷貝字典
      • D.fromkeys():
      • D.get(key, 0):同dict[key],多了個沒有則返回缺省值,0。[]沒有則拋異常
      • D.items():
      • D.keys():返回字典鍵的列表
      • D.pop():
      • D.popitem():得到一個pair,並從字典中刪除它。已空則拋異常
      • D.setdefault():
      • D.update(dict2):增加合並字典
      • D.values():
    • dictionary的復制
      dict1 = dict:別名
      dict2=dict.copy():克隆,即另一個拷貝

  

  • tuple:元組(即常量數組)
    • tuple = ('a', 'b', 'c', 'd', 'e')
    • 可以用list的 [],:操作符提取元素。就是不能直接修改元素。
    • 元組的方法:
      • T.count(val):計算值為val變量的個數
      • T.index(val,[begin,[end]]):返回第一個值為val的變量編號

 

  • list 和 tuple 的相互轉化:tuple(ls),list(ls)

 

基本語句:

  •  賦值語句:
    • 普通復制:a=1
    • 元組復制:a,b=1,'x'  #a=1, b='x'
    • 列表復制:[a,b]=[1,'x']  #a=1, b='x'
    • 順序復制:a,b,c,d='HTML'  #a='H', b='T', c='M', d='L'(只針對單個字符)
    • 多目標復制:a=b=c=d=1  #a=1,b=1,c=1,d=1
  • 刪除變量:var = None 或者 del [variable]

 

參考文獻:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM