#序列 '''在python中,序列類型包括字符串(普通字符串和unicode字符串)、列表和元組, 所謂序列,即成員有序排列,而且能夠經過下邊偏移量訪問到它的一個或者幾個成員。 ''' #今日內容 '''數據庫 存儲數據和信息用的 本質上和文件沒有區別 增刪改查更方便了 流程控制:條件判斷和各類循環 爲何要有文件處理:內存---->硬盤 ''' #文件操做複習 #文件處理 #打開文件 #open('路徑','打開方式 mode=','指定編碼方式 encoding=') #打開方式:r w a r+ w+ a+ rb r+b等 #r+ 讀寫 注意先讀後寫 否則會覆蓋 #編碼方式:utf-8 #操做文件 #讀 #read 一次性讀 #readline 一行一行讀 #不知道在哪兒結束 視頻圖片等必須按照字節讀不能一行一行讀 #readlines一次性讀按行切分放列表 #for循環讀文件最好:從頭至尾內存只有一行文件內容 #寫 #write \n能夠換行(打印的仍是換行符會換行不會打印出「\n」 添加的時候會把‘\n’添加進去 #光標:文件指針 #seek 按字節指定光標移到到某個位置 #tell 獲取光標當前的位置 #truncate 按字符截取文件 返回字符數 #關閉文件 #close() #修改文件 #open調用系統文件 windows系統默認gbk編碼 若是不指定編碼方式 由於python是utf-8會亂碼 # with open('小護士班主任',encoding='utf-8') as f,open('小護士班主任.bak','w',encoding='utf-8')as f2: # for line in f: # if "星兒" in line: # line=line.replace('星兒','阿嬌') # #寫文件 # f2.write(line) # import os # os.remove('小護士班主任')#刪除文件 # os.rename('小護士班主任.bak','小護士班主任')#重命名文件 # s='alex' # s='_'.join(s) # print(s)
s='jjjjjj' def my_len(): #定義/聲明一個函數 i=0 for k in s: i+=1 print(i) length=my_len() #調用函數 帶括號 print(length) #定義了以後 能夠在任何須要它的地方調用 沒有返回長度 只是單純打印 <<< 6 None
#return返回值的三種狀況 #沒有返回值:返回None #不寫return 只寫return:return結束一個函數的繼續 return None 至關於return #返回一個值 #能夠返回任何數據類型 只要返回就能夠接收到 若是在一個程序中多個return,那麼只執行第一個return #返回多個值 #用一個或多個變量接收 獲得一個元祖 def func(): l=['qq','ww'] for i in l: print(i) if i=='qq': return print('*'*6) print(func()) def func(): return {'f':1} print(func()) def func2(): return 1,2,3 #至關於(1,2,3),因此能夠一個或3個變量接收 元祖列表字典都能解包 a,b,c=func2() print(a) def my_len(s): i=0 for k in s : i+=1 return i a=my_len('hhhhh') b=my_len([1,2,3,4,5,6]) print(a,b) def f2(l1): f1(l1) for i in l1: print(i,end='') def f1(l1): for i in l1: print(i,end='') f2([1,2,3,4,5]) def my_sum(a,b): # print(a,b) res=a+b return res ret=my_sum(1,2) print(ret) <<< qq None {'f': 1} 1 5 6 12345123453
#站在實參的角度上:按照位置傳參 關鍵字傳參 混着用的時候必須先位置傳參而後關鍵字傳參 #站在形參的角度上:位置參數:必須傳 有幾個參數傳幾個值 默認參數:不傳就用默認的 傳了就用傳的 def classmates(name,gender='男'): print('%s:%s'%(name,gender)) classmates(111,'女') <<< 111:女
#動態參數:*args 接收全部位置參數 組織成一個元祖 **kwargs 接收全部關鍵字傳參的值 組織成一個字典 #形參的順序:位置參數 *args 默認參數 **kwargs def sum(*args): i=0 for k in args: i+=1 return i print(sum(1,2,3,6)) def func(**kwargs): print(kwargs) return kwargs print(func(a1_=1,b=2,c=3)) def func(*args,default=1,**kwargs): print(args,default,kwargs) func(1,2,a=3,b=4) <<< 4 {'a1_': 1, 'b': 2, 'c': 3} {'a1_': 1, 'b': 2, 'c': 3} (1, 2) 1 {'a': 3, 'b': 4}
#動態參數的另外一種傳參方式 def func(*args):#站在形參角度上,給一個變量加上*,就是組合全部傳來的值 print(args) func(1,2,3) l=(1,2,3,4,4) func(l) func(*l) #站在實參角度上,給一個序列加上*,就是將這個序列按順序打散 d={'a':1,'b':2} func(*d) def func(**kwargs): print(kwargs) func(a=1,b=2) d={'a':1,'b':2} func(**d) <<< (1, 2, 3) ((1, 2, 3, 4, 4),) (1, 2, 3, 4, 4) ('a', 'b') {'a': 1, 'b': 2} {'a': 1, 'b': 2}
#函數的註釋 # def func(): ''' 這個函數實現了什麼功能 參數1: 參數2: return: 字符串或者。。。 ''' # pass ''' 文件的修改 函數 函數的定義 函數的調用 函數的返回值 函數的參數 形參:位置參數:必須傳實參 *args:能夠接收任意多個位置參數 默認參數:能夠不傳 **kwargs:能夠接受任意多個關鍵字參數 實參:按照位置傳參 按照關鍵字傳參 函數 :內置函數 自定義函數'''
li=['alex','wusir','rain'] print('*'.join(li)) print('s s ssss'.split(' *')) <<< alex*wusir*rain ['s s ssss']
#1-2+3...+99 sum=0 for i in range(1,100): if i%2==1: sum+=i else: sum-=i print(sum) for i in range(10,-1,-1): print(i,end='') <<< 50 109876543210
#實現一個整數加法計算器 dic={'最終計算結果':結果} content=input('請輸入內容:') content_list=content.split('+') print(content_list) sum=0 for i in content_list: sum+=int(i) #int默認去空格 print(sum) <<< 請輸入內容:2 +99 ['2 ', '99'] 101
#將大於66得數保存到字典的第一個key中 小於66的保存到第二個key中 li=[11,22,33,44,55,77,88,90] result={} for i in li: if i>66: if 'key1'not in result: result['key1']=[] result['key1'].append(i) else: if 'key2'not in result: result={'key2':[]} result['key2'].append(i) print(result) li=[11,22,33,44,55,77,88,90] result={} for row in li: result.setdefault('key1',[]) result.setdefault('key2',[]) if row >66: result['key1'].append(row) else: result['key2'].append(row) print(result) <<< {'key2': [11, 22, 33, 44, 55], 'key1': [77, 88, 90]} {'key1': [77, 88, 90], 'key2': [11, 22, 33, 44, 55]}
user_list=[{'username':'barry','password':1234}, {'username':'alex','password':'asdf'}] board=['zs','lxs','wemz'] while 1: username=input('<<<') if username.upper()=='Q':break password=input('<<<') for i in board: if i in username: username=username.replace(i,'*'*len(i)) user_list.append({'username':username,'password':password}) print({'username':username,'password':password}) print(user_list) <<<hahaha <<<111 <<<q {'username': 'q', 'password': '111'} [{'username': 'barry', 'password': 1234}, {'username': 'alex', 'password': 'asdf'}, {'username': 'q', 'password': '111'}]