1. 程式人生 > >python自動化運維學習第二天--資料型別

python自動化運維學習第二天--資料型別

python資料型別


常用的資料型別有數值、字串、布林、元組、列表、字典和集合

數值

數值型別包括整型、長整型、浮點型和複數型

整型取值範圍到-231— +231,型別為int
長整型會在數值後加個"L"或者“l”,型別為long
十六進位制會在數值前加“0x"
python下使用type(a)命令檢視變數的型別,a為變數名
浮點型為帶小數的數值,型別為float
複數型別為complex,數值後有個“j”

字串

字串有三種定義方法:

  • 單引號,a=‘abc’
  • 雙引號,a=“abc”
  • 三引號,a=’’‘abc’’’
    三引號還可以作為註釋來使用

字串型別為str
字串可以通過索引和切片取字元
如:a=“abcdef”
a[3]=“d”
a[1:3]=“bc”

布林

0,1 True, False 是 bool型別
空是False , 其他是True
0是False, 1是True , 其他也歸於 True

元組

字串、列表和元組都是序列
序列的兩個主要特點是索引操作和切片操作

  • 索引操作可以從序列中抓取一個特定專案
  • 切片操作能夠獲取序列的一個切片,即一部分序列
序列的基本操作
  1. len(): 序列的長度 如:len(‘abcdef’) = 6
  2. +: 連線兩個序列 如:‘abc’+‘def’ = ‘abcdef’
  3. *:重複序列元素 如:‘ab’*2 = ‘abab’
  4. in: 判斷元素是否在序列中 如:‘a’ in ‘abc’ = True
  5. max():返回最大值 如: max(‘564897’) = ‘9’
  6. min():返回最小值 如:min(‘564897’) = ‘4’
  7. cmp(x,y):比較兩個序列是否相等 如:cmp(‘adc’,‘adc’) = 0 (0代表相等,-1代表不相等)
    元組和列表相似,都不可變
    元組(tuple)使用小括號表示 如:t=() t=(2,) t=(‘abc’,‘DEF’,234)
    當元組只有一個元素時需要在後邊新增一個',',用來標記為元組,而不是數值或者字串
    元組可以拆分,把元組的元素賦值給變數
    如:t=(1,2,3) a,b,c=t 則 a=1,b=2,c=3

列表

列表(list)是處理一組有序專案的資料結構,既可以在列表中儲存一個序列專案
列表是可變型別資料,使用中括號來表示
如:list1=[] list2=list() list3=[‘a’,1,2]

列表操作
  • 取值 切片和索引
  • 新增 list.append(‘a’)
  • 刪除 del list[2] list.remove(list[3])
  • 修改 list[]=x
  • 查詢 var in list
list的方法
  • list.append(3) 追加元素
  • list.insert(2,‘d’) 插入元素
  • list.sort() 元素排序
  • list.reverse() 元素翻轉
  • list.pop(2) 取出元素(列表中取出索引為2的元素,會刪除該元素)
  • list.remove(‘b’) 刪除元素
  • list.extend(‘d’) 擴充套件元素(可以新增可迭代變數)

字典

字典是python中的唯一對映型別(雜湊表),使用大括號來表示,如 dic={} dic={‘name’:‘mike’,‘age’:23}
字典物件是可變的,但字典的鍵必須使用不可變物件,一個字典中可以使用不同的鍵值。
字典的方法:
dic={‘a’:1,2:‘b’,(3,4):‘c’}

  • keys() 輸出字典中的key 如:dic.keys() 輸出 [‘a’, 2, (3, 4)]
  • values() 輸出字典中的value 如: dic.values() 輸出 [1, ‘b’, ‘c’]
  • items() 列出key-value對 如: dic.items() 輸出 [(‘a’, 1), (2, ‘b’), ((3, 4), ‘c’)]
  • get() 輸出對應key的value值 如: dic.get(‘a’) 輸出 1
  • has_key() 判斷字典中是否有該key 如: dic.has_key(2) 輸出 True
  • copy() 複製字典 如: dic1=dic.copy()
  • pop() 取出該key的value值並刪除該k-y對 如: dic.pop(2) 輸出 ‘b’,dic字典中沒有了(2,‘b’)這個鍵值對

練習1:

將 “123” 轉換成整數

a = "123"
int(a) 

將 “9999999999999999999” 轉換成長整數

a = “9999999999999999999”
int(a)

將 “3.1415926” 轉換成一個浮點數

a =  “3.1415926”
float(a)

將 123 轉換成一個字串

a = 123
str(a)

現有以下字串
字串1:" abc deFGh&ijkl opq mnrst((uvwxyz "
字串2:" ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(
&YZ "
使用字串的各種方法轉換成如下方式
ABCDEFGHIJKLMNOPQRSTUVWXYZzyxwvutsrqponmlkjihgfedcba

a=" abc deFGh&*ijkl opq mnrst((uvwxyz "
b=" ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(*&YZ "
l1=list(b)
l1.sort()
l2=list(a.lower())
l2.sort(reverse=True)
"".join(l)[-26:]+"".join(l2)[:26]

練習2:

現有列表
list1 = [‘XXXX’, ‘b’, 3, ‘c’, ‘&’, ‘a’, 3, ‘3’, 3, ‘aa’, ‘3’, ‘XXXX’]
list2 = [‘e’, ‘f’, ‘g’]
要求對其做以下操作:

  1. 取出 ‘XXXX’ 中間的部分,形成一個新的列表list3
    list3 = list1[1:-1]
  2. 對list3 做一下幾部操作
    1)刪除特殊符號
    list3.remove('&')
    2)統計 3 在list3中出現的次數
    list3.count(3)
    3)用最簡短的程式碼去除list3中 26個字母以外的元素(要求只能對list3操作)
    4)對list3排序
    list3.sort()
    5)在末尾追加’d’,並把list2追加到list3
list3.append('d')
list3.extend(list2)

練習3:

現有兩個變數
a = (‘h’,)
b = (‘h’)
1)將a和b分別追加到上一題的list3中,觀察有什麼區別

list3.append(a)
list3.append(b)
a為元組,b為字串

2)將1生成的list3轉換成元組(擴充套件:自己搜尋方法)
tup = tuple(list3)
3)打印出只有一個元素’h’的元組,在2中生成的元組中的索引
tup.index(('h',))