百測學習之內建函式2和mysql的連線使用
阿新 • • 發佈:2018-12-14
一、遞迴
遞迴自己呼叫自己 遞迴時最多迴圈999次就不可以再迴圈了,一定要給出迴圈機會,沒有迴圈效率高
count=0 def abc(): global count count+=1 print(count) print('abc') abc() #遞迴呼叫 abc()
二、OS方法
1、os.walk() 可以把每一個目錄都迴圈找到
import os for cur_path,cur_dirs,cur_files in os.walk(r'F:\python'): print('當前路徑',cur_path) print('當前目錄下有哪些資料夾',cur_dirs) print('當前目錄下有哪些檔案',cur_files) print('='*20) #字串相乘顯示多少次
還可以通過關鍵字查詢檔案,程式碼如下:
def find_movie(keyWord,path='F:\PPT模板'): for cur_path,cur_dirs,cur_files in os.walk(path): # if keyWord in str(cur_dirs): # print(cur_path)for file in cur_files: # if keyWord in file: if file.endswith(keyWord): print(cur_path) find_movie('pptx') #根據關鍵字搜尋對應的檔案目錄
2、getcwd()給出當前目錄
print(os.getcwd()) #給出當前目錄
res=eval('[1,2,3,4]') #執行一些簡單的python程式碼 加減法計算 print(exec(s2)) #可執行程式碼
三、內建函式
定義變數時避免用關鍵字,如果用有的函式名會被重新定義之前功能不能使用
1. import math
res=max([1,3,4,5]) #求最大值
res1=sum(range(1,100)) #求1到100的和
print(chr(77)) #把數字轉換成ASCII的值
print(ord('A')) #把字母轉換成ASCII的值
print(dir(res)) #如果'.'不出來方法,可以看到這物件裡面有哪些方法
非空即真
print(bool([])) #轉布林型別的為true false
print(bool(())) #轉布林型別的為true false
print(bool({})) #轉布林型別的為true false
print(bool(None)) #轉布林型別的為true false
print(bool('')) #轉布林型別的為true false
2.排序
s='123456'
print(list(reversed(s))) # 倒排序
print(sorted({"k1":"v1","k2":"v2"},reverse=False) ) #reverse=True 根據k1,k2倒敘排
3. zip() 把兩個列表連在一起
name=['zyy','hhh','oo'] money=[50,20,30,80] for n,m in zip(name,money): #把name與money連線在一起 #print('%s==>%s'%(n,m)) print(n,m) print(list(zip(name,money)))
4.map函式 ,迴圈呼叫函式
def intToStr(num): return str(num).zfill(2) res=map(intToStr,range(1,34)) #自動迴圈呼叫函式,儲存返回值 print(list(res))
5.lambda 函式 匿名函式,功能很簡單隻用一次 lambda是定義匿名函式的
a=lambda num:str(num).zfill(2) #:前面是入參,後面是返回值 b=lambda num:num+1 print(a(1)) #lambda的呼叫 print(b(1)) #lambda的呼叫
res=map(lambda num:str(num).zfill(2),range(1,34))
print(list(res))
6. filter() 迴圈呼叫函式,幫篩選一些函式
def abc(num): if num%2==0: return True lambda num:num%2==0 res1 = list(map(abc,range(1,11))) res2 = list(filter(abc,range(1,11))) #r如果函式返回false,那麼就過濾掉這個值是從你傳入的值裡過濾 print(res1) print(res2)
7.MD5加密
import hashlib s='admin' m = hashlib.md5(s.encode()) print(m.hexdigest()) # md5加密是不可逆的,加密之後不能進行解密 #解密之後:e10adc3949ba59abbe56e057f20f883e 123456 #解密之後:21232f297a57a5a743894a0e4a801fc3 admin #彩虹表:加密後密碼對應的md5明文 m=hashlib.sha224(s.encode()) print(m) m=hashlib.sha384(s.encode()) print(m)
四、第三方模組和函式
1.第三方模組的三種安裝方法
1).安裝mysql:pip install pymysql 安裝mysql (在cmd安裝直接安裝)
2).安裝.whl檔案: pip instal H:\軟體安裝包\軟體安裝包\PyMySQL-0.9.2-py2.py3-none-any.whl 絕對路徑
3).安裝.tar.gz檔案: 直接在資料夾中cmd可直接進入對應目錄,直接輸入命令安裝python setup.py install
2.Mysql使用
import pymysql #118.24.3.40 jxz 123456 3306 jxz conn=pymysql.connect(host='118.24.3.40',user='jxz', password='123456',port=3306,db='jxz',charset='utf8',autocommit=True) #autocommit自動提交 cur=conn.cursor(pymysql.cursors.DictCursor) #建立遊標 #DictCursor字典返回的值key就是欄位名 sql='select * from app_myuser' res=cur.execute(sql) #execute()只是執行sql,並不會返回結果 res1=cur.fetchall() #獲取的結果放到元組中 sql='insert into app_myuser (username,passwd,is_admin) values ("nhy123","456789",1);' sql='insert into app_myuser (username,passwd,is_admin) values ("yaya123","123098",1);' #插入sql用雙引號 sql1='select * from app_myuser where username="yaya123"' res=cur.execute(sql1) res1=cur.fetchall() #查詢後面的資料不用加入參 print(res1) conn.commit() #插入資料之後,需要提交之後才能進入出具庫表 name='yaya' sql2='select * from app_myuser where username="%s";'%name sql3='select * from app_myuser limit 5' #只取前5條資料 cur.execute(sql3) print(cur.fetchall()) #獲取到所有的返回的資料 print(cur.fetchone()) #只取一條資料 cur.close() conn.close()