python learning
liudehua5678
这个作者很懒,什么都没留下…
展开
-
UConn DataMining Math5671 课程小记(2)
课程部分主要讲 Nueral Network 原理,及数学和算法背景(略)作业部分Kaggle 的 Imbalance data 项目分析–Credit Card Fraud Detection1 redo the code2 under sample the majority class(欠采样,通常用于不平衡数据集,在fit 时随机删除一部分imbalance data中的多数类)3using model metrics (accuracy, percision, recall, AUC a原创 2020-09-28 09:34:20 · 165 阅读 · 0 评论 -
Uconn DataMining Math5671 课程小记(1)
安装部分:1 学习tensorflow 框架2 安装anacoda ——》 jupyter notebook3 安装 tensorflow,发现python版本3.8, 不支持(pip需19.0以上版本,python需3.5-3.7)4 python降级三种方法1.在anacoda内处理2.用virtualenv创建虚拟环境3.重装python(麻烦!)最终在conda内将python降级至3.7,import tensorflow成功, 但必须从anaconda navigator 中原创 2020-09-28 05:38:56 · 177 阅读 · 0 评论 -
算法: 快速排序 quick sort
快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为较小和较大的2个子序列,然后递归地排序两个子序列。步骤为:挑选基准值:从数列中挑出一个元素,称为"基准"(pivot);分割:重新排序数列,所有比基准值小的元素摆放在基准前面,所有比基准值大的元素摆在基准后面(与基准值相等的数可以到任何一边)。在这个分割结束之后,对基准值的排序就已经完成;递归排序子序列:递归地将小于基准值元素的子序列和大于基准值元素的子序列排序。递归到最底部的判断条件是数列的大小是零或一,此原创 2020-09-02 14:26:56 · 93 阅读 · 0 评论 -
我的项目: 软件开发的目录规范
…原创 2020-09-02 14:24:24 · 79 阅读 · 0 评论 -
模块: hashlib模块 使用hashlib、模拟撞库、
1、什么是哈希hashhash是一类算法,该算法接受传入的内容,经过运算得到一串hash值hash值的特点:1.1 只要传入的内容一样,得到的hash值必然一样1.2 不能由hash值返解成内容1.3 不管传入的内容有多大,只要使用的hash算法不变,得到的hash值长度是一定2、hash的用途用途1:特点II用于密码密文传输与验证用途2:特点I、III用于文件完整性校验3、如何用# import hashlib## m=hashlib.md5()# m.update('hello原创 2020-09-01 13:24:10 · 219 阅读 · 1 评论 -
模块: logging模块 日志设置
1、日志格式与输出位置import logging#basicConfig 基本配置logging.basicConfig( # 1、日志输出位置:1、终端 2、文件 filename='access.log', # 若不指定,默认打印到终端 # 2、日志格式 format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s', # 3、时间格式 datefmt='%Y原创 2020-09-01 13:05:18 · 447 阅读 · 0 评论 -
模块: 小项目: 打印进度条 (time 、sys模块应用)
import timedef progress(percent): if percent > 1: percent = 1 res = int(50 * percent)* '#' print('\r[%-50s]%d%%'%(res,int(100*percent)),end = '')recv_size = 0total_size = 1025while recv_size < total_size: time.sleep(0.05原创 2020-08-29 12:53:48 · 82 阅读 · 0 评论 -
python 七个基本模块
模块本质上就是一个py文件(不要和模块重名)1 collections模块 : python中的扩展数据类型2 时间模块3 random模块 : 随机数模块4 os模块 : 和操作系统打交道的模块5 sys模块 : 和python解释器打交道的模块6 序列化模块 : python中数据类型和str转换的模块7 re模块 见正则表达式...原创 2020-08-28 17:53:29 · 232 阅读 · 0 评论 -
模块: OS
操作系统命令import osos.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cdos.curdir 返回当前目录: ('.')os.pardir 获取当前目录的父目录字符串名:('..')os.makedirs('dirname1/dirname2') 可生成多层递归目录os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如转载 2020-08-28 15:53:58 · 57 阅读 · 0 评论 -
模块: random模块 取随机数
random模块import randomprint(random.random()) #(0,1)----float 大于0且小于1之间的小数print(random.randint(1, 3)) # [1,3] 大于等于1且小于等于3之间的整数print(random.randrange(1, 3)) # [1,3) 大于等于1且小于3之间的整数print(random.choice([111, 'aaa', [4, 5]])) # 1或者23或者[4...原创 2020-08-28 15:30:00 · 127 阅读 · 0 评论 -
模块: 时间模块 time 和 datetime包
1 时间模块优先掌握的操作一、 Time包import time时间分为三种格式:1、时间戳:从1970年到现在经过的秒数作用:用于时间间隔的计算# print(time.time())2、按照某种格式显示的时间:2020-03-30 11:11:11作用:用于展示时间# print(time.strftime('%Y-%m-%d %H:%M:%S %p'))# print(time.strftime('%Y-%m-%d %X'))3、结构化的时间作用:用于单独获取时间的某一原创 2020-08-28 12:18:11 · 180 阅读 · 0 评论 -
编程范式: 面向过程与函数式
一、 面向过程 基于面向过程开发程序就好比在设计一条流水线,若程序一开始是要着手解决一个大的问题,按照过程式的思路就是把这个大的问题分解成很多个小问题或子过程去实现,然后依次调用即可,这极大地降低了程序的复杂度。举例如下: 写一个数据远程备份程序,分三步:本地数据打包,上传至云服务器,检测备份文件可用性面向过程总结:1、优点将复杂的问题流程化,进而简单化2、缺点程序的可扩展性极差,因为一套流水线或者流程就是用来解决一个问题二、 函数式函数式编程并非用函数编程这么简单,而是将计算机的运算原创 2020-08-26 05:59:52 · 357 阅读 · 0 评论 -
正则表达式
1 字符组 [字符] 只表示一个位置上能放的所有字符集2 元字符\w(数字字母下划线) \d(数字) \s(空白符)\W \D \S (上面的反向). (匹配除了换行符以外的所有字符)\n \t (回车)(换行table)^ $( 匹配字符串的开始和结束!!,必须放在两端)()(分组)(对多个字符组整体量词约束用的,看身份证例题)(re模块里: 分组是有优先的 findall、split )/ (或,从左到右匹配,只要匹配上就不继续匹配了)[^]除了字符组内的其他都匹配3量词# *原创 2020-08-12 03:48:11 · 72 阅读 · 0 评论 -
函数: 复习回顾
1 函数 —— 2天# 函数的定义和调用# def 函数名(形参): #函数体 #return 返回值#调用 函数名(实参)# 站在形参的角度上 : 位置参数,*args,默认参数(陷阱),**kwargs# 站在实参的角度上 : 按照位置传,按照关键字传# 返回值:没有返回值 返回一个值 返回多个值# 接收返回值:没有返回值不接收,返回一个值用一个变量接收,返回多个值用一个变量或者对应数目的变量接收2 闭包函数 —— 在内部函数引用外部函数的变量3 装饰器函数—— 装饰原创 2020-08-04 19:37:58 · 159 阅读 · 0 评论 -
函数: 装饰器(3) 网页缓存小作业
进阶作业(选做):1.编写下载网页内容的函数,要求功能是:用户传入一个url,函数返回下载页面的结果2.为题目1编写装饰器,实现缓存网页内容的功能:具体:实现下载的页面存放于文件中,如果文件内有值(文件大小不为0),就优先从文件中读取网页内容,否则,就去下载,然后存到文件中import os #判断文件内是否有值from urllib.request import urlopendef cache(func): def inner(*args,**kwargs): if原创 2020-08-04 15:58:56 · 246 阅读 · 0 评论 -
函数: 装饰器 (2)
1 若使用装饰器后,再使用xxx.name 此类方法,调用的是inner的而不再是原函数holiday的。这种现象显然与装饰器的不改变原函数相违背。 (发现问题)def wrapper(func): #func = holiday def inner(*args,**kwargs): print('在被装饰的函数执行之前做的事') ret = func(*args,**kwargs) print('在被装饰的函数执行之后做的事')原创 2020-08-04 13:12:06 · 103 阅读 · 0 评论 -
函数:装饰器(面试常考)
1 装饰器的本质 : 闭包函数#闭包:是嵌套函数,内部函数调用外部函数的变量# def outer():# a = 1# def inner():# print(a)# inner()# outer()#1.2 装饰器的作用 —— 不想修改函数的调用方式 但是还想在原来的函数前后添加功能timmer就是一个装饰器函数,只是对一个函数 有一些装饰作用2 原则: 开放封闭原则2.1 开放 : 对扩展是开放的2.2 封闭 : 对修改是封闭的3原创 2020-08-04 12:10:51 · 129 阅读 · 0 评论 -
函数: 函数名的本质
函数名的本质:(简单地说:可以当普通变量用)是指向内存地址的一个名字,且同样可以赋值 (所谓的变量名,对于计算机都是一个内存地址) func() #函数名就是内存地址 func2 = func #函数名可以赋值 func2()因此,可以将函数名存入列表中,循环调用(函数名可以作为容器类型的元素)l = [func,func2] #函数名可以作为容器类型的元素print(l)for i in l: i()#在函数名后加括号,实现调用3.函数名可以作为参数和函数的返回值原创 2020-08-02 16:11:23 · 951 阅读 · 0 评论 -
命名空间和作用域
1 命名空间 三种1.1 内置命名空间 —— python解释器# 就是python解释器一启动就可以使用的名字存储在内置命名空间中# 内置的名字在启动解释器的时候被加载进内存里1.2 全局命名空间 —— 我们写的代码但不是函数中的代码# 是在程序从上到下被执行的过程中依次加载进内存的# 放置了我们设置的所有变量名和函数名1.3 局部命名空间 —— 函数# 就是函数内部定义的名字# 当调用函数的时候 才会产生这个名称空间 随着函数执行的结束 这个命名空间就又消失了#在局部:可以使用全局、原创 2020-08-02 06:42:16 · 137 阅读 · 0 评论 -
函数: 返回值的几种情况
返回值的3种情况1 没有返回值 —— 返回None# 不写return# 只写return:结束一个函数的继续(和break 效果差不多)# return None —— 不常用2 返回1个值# 1.可以返回任何数据类型# 2.只要返回就可以接收到# 3.如果在一个程序中有多个return,那么只执行第一个3 返回多个值1 用多个变量接收:有多少返回值就用多少变量接收 def func(): return 1,2,3 r1, r2, r3 = func()原创 2020-08-01 14:16:44 · 971 阅读 · 0 评论 -
python的文件操作及注册登录小程序
1.’r’表示只读操作,调用完文件之后要close,否则会持续占据内存# f = open('d:\log.txt',mode='r',encoding='UTF-8')#绝对路径# content = f.read()# print(content)# f.close()2.r+ 表示读写操作(最常用),注意:只能先write 后 readf = open('log', mode = 'r+', encoding = 'utf-8')f.write('aaa')print(f.read原创 2020-07-30 15:43:00 · 187 阅读 · 0 评论 -
数据类型:元组
元祖 如果元祖里面只有一个元素且不加,那此元素是什么类型,就是什么类型。# tu1 = (1)# tu2 = (1,)# print(tu1,type(tu1))# print(tu2,type(tu2))# tu1 = ([1])# tu2 = ([1],)# print(tu1,type(tu1))# print(tu2,type(tu2))# dic = dict.fromkeys([1,2,3,],3)# dic[1] = 4# print(dic)...原创 2020-07-30 11:22:01 · 112 阅读 · 0 评论 -
列表,字典,在循环中删除元素的问题及解决方法
在循环中删除元素,for i in lis: del lis[i] #报错因为随着删除,列表长度在变化,字典同理而新建空列表存放要删除的key,再使用for循环删除,可以解决问题l = []for i in dic:if ‘k’ in i:l.append(i)for i in l:del dic[i]...原创 2020-07-30 11:19:44 · 210 阅读 · 0 评论 -
数据类型: 集合
1 集合:可变的数据类型(不可哈希的),里面的元素必须是不可变的,无序,不重复set1 = {‘Jack’, ‘Alen’, ‘Wu’, ‘Tom’}自动去重复1.1 增set1.add('老王')set1.update('abc')#类似迭代添加 print(set1){'alex', 'ritian', 'barry', 'egon', '女神', 'wusir'}{'b', 'alex', 'ritian', 'c', 'barry', 'egon', '女神', 'a', 'wu原创 2020-07-30 09:36:18 · 210 阅读 · 0 评论 -
Python3笔记1 int和str细节 和编码知识点 小数据池
1.1 格式化函数的使用:>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序'hello world'>>> "{0} {1}".format("hello", "world") # 设置指定位置'hello world'>>> "{1} {0} {1}".format("hello", "world") # 设置指定位置'world hello world'1.2python中\t,\原创 2020-07-29 09:45:41 · 128 阅读 · 0 评论