#!/usr/bin/env python
# -*- encoding:utf-8 -*-
# author:Administrator
# make_time:2018/6/9
‘‘‘
數據類型:
不可變數據類型:int、str、bool、tuple、frozenset
可變數據類型:list、dict、set
公共方法:count()、len()、del、copy()
len(所有都有)
count(數字、字典、集合沒有此方法)
index(數字、字典、集合沒有此方法)
可變數據類型都有copy()
整數、字符串、列表、元組、布爾可以相加(字典、集合不可相加)
整數: int
# 不可變數據類型
bit_length() 查看數字在內存中最少占幾位
數學運算:+ - * / //(整除) % **(冪)
比較運算: >,=,<=,==,!=
賦值運算:=,+=,*=,/=,-=,%=,,//=,**=
邏輯運算:not or and
從左到右
優先級:() not and or
1(非零整數):true 0:false
1 or 2 左邊非零取左邊,0 取右邊,and相反
身份運算:is is not 判斷兩個對象是不是為同一個內存地址
成員運算:in not in 判斷字符/元素是否在目標中,str,list,dict,set,tuple
位運算:
& 與運算 1 1 得1 , 1 0 得0 ,0 0 得 0
| 或運算 1 1 得1,1 0 得1 ,0 0 得0
方法:
int.bit_lens() 查看數字在內存中占的字節數
布爾值:True False
#不可變數據類型、True為1,False為0 (0,None,False,[],(),{},set(),都為False)
字符串: str
# 不可變數據類型、有序、可切片,可迭代循環,交互默認輸入為字符串
# 以單或雙引號表示 :‘元素‘
# 不可增刪改
切片:從左到右字符串中的索引從0開始
[start:end:step] 顧頭不顧尾
[1:3] 字符串中索引1到2的字符
[1:-1] -1 表示最后一個字符
操作方法:
del str 刪除字符串
len(str) 統計字符串長度,內置方法
str.count(元素) 統計字符串中的元素出現的個數
str.center(寬度,"填充物可不寫") 指定長度居中顯示,默認填充物為空格
str.title() 非字母隔開得首字母大寫
china country --> China Country
* str.capitalize() 首字母大寫,其他分開的單詞首字母小寫
china_Country --> China_country
str.swapcase() --->字符串大小寫互轉
** str.upper() ----> 全部變成大寫
str.isupper() 是否全部為大寫
** str.lower() -----> 全部變成小寫
str.islower() 是否全部為小寫
str.encoding("將字符串以何種編碼集進行編碼")
** str.startswith("元素") 判斷字符串是否以什么開頭,返回bool值
str.endswith("元素")
*** str.find("元素",star,end) 找元素的索引,如果元素不存在,返回-1
*** str.index("元素",star,end) 找元素的索引,如果元素不存在,報錯
*** str.strip("元素可空") 去掉兩端的\n,\t,\s等空白字符,也可指定字符從兩端刪
str.lstrip()
str.rstrip()
***** str.split("分割符可空,默認空格,多個空格看成一個") 分割字符串,返回列表
str.lsplit()
str.rsplit()
*** str.replace(old,new,替換幾次)
*** str.format() 字符串格式化
"{}my name is {}".format(11,"秀文")
"{1}my name is {2},next year is {1}".format(11,"秀文")
{id}is old boy ,my name {name}".format(id =11,name="sun") 不能放字典
% 百分號的方式格式化
"my name is %s ,i am %d" %("sun",30)"
"my name is %(name)s ,i am %(age)d" %(dic)" 可以放字典
%s 字符串
%d 整數
%f 小數 %.2f 保留2為小數
3.6以上版本格式話可以:f"{name}已經登錄了"
str.isalnum() 是否為字母或數字,返回bool值
str.isalpha() 是否全為字母
str.isdigit() 是否全為數字
str.isspace() 是否有空白字符
***** str.join(iterable可迭代) 字符串拼接,括號里一定得是可迭代得數據,且只能為一個參數
注:
"sun".join([11,22]) 報錯,join不能將帶有數字得list轉換成字符串,需要先將數字轉換成字符串
"*".join("%s" %id for id in list)
object in str 判斷元素是否在str中
列表:list
# 可變數據類型,有序,可切片,可迭代循環,元素可為任意類型數據
# 以[元素,]表示
# 可增刪改查
切片:
同字符串一樣,通過索引切
增:
list.append(元素) 向列表末尾添加元素
list.insert(index,元素) 指定索引位置向列表添加元素
list.extend(iterable) 迭代的向列表末尾添加多個元素
刪:
list.pop(index) 根據索引刪除,不添加元素時,默認刪除最后一個
list.remove(元素/object) 根據元素刪除
del list 刪除列表
del list[:3] 根據索引切片刪除
list.clear() 清空列表
改:
lis[index] = new_data 索引切片修改
lis = [11,22,33,44,55]
lis[:2] = [66,77,88] # lis = [66, 77, 88, 33, 44, 55] 步長為1時,不考慮個數對應,切的時一片空間
lis[:3:2] = [66,77] # 報錯,步長不為1時,左右元素個數需一致
#ValueError: attempt to assign sequence of size 3 to extended slice of size 2
查:
lis[index] 通過索引查
for i in list: 通過迭代循環查,i為列表中的每個元素
方法:
del list 刪除列表
len(list) 統計列表的長度
list.count(object) 統計列表中指定元素出現的個數
list.index(object,start,end) 查找元素的索引
list.sort(reverse=False) 排序,默認為升序,當reverse值設為True時,降序排列
list.reverse() 列表中元素順序反轉過來
list.copy() 列表淺拷貝
object in list 判斷對象是否在列表中
元組:tuple
# 不可變數據類型,有序,可切片,可迭代循環,元素可以是任意數據類型
# 不可增刪改
# 以括號表示()
查:
tuple[2] 通過切片查
for i in tuple: 通過迭代循環查
方法:
tuple.count(object)
tuple.index(object,start,end)
len(tuple)
object in tuple
字典:dict
# 可變數據類型,鍵值對存在,鍵不可變,可哈希的(int,str,bool,frozenset),值可以是任意數據類型,無序,不可切片,可迭代循環查詢
# 以大括號表示{key:value}
# 可整刪查
增:
dic = {}
dic[new_key] = new_data 直接增加,如果key存在則更新value
dic.setdefault(key,value) 本方法一旦key,value都創建,且value指定的不是[]、{}、set(),值都不能更改
new_dic = dict.fromkeys(iterable,values)
new_dic = dict.fromkeys([11,22],[33,44]) -->{11: [33, 44], 22: [33, 44]}
前面的key對應相同的value,且當后面的value為可變數據類型時如列表,改變任意一個value,
另一個也會改變,淺拷貝,否則不改變
刪:
dic.pop(key) 指定key刪除,默認刪除最后一項,返回刪除key對應的value,如果key不存在報錯 KeyError:
dic.popitem() 隨機刪除 ,返回刪除的鍵值對以tuple形式顯示
3.6以上字典內置為有序,popitem()默認刪除最后一個,但面試要說隨機刪除
del dic[key] 指定key刪除,如果key不存在報錯 KeyError:
del dic
dic.clear()
改:
dic[key] = new_data
dic.update(dic1) dic將dic1更新到自己的字典中,key重復更新為新value
查:
dic[key] key不存在時,報錯
dic.get[key,"不存在時自定義返回值"] key不存在時默認返回None,也可自定義返回值
dic.keys() 以仿列表形式存所有key,可迭代
dic.values()
dic.items()
for i in dic i 為dic的key
方法:
len(dic)
集合:set
# 可變數據類型,無序,元素唯一不重復且不可哈希即不可變數據類型,可迭代
# 以{}形式表現,主要用于去重
# 不可切片(無序),可增刪改查
增:
set.add(元素)
set.update(iterable) 迭代的更新到set中
刪:
set.pop() 隨機刪除
set.remove(元素) 沒有報錯
set.clear()
del set
改:
因無序,只能通過先刪除后整加的方式
set.remove(待改元素)
set.add(新增元素)
查:
for i in set:
方法:
len(set)
交集: & 相同的部分
并集: | 合體
差集 a-b 去掉在a中b有的元素,減法
s = frozenset([11,22,33]) 將可變數據類型改為不可變