def

厉害了,用Python实现自动扫雷!

回眸只為那壹抹淺笑 提交于 2020-11-18 18:50:58
微信改版,加星标不迷路! 转载自博客圆:chestnut_egg 自动扫雷一般分为两种,一种是读取内存数据,而另一种是通过分析图片获得数据,并通过模拟鼠标操作,这里我用的是第二种方式。 一、准备工作 1、扫雷游戏 我是win10,没有默认的扫雷,所以去扫雷网下载 http://www.saolei.net/BBS/ 2、python 3 我的版本是 python 3.6.1 3、python的第三方库 win32api,win32gui,win32con,Pillow,numpy,opencv 可通过 pip install —upgrade SomePackage 来进行安装 注意:有的版本是下载pywin32,但是有的要把pywin32升级到最高并自动下载了pypiwin32,具体情况每个python版本可能都略有不同 我给出我的第三方库和版本仅供参考 二、关键代码组成 1、找到游戏窗口与坐标 #扫雷游戏窗口 class_name = "TMain" title_name = "Minesweeper Arbiter " hwnd = win32gui.FindWindow(class_name, title_name) #窗口坐标 left = 0 top = 0 right = 0 bottom = 0 if hwnd: print ( "找到窗口" ) left ,

自动扫雷 python

岁酱吖の 提交于 2020-11-18 18:26:00
自动扫雷一般分为两种,一种是读取内存数据,而另一种是通过分析图片获得数据,并通过模拟鼠标操作,这里我用的是第二种方式。 // 2018.8.10更新 代码已上传至GitHub https://github.com/chestnut-egg/GoMine 一、准备工作 1.扫雷游戏 我是win10,没有默认的扫雷,所以去扫雷网下载 http: // www.saolei.net/BBS/ 2.python 3 我的版本是 python 3.6.1 3.python的第三方库 win32api,win32gui,win32con,Pillow,numpy,opencv 可通过 pip install --upgrade SomePackage 来进行安装 注意: 有的版本是下载pywin32,但是有的要把pywin32升级到最高并自动下载了pypiwin32,具体情况每个python版本可能都略有不同 我给出我的第三方库和版本仅供参考 二、关键代码组成 1.找到游戏窗口与坐标 #扫雷游戏窗口 class_name = " TMain " title_name = " Minesweeper Arbiter " hwnd = win32gui.FindWindow(class_name, title_name) #窗口坐标 left = 0 top = 0 right = 0

利用深度学习来预测股票价格变动

拟墨画扇 提交于 2020-11-18 06:36:51
https://www.toutiao.com/i6644852565341110791/ 利用深度学习来预测股票价格变动(长文,建议收藏) 原创 不靠谱的猫 2019-01-10 21:01:39 完整架构概述 在这篇文章中,我将创建一个预测股票价格变动的完整过程。我们将使用生成对抗网络(GAN)与LSTM(一种循环神经网络)作为生成器,使用卷积神经网络CNN作为鉴别器。我们使用LSTM的原因很明显,我们正在尝试预测时间序列数据。为什么我们使用GAN,特别是卷积神经网络(CNN)作为鉴别器呢?这是一个很好的问题:稍后会有特别的部分。 当然,我们将详细介绍每个步骤,但最困难的部分是GAN:成功训练GAN的非常棘手的部分是获得正确的超参数集。出于这个原因,我们将使用贝叶斯优化(还有高斯过程)和深度强化学习(DRL)来决定何时以及如何改变GAN的超参数。在创建强化学习时,我将使用该领域的最新进展,例如Rainbow和PPO。 我们将使用许多不同类型的输入数据。除了股票的历史交易数据和技术指标,我们将使用NLP的最新进展(使用“BERT,对NLP进行迁移学习)来创建情感分析(作为基本面分析的来源) ),用于提取整体趋势方向的傅里叶变换,用于识别其他高级特征的栈式自动编码器,用于查找相关资产的特征投资组合,差分整合移动平均自回归模型(ARIMA))对于股票函数近似

Python3入门(十)——调试与测试

拟墨画扇 提交于 2020-11-18 03:54:09
一、异常处理    1.try...except...finally...      这个也就是Java里的try...cath..finally...了,直接看经典代码: try : print ( " 开始执行try... " ) s = 1 / 0 print ( " 计算结果是%s " % s) except ZeroDivisionError as e: print ( " 异常为: " , e) finally : print ( " 执行finally... " ) print ( " END... " )      处理结果和意料是一样的: 开始执行try... 异常为: division by zero 执行finally... END...      同样,可以并列捕捉多个异常:(此外在except后还可以接else:来处理没有异常) except ValueError as e: print ( ' ValueError: ' , e) except ZeroDivisionError as e: print ( ' ZeroDivisionError: ' , e)      当然,以上的异常都是继承自 BaseException (也就是Java的Exception啦.)    Python也不像Java一样,有时候强迫你去在出异常的地方捕获或抛出

Python学习日记(二十四) 继承

99封情书 提交于 2020-11-18 02:56:00
继承 什么是继承?就是一个派生类(derived class)继承基类(base class)的字段和方法。一个类可以被多个类继承;在python中,一个类可以继承多个类。 父类可以称为基类和超类,而子类可以称为派生类 在继承中可分为单继承和多继承两种 下面是继承的用法,语法为'class 子类的名字(父类名):' class Plane: # 定义一个所有战机的父类 def __init__ (self,name,speed,hp,atk): self.name = name self.speed = speed self.hp = hp self.atk = atk class Fighter(Plane): # 定义一个Fighter类 它继承的是Plane类 def __init__ (self,name,speed,hp,atk,money): self.name = name self.speed = speed self.hp = hp self.atk = atk self.money = money def Attack(self,enemyFighter): enemyFighter.hp -= self.atk class EnemyFighter(Plane): # 定义一个EnemyFighter类 它继承的是Plane类 def __init__

python 返回实例对象个数

对着背影说爱祢 提交于 2020-11-17 09:07:49
python 返回实例对象个数 Python 没有提供任何内部机制来跟踪一个类有多少个实例被创建了,或者记录这些实例是些什 么东西。如果需要这些功能,你可以显式加入一些代码到类定义或者 __init__()和__del__( )中去。 最好的方式是使用一个 静态成员 来记录实例的个数。靠保存它们的引用来跟踪实例对象是很危险的, 因为你必须合理管理这些引用,不然,你的引用可能没办法释放(因为还有其它的引用) ! class InstCt (object): count = 0 def __init__ (self): InstCt . count += 1 #千万不能用self.count + =1,因为这样统计的只是单个实例对象的 def __del__ (self): InstCt . count -= 1 def howMany(self): print ( InstCt . count ) return InstCt . count a = InstCt() a.howMany() # 输出:1 b = InstCt() b.howMany() # 输出:2 c = InstCt() c.howMany() # 输出:3 a.howMany() # 输出:3 b.howMany() # 输出:3 c.howMany() # 输出:3 print ( ' ===========

7.关于内存你需要了解的(二)

坚强是说给别人听的谎言 提交于 2020-11-17 03:39:14
上一篇主要围绕内存的相关概念和特性做了阐述,这篇主要对内存的物理结构和特性进行描述。 内存物理结构 内存如何存取数据 1.内存物理结构 内存条主要由 存储颗粒、各种控制元器件、金手指 组成,而其中 最重要的就是内存的存储颗粒 。内存颗粒部件目前主要由外国厂商控制,虽然我们的国产颗粒也在奋起直追,但与国外大厂的差距还是挺大的,比较欣慰的是国产光威系列似乎评价还不错。 先来看一下内存条长什么样。上图就是内存条, 内存颗粒就是上图中这些黑色的方块 ,这些方块里面大有洞天。我们将它放大看一下: 每个内存颗粒里面是有多层存储颗粒 ,这里是 8 层, 每一层称为一个 bank 。把这 8 个 bank 叠在一起就是一颗存储芯片 chip 。每个 bank 是一个存储阵列,长得四四方方的,形状是一个矩形,上面是一个个的 存储单元 Cell 。bank 上面的这些存储单元会划分为行和列,所以 bank 可以 利用行和列唯一定位到一个存储单元 cell 上。上图描述的每个内存颗粒的大小为 128MB,颗粒里面每个 bank 是 16 MB,每个 cell 的大小为 1 byte(字节,8 bits)。通常来讲, 一个 cell 的大小也是 1 byte 。 我们看到上面的内存条有 8 个内存颗粒,但有些内存条会有 9 个内存颗粒,多出来那个是用来做 ECC 校验的(用来保证内存的数据是正确的

6.1 数据结构---树(遍历)

孤街醉人 提交于 2020-11-16 07:06:28
一、树的定义 1.定义 树 是n(n>=0)个节点的有限集,且这些节点满足如下关系: (1)有且仅有一个节点没有父节点,该节点称为树的根; (2)除根外,其余的每个节点都有且仅有一个父节点; (3)树中的每一个节点都构成一个以它为根的树。 二叉树 在满足树的条件时,满足如下条件:每个节点最多有两个孩子(子树),这两个子树有左右之分,次序不可颠倒。 2.树的遍历 二、先序遍历 1.先序遍历 递归 class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None class Solution: def preorderTraversal(self,root): ''' 递归,时间复杂度O(n),空间复杂度平均O(logn),最坏情况下O(n) :param root: :return: ''' if root: print(root.val) else: return self.preorderTraversal(root.left) self.preorderTraversal(root.right) 非递归: 时间复杂度O(n),空间复杂度O(n) 思路: 1)申请一个新的栈,把头结点压入栈中 2)从栈中弹出栈顶节点,记为node,然后打印node节点的值

FFT快速傅里叶变换算法

◇◆丶佛笑我妖孽 提交于 2020-11-16 04:57:42
1、FFT算法概要: FFT(Fast Fourier Transformation)是离散傅氏变换(DFT)的快速算法。即为快速傅氏变换。它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。 2、FFT算法原理: 离散傅里叶变换DFT公式: FFT算法(Butterfly算法) 设x(n)为N项的 复数 序列,由DFT变换,任一X(m)的计算都需要N次复数乘法和N-1次复数加法,而一次复数乘法等于四次 实数 乘法和两次实数加法,一次复数加法等于两次实数加法,即使把一次复数乘法和一次复数加法定义成一次“运算”(四次实数乘法和四次实数加法),那么求出N项复数序列的X(m),即N点DFT变换大约就需要N^2次运算。当N=1024点甚至更多的时候,需要N 2=1048576次运算,在FFT中,利用WN的周期性和对称性,把一个N项序列(设N=2k,k为正整数),分为两个N/2项的子序列,每个N/2点DFT变换需要(N/2) 2次运算,再用N次运算把两个N/2点的DFT变换组合成一个N点的DFT变换。这样变换以后,总的运算次数就变成N+2*(N/2)^2=N+(N^2)/2。继续上面的例子,N=1024时,总的运算次数就变成了525312次,节省了大约50%的运算量。而如果我们将这种“一分为二”的思想不断进行下去,直到分成两两一组的DFT运算单元

Python 魔术方法

给你一囗甜甜゛ 提交于 2020-11-16 00:36:02
Python解释器碰到特殊句法时,会使用魔术方法去激活一些基本的对象操作,这些特殊方法的名字以两个下划线开头,以两个下划线结尾   - 举例:obj[key]背后就是__getitem__方法   - 没有实现__getitem__方法,无法使用[]获取类中的dict 1 class A: 2 adict = dict(one=1,two=2 ) 3 4 a = A() 5 print (a[ ' one ' ]) 6 print (a[ ' two ' ]) 输出: TypeError: 'A' object is not subscriptable   - 实现__getitem__方法后,可以使用[] class A: adict = dict(one=1,two=2 ) def __getitem__ (self, item): return A.adict[item] a = A() print (a[ ' one ' ]) print (a[ ' two ' ]) 输出: 1 2   - 一个纸牌类的例子,用来说明__len__和__getitem__的作用     - 实现了这两个方法,可以用于获得长度,用[]访问数据,甚至切片和循环 import collections ''' collections.namedtuple:用于构建一个只有属性没有方法的简单类 参数