Python字典及基本操作
如果單純使用兩個串列來保存某組資料,則無法記錄兩組資料之間的關聯關系,為了保存具有映射關系的資料,Python 提供了字典,字典相當于保存了兩組資料,其中一組資料是關鍵資料,被稱為 key;另一組資料可通過 key 來訪問,被稱為 value,形象地看,字典中 key 和 value 的關聯關系如圖 1 所示:
由于字典中的 key 是非常關鍵的資料,而且程式需要通過 key 來訪問 value,因此字典中的 key 不允許重復,程式既可使用花括號語法來創建字典,也可使用 dict() 函式來創建字典,實際上,dict 是一種型別,它就是 Python 中的字典型別,在使用花括號語法創建字典時,花括號中應包含多個 key-value 對,key 與 value 之間用英文冒號隔開;多個 key-value 對之間用英文逗號隔開,

字典包含多個 key-value 對,而 key 是字典的關鍵資料,因此程式對字典的操作都是基于 key 的,基本操作如下:
- 通過 key 訪問 value ,
- 通過 key 添加 key-value 對,
- 通過 key 洗掉 key-value 對,
pop方法用來獲得對應于給定鍵的值,然后將這個鍵值對從字典中移除

- 通過 key 修改 key-value 對,

字典的常用用法
get()方法
get() 方法其實就是根據 key 來獲取 value,它相當于方括號語法的增強版,當使用方括號語法訪問并不存在的 key 時,字典會引發 KeyError 錯誤;但如果使用 get() 方法訪問不存在的 key,該方法會簡單地回傳 None,不會導致錯誤,例如如下代碼:

update()方法
update() 方法可使用一個字典所包含的 key-value 對來更新己有的字典,在執行 update() 方法時,如果被更新的字典中己包含對應的 key-value 對,那么原 value 會被覆寫;如果被更新的字典中不包含對應的 key-value 對,則該 key-value 對被添加進去,例如如下代碼:

items()用于獲取字典中的所有 key-value 對、所有 key、所有 value,回傳 dict_items物件,Python 不希望用戶直接操作這幾個方法,但可通過 list() 函式把它們轉換成串列,如下代碼示范了這個方法的用法:

python中元祖的用法
元組(tuple):小括號定義元祖,存盤任意型別資料,但其內資料不可變,元組不可變,其內的串列中的元素可以變,元祖只有一個值時,要加逗號,代碼不想被人修改,就定義元祖,
1、元祖資料不能被修改

2、遍歷回圈
可以使用for回圈實作元組的遍歷
pytnon 中字串的常用方法
count:字符出現次數

index、find:下標,可以指定位置找,find 可以找字串下標

去空格的 3 種用法:
strip()方法:去除字串前后(左右側)的空格或特殊字符
lstrip()方法:去除字串前面(左側)的空格或特殊字符
rstrip()方法:去除字串前面(右側)的空格或特殊字符 
s.split()分割字串,默認每個詞之間換行符或者空格分割、\n,也可以指定字串進行分割,如果指定分割的元素不存在,分隔符不會報錯,會不進行分割直接當成一個字串

a.join():用來連接 list 里面的每個元素的

切片:list范圍取值的一種方式,切片時顧頭不顧尾

如果為負數的,取值的時候從右往左開始取值,同時步長應為負數print(l[-1:-3:-1])
下面了解
# format:字串格式化
# upper:所有變成大寫
# lower:所有變小寫
# zfill:補 0 的,如 12 補 4 位就是 0012
# isdigie:判斷字串是否是純數字
# endswith:判斷是以什么結尾的
# stratswith:判斷已什么開頭的
# center:字串居中,位數不夠還可以用指定字串補齊,如 100 個居中用==補齊
# 就是字符換放中間已指定字串補齊:==100 個==
# title:檢查標題是否大寫
# isspace:校驗傳入字串是否全部都是字串
# islowe:是判斷否全部都是小寫
# isupper:判斷否全部都是大寫
深拷貝、淺拷貝
數字和字串中的記憶體都指向同一個地址,所以深拷貝和淺拷貝對于他們而言都是無意義的,對于字典 元組 和串列來說,進行淺拷貝和深拷貝時,記憶體的地址是不同的,
淺拷貝只會拷貝記憶體中的第一層資料

而對于深拷貝來說將會把所有資料重新創建,當不想改變被拷貝的值時 應該使用深拷貝

非空即真,非 0 即真
1,非空即真(只要有內容就是true)
例:
name=input('請輸入名稱').strip()
if name=='':
print('name不能為空')
#輸入的name去掉空格,如果為空,提示'name不能為空',
#把這個例子改成非空格式,名字非空,提示正確,名字是空,提示錯誤,
方式一:
name=input('請輸入名稱').strip()
if name!='':
print('輸入正確')
else:
print('name不能為空')
方式二:
name=input('請輸入名稱').strip()
if name: #效果和方式一一樣,非空即真,所以只要輸入非空的內容就是真,就列印輸入正確,
print('輸入正確')
else:
print('name不能為空')
空,包括以下型別的空:
a='' 空字串
l=[] 空list
t=() 空元組
d={} 空字典
b=None 例如函式的回傳值none
2,非零即真(只要不是0就是true)
name=input('請輸入名稱').strip()
name=int(name) #例如輸入1,可以轉成整型,非零,為真,提示正確,輸入0,轉成整型為0,為假提示錯誤
if name:
print('輸入正確')
else:
print('name不能為空')
操作檔案
# 遇到路徑打開時,前面要加'r'防止其他字符轉義
# open('a.txt')三種模式:w(寫) r(讀) a(追加)
# 如果檔案有中文的話要加 encoding='utf-8'
# f=open('上課練習','r',encoding='utf-8')
# result=f.read()
# 1、可讀全部
# 2、不可寫
# 3、只讀全部以 list 串列形式
# 4、只讀一行
#
# 課練習','r',encoding='utf-8')
# result=f.write()
# 1、不可讀
# 2、可寫
# 3、寫了以后,會把之前的內容覆寫掉
# 4、用writelines:不會覆寫掉內容,但必須是 str 格式的
# a (追加)模式
# 1、不能讀,只能寫
# 2、檔案不存在,可以創建新的檔案
# 3、檔案存在,直接在檔案末尾添加
檔案指標seek的使用
python中可以使用seek()移動檔案指標到指定位置,然后讀/寫,通常配合 r+ 、w+、a+ 模式,在此三種模式下,seek指標移動只能從頭開始移動,即seek(x,0) ,

seek(x,0):表示指標從開頭位置移動到x位置
seek(x,1):表示指標從當前位置向后移動x個位置
seek(-x,2):表示指標從檔案結尾向前移動x個位置
例:file.seek(-1,2),檔案指標從檔案末尾向前移動一個字符,配合read相關方法/函式可讀取該字符,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/43187.html
標籤:Python
上一篇:學Python 必背的42個常見單詞,看看你記住了幾個?
下一篇:01_網路編程基礎理論
