百测学习之内置函数2和mysql的连接使用

一、递归

     递归自己调用自己 递归时最多循环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()


猜你喜欢

转载自www.cnblogs.com/yaya-1226/p/10121958.html