集合、深浅拷贝、文件操作(读、写、追加)函数初识(参数)
生活随笔
收集整理的這篇文章主要介紹了
集合、深浅拷贝、文件操作(读、写、追加)函数初识(参数)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
小數據池#int==比較數值is 比較內存地址id 測試內存地址#str不能含有特俗字符單個元素*數字,不能超過21i1 = ‘a’*20i = ‘a’*20id一樣i1 = ‘a’*21i = ‘a’*21id不一樣編碼ascii? ?英文的數字,字母,特殊字符字節8位表示一個字節字符內容的最小組成單位abc? a一個字符中國中? 一個字符unicode:萬國碼期初兩個字節,表示一個字符2**16不夠用升級四個字節,表示一個字符2**32夠了utf-8最少用8位,表示一個字符a? 用8位表示歐洲用16位表示亞洲用24位表示3字節gbk國標包含英文和中文中文用個字節表示1.不同編碼之間的二進制不能互相識別2.對于文件的存儲,及傳輸不能是unicode編碼python3xintboolbytes:內部編碼方式(非unicode,可能是utf-8,國標,根本2312.。。。)str:內部編碼方式為unicode。不能用戶發送及存儲listdicttuplestr和bytes的區別字母?str:表現形式:alex內部編碼:unicodebytes:表現形式:s2 = b'alex'內部編碼:非unicode中文str:表現形式:’中國‘內部編碼:unicodebytes:表現形式:s2 = b'\xe4\xb8\xad\xe5'內部編碼:非unicode編碼所有編碼到uniconde都是decode反之都是encode集合1.集合要求它里面的數據元素,可哈希的,元素不重復,無序本身是不可哈希的set1 = {}1.關系測試2.去重l1 = [1,1,2,2,3,4,5]print(list(set(s1))set1 = {'alex','wusir','egon',}增set1.add('文州')set.update('abc')PS:迭代增加刪:set1.pop()隨機刪除set.remove('alex')按照元素刪除set1.clear清空集合del set1刪除整個集合查:for i in set1:print(1)關系測試:set1 = {1234}set2 = {2345}交集print(set & set2 )print(set.intersection(set2))并集print(set1 | set2)print(set1.union(set2))差集(求set里獨有的元素)print(set1 - set2)print(set1 difference set2)反交集(不是交集,為反交集)print(set1 ^ set2)print(set1.symmetric_difference(set2))父子集(包含為超級,小為子集)set1 = {1,2,3}set2 = {1,2,3,4,5,6}print(set1 > set2)Trueprint(set1.isubset(set2))凍集set1 = {1,2,3}print(frozenset(set1))深淺拷貝淺copy第一層,各自獨立。從第二層開始,公用一個內存地址s1 = [1,2,3]s2 = s1.copy[]s1.append(666)print(s1,s2)s1 = [1,2,3[11,22]]s2 = s1.copy[]s1[-1].append(666)print(s1,s2)深copy深copy無論多少次,都是互相獨立的。互不影響import copys1 = [1,2,3[11,22]]s2 = s1.deepcopy[s1]s1.append(666)print(s1,s2)文件操作f1 = open('d:\xx.txt',encoding='utf-8',mode='r')print(f1.read())f1 文件句柄open()調用的內置函數,內置函數調用的系統內部的open一切對文件進行的操作都是基于文件句柄f1執行流程:打開文件-->產生文件句柄-->對文件句柄進行操作-->關閉文件句柄報錯原因:編碼問題File "D:/pycharm/day3/a.py", line 5, in <module>print(f1.read())File "D:\python\lib\codecs.py", line 322, in decode(result, consumed) = self._buffer_decode(data, self.errors, final)UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc4 in position 39: invalid continuation byte編碼不一致路徑錯誤SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape解決方法在 路徑最前面加個r讀:r??1、read()全讀出來2、read(n)讀一部分。n為讀取指定多少字符3、readline()按行讀取4、readlines()讀取多行,放在列表里5、for循環讀取for x in f1:print(x)f1.close()rb??f1 = open('1.jpg',mode='rb')print(f1.read)f1.closerb的raad(n)n為字節r+?r+讀寫模式r+b?(涉及到b的,是bytes類型。都是非文字類型的文件,如電影,音樂)寫:f1 = open('log2',encoding='utf-8',mode='w')w? ?沒有文件,創建文件也要寫入。有源文件,先清空內容,后寫入內容wbw+ 寫讀模式,替換的是字節?f1.seek(0) #調整光標到最前面(0,2)#調整到末尾w+b追加:a? ?沒有文件,創建文件寫入有源文件,后面追加f1 = open('賬號密碼',encoding='utf-8','mode='a')f1.write('太白')f1.closeab? ?a+??a+b?其他操作方法readable是否可讀writable是否可寫tell告訴光標具體在哪seek調整光標的位置(0,2)調整到末尾truncate只能在a或者在a+模式下使用的truncate按照字節對源文件截取with open('d:\xx.txt',encodint='utf-8',mode='r')as f1,:print(f1.read)在一定的時間內,自動關閉能用一條語句,操作多個open文件的改1.以讀模式打開源文件2.以寫的模式打開一個新文件3.將源文件內容讀出,按照要求修改,將修改后的內容,寫入新文件4.刪除源文件5.將新文件重命名源文件函數初識函數def函數名():函數體函數執行:函數名()函數以功能為導向函數名()return1.終止函數2.給函數的執行者返回值return 或者 return none多個值,返回元組3.函數的傳參1.形參角度1.位置參數與實參的位置參數一一對應2.默認參數默認參數要在位置參數后面,括號里面加入參數為默認參數3.動態參數傳入的參數不固定,用動態參數*args? 接受所有的位置參數,放在元組中**kwargs接受所有的關鍵字參數,放在字典里#函數定義的時候,*代表聚合#函數執行的時候,*代表打散,放到一起字典用兩顆星**形參先后順序:位置參數-->*args-->默認參數-->**kwargs2。實參角度1.位置參數按順序一一對應2.關鍵字傳參參數一一對應3.混合傳參(位置參數,關鍵字參數)關鍵字參數必須在位置參數后面條件簡單,切結果簡單。可以用三元運算
轉載于:https://www.cnblogs.com/dunkeng/p/9084999.html
總結
以上是生活随笔為你收集整理的集合、深浅拷贝、文件操作(读、写、追加)函数初识(参数)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tmux颜色高亮跟vim不一致的情况
- 下一篇: 今日头条竞价接口转发