python
LSG.haha
认真认真再认真,淡定淡定再淡定
展开
-
根据pytest原理实现的简单逻辑
基于pytest原理实现的简单逻辑原创 2022-06-17 16:39:28 · 190 阅读 · 1 评论 -
自制手机页面监视器
自己写了个手机页面的监视器,新建一个线程通过ui自动化去处理常见的一些情况,如弹框授权等import timeimport threadingimport uiautomator2 as u2class Watcher(): def __init__(self, phoneui2, watcher_name=None, timeout=100): self.__name = watcher_name self.__keys = [] .原创 2022-04-19 14:43:14 · 289 阅读 · 0 评论 -
装饰器实现2-类的装饰器
def hello(cls): class wrapper(): def __init__(self, *args, **kwargs): print("hello, friends!") self.__wrap = cls(*args, **kwargs) def __getattr__(self, name: str): return getattr(self.__wrap.原创 2021-12-24 11:34:34 · 300 阅读 · 0 评论 -
装饰器实现1-函数的装饰器
'''Descripttion: 装饰器集合Author: lishaogangversion: Date: 2021-12-24 10:08:54LastEditors: lishaogangLastEditTime: 2021-12-24 10:59:23'''# from _typeshed import Selfimport timefrom functools import wrapsbuffer = []# 正常无参函数装饰器def timeit(func):.原创 2021-12-24 11:02:26 · 324 阅读 · 0 评论 -
Python类内的cls和self,及单例模式的探究
昨天碰到的问题。当写一个单例模式的时候,可以在init函数里面进行类对象的创建,然后对该对象进行初始化。详情如下:class A(object): _in1 = None __in2 = None instance = None def __init__(self, a): # 若是不使用__new__函数来写单例模式,在__init__函数中添加想关代码 if not self.instance: self.i原创 2021-12-21 15:19:08 · 945 阅读 · 0 评论 -
两人交替从数组左右两端拿数,求谁会赢
'''Descripttion: 有一个由正整数组成数组,每次只能拿最左边的数或最右边的数, 两个人交替拿数,求先手的和后手的谁会赢Author: lishaogangversion: Date: 2021-12-07 08:38:14LastEditors: lishaogangLastEditTime: 2021-12-07 09:11:06'''def numberGet(arr): def f(arr, l, r): ''' 先手.原创 2021-12-07 09:14:08 · 922 阅读 · 0 评论 -
Python小知识点
类的实例方法、类方法、静态方法 实例方法:类内带有self参数的方法,self代表类的一个实例 类方法:使用 @classmethod 装饰器的方法,函数的第一个参数必然是cls,代表类对象本身,能通过类本身或实例对象调用。 静态方法:使用 @staticmethod 装饰器的方法,函数的参数没限制,无特殊含义,调用与普通函数相同,调用的时候只需要使用 类名.方法名() 就可以调用。 python使用 ord() 函数来获取字符的ASCII编码值,如: ord('A') #用于求得 ‘A'原创 2021-11-19 10:26:42 · 468 阅读 · 0 评论 -
python dict中值是复杂类型或简单类型的区别
从下面实验结果可以看出: dict\set 传入简单类型时是值传递,改变原来变量的值并不会影响到dict\set中的值. 比如说对于int整型来说,当改变原来变量值时,会在另一个内存区域申请一块空间, 将其值存储其中。所以,当改变变量的值时,简单类型会另起一块内存空间,复杂类 型则是在原来内存空间上进行更改。 当传入复杂类型时,如自定义的类,改变原来变量的值,dict\set中的值也会改变,因为 ...原创 2021-11-18 10:34:58 · 613 阅读 · 0 评论 -
归并排序及其应用
'''Descripttion: 归并排序Author: lishaogangversion: Date: 2021-11-15 08:35:33LastEditors: lishaogangLastEditTime: 2021-11-15 09:53:08'''ssum = 0def merge(arr, left, mid, right): res = [] i,j=left, mid while i<mid and j<right: .原创 2021-11-15 10:29:33 · 287 阅读 · 0 评论 -
将python变量值安全地存储到本地——pickle库
pickle.dump(obj, file[, protocol]) 序列化对象,并将结果数据流写入到文件对象中。参数protocol是序列化模式,默认值为0,表示以文本的形式序列化。protocol的值还可以是1或2,表示以二进制的形式序列化。------------------------------------------pickle.load(file) 反序列化对象。...原创 2019-08-26 18:29:13 · 352 阅读 · 0 评论 -
Python中关于list和set的搜索效率及底层原理浅析
从上图可以看到,同样情况下,在set中查找大概60纳秒,在list中查找大概440微秒=440*1000纳秒=440000纳秒。所用时间大概是set的6000倍。总结原因:list是顺序存储的,在查找的时候遍历整个数组,所以时间复杂度是O(n) set在底层是被设计成没有值的字典型,即只有key没有value。而字典dict类型在python中的实现是基于hash map哈希表的,有一个映射关系,所以在查找时候,通过哈希函数f(x)就能轻易地找到相应的值,所以时间复杂度是O(1)。在Pytho..原创 2021-09-05 14:34:03 · 1746 阅读 · 0 评论 -
leetcode每日一题——179.最大数
我的天呐,这些这些题真的是需要刷的,让你自己去想的话,我自己最先想到的是根据像基数排序那样,从每个数的最高位开始进行比较排序,最大的放前面,排好之后在连在一起出结果。但是后面看了题解里面,真的是……,只需要自定义一个比较大小的方法就行了,比如对于两个数a和b,如果a+b>b+a就返回True,a+b<=b+a就返回False。根据这样的比较大小的方法,对整个数组进行排序,然后连在一起就可以了。代码如下:class Solution: def largestNumber(se..原创 2021-04-13 12:22:34 · 100 阅读 · 0 评论 -
标量函数向量化
最近在学习的过程中,看到numpy有一个很好的功能,可以让原本只能处理单个变量的函数去处理数组形式的数据,即能处理列表形式的多个数据。详细如下:原创 2020-08-19 16:35:24 · 468 阅读 · 0 评论 -
numpy中array拼接方法
array拼接此处介绍有三种: np.concatenate函数,axis为0时,按行拼接,为1时按列拼接。用法如下: 定义数组a,b np.concatenate([a,b],axis=0) np.vstack与np.hstack函数,np.vstack按行拼接,np.hstack按列拼接。用法如下: np.vstack([a,b]) np.hstack([a,b]) np.r_与np.c_函数,np.r_按行拼接,原创 2020-08-19 16:11:00 · 13905 阅读 · 0 评论 -
关于tensorflow中tf.enable_eager_execution()相关问题
在使用tensorflow过程中,会有以下几个问题,在未在代码中添加tf.enable_eager_execution()之前会出现以下问题,在添加之后即可解决在运行grads = tape.gradient(loss, variables)这句代码时会报错:AttributeError: 'RefVariable' object has no attribute '_id' 在运行MLP模...原创 2019-12-28 10:19:31 · 2023 阅读 · 0 评论 -
算法——实现随机拿到30道不重复的20以内的加减法题目
题目描述此时需要给小孩开发一个小程序,可以随机得到30道不重复的20以内的加减法题目,即对于题目来说,无论和还是差或者加数、减数、被减数均要小于20,且要大于等于0的整数。下面用python实现了下面该题目:import randomdef add(): ''' 获取随机的加法 :return: ''' a = random.randint...原创 2019-12-25 19:54:40 · 2088 阅读 · 0 评论 -
深度学习——常见简单激活函数(activation function)
在多层神经网络中,每一层的输入与输出呈线性关系,多层的话,该多层神经网络的输入和输出之间关系仅是内部多层隐藏层和输出层多个线性关系式的联合,即输入和输出之间仍是线性关系,这样的话,多层神经网络就跟单层神经网络相同了,做起来就没有什么意义。即全连接层只对数据做仿射变换,而多个仿射变换的叠加依旧是一个仿射变换。在上述情况下,解决该问题的方法之一就是引入非线性变换,如:对隐层变量使用按元素运算的非线...原创 2019-08-14 18:43:00 · 409 阅读 · 0 评论 -
python中package使用的几个点子
1、一个python的package文件夹中__init__.py 文件是在引用该包时,首先运行的一个文件。正常情况下,我们没有对它进行编辑时,默认为空。2、utils.py 文件中存储一些常见的公用的函数、方法。项目不同,里面内容也不一定相同。在调用时,可直接用 “from utils import 函数名” 即可。但有时候公用的函数过多,一个py文件最多放上400~500行的话,一...原创 2019-07-17 09:41:51 · 452 阅读 · 0 评论 -
python抽取pdf中内容
这两天一直在windows上做用python(版本是3.6)抽取pdf中内容的东西,主要就是从pdf中提取出里面的字体和表格内容。尝试了好些个库,现在算是找到比较符合我需求(比较好用)的pdf解析的了。在这个过程中,用了以下几个库: PDFminer PDFminer算是一个还算不错的吧,安装直接用pip安装就行。如下: pip install pdfminer3k ...原创 2019-07-02 19:01:08 · 1761 阅读 · 0 评论 -
机器学习——数据归一化
机器学习中,在数据预处理过程中,通过将数据归一化可以加快梯度下降求最优解的速度,也有可能提高模型计算的精度。常用的归一化方法主要有两种:最值归一化。比如把最大值归一化成1,最小值归一化成-1;或把最大值归一化成1,最小值归一化成0。适用于本来就分布在有限范围内的数据。 其中常用的方法有 线性比例变换法:yi = xi/max(x) 即归一化后结果等于未处理前值除以样本中最大值 ...原创 2019-06-11 10:43:59 · 1095 阅读 · 0 评论