1 a=12 b=a
3 print('之前的:',b)
4 a=2
5 print('之後的:',b)
為什麼會b=a a改變了值,之後b還是等於之前的值呢?
其實這個位置儲存的不是變數a,而是變數a的記憶體位址,a改變了值,變成了另乙個記憶體位址,但是b儲存的是a之前的記憶體位址,所以輸出的時候就不會改變。
查詢記憶體位址使用id()
我們可以看到之前的a、b的記憶體位址是相同的,但是在a改變了值之後,a的記憶體位址就改變了,但是b儲存的是之前的a的記憶體位址,所以b的記憶體位址沒有改變。
2、元組
定義元組:citites=('beijing','shanghai')
定義元組使用小括號() 定義列表使用中括號,中間使用逗號隔開。
元組是不可變的,一旦定義好了之後,就不能再變了。
提示的是型別錯誤,元組物件不支援修改
元組可以使用的內建函式:
1 citites=('beijing','shanghai')2 print(citites[0]) #查詢該下標元素
3 print(citites.count('beijing')) #查詢該元素出現的次數
4 print(citites.index('beijing')) #查詢該元素下標
3、字串
在python中,字串是不可變型別,即無法直接修改字串的某一位字元。因此改變乙個字串的元素需要新建乙個新的字串。
使用函式replace() 可以修改字串
4、 依次迴圈輸出列表
5、依次迴圈輸出字串的字元
words='紅紅火火恍恍惚惚'6、切片,list取值的一種方式
切片是顧頭不顧尾
stus=['saki','yuri','sara','kuma']
①stus[1:3] 表示取下標從1開始,到3結束,但不包括下標為3的值,所以只取1和2
②stus[:3] 如果不寫下標的話,表示從下標0開始到3結束,不包含3
③stus[-1] 表示取最後乙個元素
④stus[1:] 不寫結尾下標的話,表示取值到結尾
⑤stus[:] 相當於print(stus),取全部list
⑥import string
num=list(string.digits) 強制型別轉換成list string.digits表示0-9數字
⑦num[0:11:2] 下標從0開始,到11位不包含11位結束,每個2個元素取一次值,第二個冒號後面的值代表步長。
⑧num[::-1] 步長是負數的話,從右向左取值
⑨num[-6:-10:-1] 步長為負時,是從右向左取值,所以正數是無法取到值的,需要改為負數,-1代表下標為1,-6代表從右往左第6位。
步長為負:
前面兩個都不寫:則取反;寫第乙個,第二個不寫:從第乙個向左取;
寫第二個,第乙個不寫:從第二個向左取;
寫兩個:開始位置在結束位置的左側:取不到;
寫兩個:開始位置在結束位置右側:從右往左取。
7、取偶
1 a=[1,1,2,3,4,5,6,43,45,72]我們可以看到結果中包含奇數,為什麼會這樣呢?我們可以檢視一下for迴圈每次取的下標和值2 for i in a:
3 i%2!=0
4 a.remove(i)
5 print(a)
i=0時,不滿足條件,刪除,列表改為[1,2,3,4,5,6,43,45,72]
i=1時,取值2,跳過下標為0的1,所以會將值1保留,滿足條件,列表為[1,2,3,4,5,6,43,45,72]
i=2時,取值3,不滿足條件刪除,列表為[1,2,4,5,6,43,45,72]
i=3時,取值5,因為刪除了下標2的值,所以後面的值向前移動乙個下標,所以跳過值4,判斷值5,不滿足條件刪除,列表為[1,2,4,6,43,45,72]
i=4時,取值43,因為刪除了下標3的值,所以後面的值向前移動乙個下標,跳過值6,判斷值43,不滿足條件刪除,列表為[1,2,4,6,45,72]
i=5時,取值72,因為刪除了下標為4的值,所以後面的值向前移動乙個下標,跳過值45,判斷值72,滿足條件,所以保留 最後結果為[1,2,4,6,45,72]
那我們如何解決這個問題呢?
我們可以將a的記憶體位址賦給另乙個變數,我們在b中迴圈下標,但是修改a的值,不會應該迴圈本身,所以我們最後的結果與我們預期的結果一致。
1 a=[1,1,2,3,4,5,6,43,45,72]8、不引入第三方變數的方式將a,b的值改變2 b=a[:]
3 for i in b:
4 i%2!=0
5 a.remove(i)
6 print(a)
a,b=1,2
b,a=a,b
Day3 python基礎資料型別
目錄 1 基礎資料型別概覽 2 int 數字型 3 bool 4 str 5 for迴圈 1 int 數字型 主要用於計算 2 str 字串 存少量資料 3 bool 反饋真 假 4 list 列表 可存各種資料型別,操作方便 5 tuple 元組 可讀列表 6 dic 字典 配對鍵值對 7 set...
day3 python 讀寫檔案
1 開啟檔案 open f open haha 開啟乙個名為haha的txt檔案,不寫字尾預設txt檔案,其他型別檔案必須寫字尾 2 read 讀取檔案內容 print f.read 閱讀模式,獲取裡面所有的內容,該模式只能讀取內容,不能對其進行修改。有時候會產生該錯誤,表示gbk解碼時報錯,存在一...
day3 python 集合 檔案
字典是無序的,列表是有序的 a zhangsan print a 1 a 2 222 字串不能賦值集合 set 把不同的元素組成一起形成集合 info 1,2,34,5,6,7 info set info print info 或info 1,2,34,5,6,7 se set info print...