8-Puzzle-Moving-Game (3×3)

from random import *
import time
MagicSquare=[[” “,1,2],
[3,4,5],
[6,7,8]]

for i in range(100):
R1=randint(0,2)
C1=randint(0,2)
R2=randint(0,2)
C2=randint(0,2)
MagicSquare[R1][C1],MagicSquare[R2][C2]=MagicSquare[R2][C2],MagicSquare[R1][C1]

def FindingSquare(Obj):
for i in range(3):
read more

算法工程师面试必备

  1. 成为算法工程师,应该学习哪些东西
    1. 首先说算法工程师有几个方向:NLP,推荐,CV,深度学习,然后结合公司业务做得内容各不相同
    2. 传统机器学习算法:感知机,SVM,LR,softmax,Kmeans,DBSCAN,决策树(CART,ID3,C45),GBDT,RF,Adaboost,xgboost,EM,BP神经网络,朴素贝叶斯,LDA,PCA,核函数,最大熵等
    3. 深度学习:CNN,RNN,LSTM,常用激活函数,Adam等优化算法,梯度消失(爆炸)等
    4. 推荐系统:itemBasedCF,userBasedCF,冷启动,SVD(各种变形),FM,LFM等
    5. NLP:TF-IDF,textrank,word2vec(能推导,看过源码),LCA,simhash
    6. 常见概念:最大似然估计,最小二乘法,模型融合方法,L1L2正则(Lasso,elestic
read more

python自动化工具之pywinauto

最近在看一个学习视频,视频是用屏幕录像大师录的,保存成exe格式。虽然也能播放,但是比较麻烦,只能在window平台播放,自带的播放器不能进行快进变速等。于是想把exe转成mp4等主流的视频格式。幸运的是,屏幕录像专家自带转换的功能。具体步骤可参考百度经验 EXE视频如何直接转换为MP4.
由于是一系列视频,每个视频都得这么导一次,很是麻烦,而且是重复操作。想到看能不能使用python脚本来模拟这一系列操作。

win32*模块

因为之前使用win32* 模块模拟人工操作,见之前写的两篇文章python使用win32*模块模拟人工操作——城通网盘下载器(零) , python使用win32*模块模拟人工操作——城通网盘下载器(一).
所以首先想到的是使用win32*模块进行模拟操作。
但是,事情不会总是一帆风顺。首先第一步(从主程序的菜单栏中调出EXE转MP4插件)就遇到了问题。如下图所示。
这里写图片描述
使用Spy++查看了一下,如图所示,发现菜单栏并不属于主窗体底下的子窗体,而状态栏、工具栏都属于主窗体的子窗体。
这里写图片描述

窗口的菜单就像窗口的标题栏一样,是窗口自身的一部分,不是其他窗体控件,也就没有办法用FindWindow和FindWindowEx返回句柄。所以要对菜单进行操作的话,我们需要新的函数,也就是GetMenu,GetSubMenu和GetMenuItemID,它们也都属于win32gui模块。
这些函数的具体用法可以参考 橘子一方的博客
如何利用Python和win32编程避免重复性体力劳动(二)——菜单操作:GetMenu,GetSubMenu,GetMenuItemID以及wParam的HIWORD&LOWORD
使用这些函数试了一下,发现效果并不好,可能是对window本身运行机制理解的不够深;另一方面可能是这方面的文档不多;还有就是这个模块已经停止更新好久了,坑没人填。

pywinauto

答案总比问题多。无意中搜到了这个人的网页Python AHK – Python automation package – Automation made simple
文中提到:

win32gui
I use win32gui for simple window handling such as moving and resizing. I personally prefer win32gui for
read more

Python结合Pywinauto 进行 Windows UI 自动化

说明:

Pywinauto是基于Python开发的,用于自动化测试的脚本模块,主要操作于Windows标准图形界面。它可以允许你很容易的发送鼠标、键盘动作给Windows的对话框和控件。
其中,最主要功能为对windows标准控件的一系列动作可编程处理。包括对窗口的指定、鼠标或键盘操作、获得控件属性等等。程序的开始为对所需应用的启 动或连接。获得程序连接后,pywinauto通过窗口的名称、类名、是否可见等属性寻找匹配的窗口,进而通过类似方法寻找用户所需的控件,并获得相应的 句柄。之后,用户可通过易理解的编程方式对指定控件进行相关操作的编程,包括鼠标点击、键盘输入、判断控件间关系、获取控件属性等。

文档参考:

pywinauto 0.5.4 documentation
Windows GUI Automation with Python
pywinauto官网,带Demo example
在中文windows下使用pywinauto进行窗口操作
用pywinauto进行win32应用程序的测试

举个例子

#! /usr/bin/env python
#coding=GB18030

'''
FuncName: johnny-pywinauto.py
Desc: study pywinauto
Date: 2016-10-10 14:30
Author: johnny
Home:http://blog.csdn.net/z_johnny
'''

read more

PyAutoGUI-python版的autoit/AHK

简单介绍各个图形界面自动操作的python库,类似按键精灵\autoit\ahk(autohotkey)等等这些自动化工具。这类python库不是只是用来实现自动游戏之类的程序,业界也用这些库来做GUI 自动化测试。

read more

PyAutoGUI——让所有GUI都自动化

PyAutoGUI——让所有GUI都自动化

PyAutoGUI项目,Python自动化工具,更适合处理GUI任务

输入中文bug没有解决,目前的解决方案是Python 2.X环境下安装pyperclip和pyautogui,用复制粘贴来实现。

In [ ]:
import pyperclip
import pyautogui

#  PyAutoGUI中文输入需要用粘贴实现
#  Python 2版本的pyperclip提供中文复制
def paste(foo):
    pyperclip.copy(foo)
    pyautogui.hotkey('ctrl', 'v')

foo = u'学而时习之'
#  移动到文本框
pyautogui.click(130,30)
paste(foo)

1.简介

1.1 目的

PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以用程序自动控制鼠标和键盘操作,多平台支持(Windows,OS X,Linux)。可以用pip安装,Github上有源代码

下面的代码让鼠标移到屏幕中央。

In [ ]:

import
read more

WingIDE更好用

毫无疑问是wingide,称得上商业软件的质量。从Java线上过来的可能会选用Eclipse+pyenv及pycharm,但是两者都太笨重了,光启动就等半天。从C++线上过来特别是对VStudio熟悉的,使用wingide绝对感觉舒服。随便玩玩或者是小项目,idle、vim和sublime就对付了。但是如果真得用python做项目,wingide是不二选择,除了代码补全、高亮显示等编辑功能都具备之外,主要是调试功能太好用了,同时支持git等版本管理,也能跨平台。
read more

Pascal, C, C++语言

Pascal语言:

Pascal是一种计算机通用的高级程序设计语言,由瑞士Niklaus Wirth教授六十年代末设计并创立的。

Pascal的主要特点有:严格的结构化形式、丰富完备的数据类型、运行效率高、查错能力强等特点。

由于上述特点,Pascal可以方便用于描述各种算法和数据结构。对于程序设计的初学者,Pascal语言有益于培养良好的程序设计风格和习惯。IOI(国际奥林匹克信息学竞赛)把Pascal语言作为三种程序设计语言之一。NOI(全国奥林匹克信息学竞赛)把Pascal语言定为唯一提倡的程序设计语言,在大学中Pascal语言也常常被用作学习数据结构与算法的数学语言。 read more