day3 筆記

Python字典及基本操做

若是單純使用兩個列表來保存某組數據,則沒法記錄兩組數據之間的關聯關係,爲了保存具備映射關係的數據,Python 提供了字典,字典至關於保存了兩組數據,其中一組數據是關鍵數據,被稱爲 key;另外一組數據可經過 key 來訪問,被稱爲 value。形象地看,字典中 key 和 value 的關聯關係如圖 1 所示:

 因爲字典中的 key 是很是關鍵的數據,並且程序須要經過 key 來訪問 value,所以字典中的 key 不容許重複。程序既可以使用花括號語法來建立字典,也可以使用 dict() 函數來建立字典。實際上,dict 是一種類型,它就是 Python 中的字典類型。在使用花括號語法建立字典時,花括號中應包含多個 key-value 對,key 與 value 之間用英文冒號隔開;多個 key-value 對之間用英文逗號隔開。python

 

 

 字典包含多個 key-value 對,而 key 是字典的關鍵數據,所以程序對字典的操做都是基於 key 的。基本操做以下:函數

  • 經過 key 訪問 value 。

     

     

  • 經過 key 添加 key-value 對。
  •  

     

  • 經過 key 刪除 key-value 對。
  • pop方法用來得到對應於給定鍵的值,而後將這個鍵值對從字典中移除post

  • 經過 key 修改 key-value 對。

字典的經常使用用法spa

get()方法

get() 方法其實就是根據 key 來獲取 value,它至關於方括號語法的加強版,當使用方括號語法訪問並不存在的 key 時,字典會引起 KeyError 錯誤;但若是使用 get() 方法訪問不存在的 key,該方法會簡單地返回 None,不會致使錯誤。例如以下代碼:3d

 

 

 

update()方法

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

 

 

 items()用於獲取字典中的全部 key-value 對、全部 key、全部 value。返回 dict_items對象,Python 不但願用戶直接操做這幾個方法,但可經過 list() 函數把它們轉換成列表。以下代碼示範了這個方法的用法:orm

 

 

 python中元祖的用法對象

元組(tuple):小括號定義元祖,存儲任意類型數據,但其內數據不可變。元組不可變,其內的列表中的元素能夠變。元祖只有一個值時,要加逗號,代碼不想被人修改,就定義元祖。blog

一、元祖數據不能被修改ip

 

 二、遍歷循環

可使用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()
# 一、可讀所有
# 二、不可寫
# 三、只讀所有以 list 列表形式
# 四、只讀一行
#
# 課練習','r',encoding='utf-8')
# result=f.write()
# 一、不可讀
# 二、可寫
# 三、寫了之後,會把以前的內容覆蓋掉
# 四、用writelines:不會覆蓋掉內容,但必須是 str 格式的
# a (追加)模式
# 一、不能讀,只能寫
# 二、文件不存在,能夠建立新的文件
# 三、文件存在,直接在文件末尾添加

 

文件指針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相關方法/函數可讀取該字符。

相關文章
相關標籤/搜索