ysbbs

Let's start BB !


  • 首页

  • 归档

  • 关于

  • 标签

上手优雅的pycharm

发表于 2017-06-16 | | 阅读次数

本博客采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本博客文章必须也遵循署名-非商业用途-保持一致的创作共用协议.

初试pycharm

之前没有使用pycharm作为我Python开发学习的IDLE多是因为整个软件太过庞大,
光启动界面就给我一种photoshop启动的错觉,有种分分钟吃掉我内存的感觉…
而且大部分的功能在初学者看来是暂时用不上的,开发个小程序的话真有种杀鸡用牛刀的感觉,
sublime text编辑器作为Python的IDLE用着也是轻盈舒服,
但最近开始Python—>web路的我需要一款功能齐全的工具,
俗话说的好,工欲善其事必先利其器,
pycharm口碑一直不错,今天上手一探,果真体贴细致,功能齐全。
虽然与轻盈的sublime text编辑器配置成的Python IDLE 相比,pycharm确实是一款“厚重”的IDLE,
但上手后它的“厚重”丝毫掩盖不了它的优秀之处,
它几乎提供了你在Python开发的时候需要用到的所有工具,
断点调试,终端,Python console,版本控制器、database…
而且绝大多数在其他IDLE上要个性化配置的功能pycharm都已经为用户设置好,
不需要怎么配置就可以直接上手,
我在使用优雅的pycharm时候,只是修改了主题和字体大小,在探索中发现他已经拥有了我想配置的功能:PEP8代码风格检测、格式化代码、自动保存、语法高亮、智能补齐…
功能真的是太多,太详尽了。

阅读全文 »

Life is the loop?

发表于 2017-06-13 | | 阅读次数

忙里偷闲看完了《西部世界》,key word莫过于是loop,
被制造出来的人毫无自由可言,即使是哪怕最后的逃脱,反抗,也无非是给其传递的指令引导着他们去做。
我最近的生活毫无精彩可说,从实验室去厕所的小段路上真的是突然的彷徨,
我仿佛被困在自己的loop里,不停的经历着设定好的suffering,emotion,even character
以前听过一句话,大概意思是当一个人活得足够透彻,足够明白,大彻大悟者,一般都活出哲学境界了,世间一切,都是虚无了。
想一想,人终究会问一句那么有哲学意味的话,我从哪里来,到哪里去?
在世间我们不断追求浮云,但从未想过追求的目的是什么。
生老病死,吃喝拉撒,恋爱,结婚,生子,循规蹈矩和不得不循规蹈矩。

fuck。

起床,吃饭,去实验室,学习,吃饭,睡觉,吃饭,学习,睡觉..
每天总觉得自己什么都没干,在学习,但又觉得自己什么都没做什么都没学到,碌碌无为让每天的感觉都像一个又一个的loop,唯一的区别是,故事并不能重来,人生也无法回退,
我现在有种难以言表的复杂心情。

荒漠上骑着马的年轻人很急躁,很崩溃,很害怕的心情一直萦绕,
这是一个马上要去西部最未知的地方开始闯荡新生活的牛仔,
他心里明白,去的地方多么险恶,多么困难,
自己涉世未深,连拔枪的技巧都未完全掌握,
拙劣的自己失去了家乡,想活下去只有不断的历练自己,
牛仔早已没有回头的路,
他出发的那个地方已经开始腐败,混乱
只有去那未知的地方靠自己的能力闯出来的未来,
闯出的新生活才是属于自己的。

If we escape,we escape.

巧妙设置hosts实现翻墙

发表于 2017-06-01 | | 阅读次数

国内的GFW有时候太过严格(恶心),导致一些学术开发用站都登录不了,连chrome都不能愉快的完善了,大多数土豪都办了VPN套餐,但基本的学习生产环境的翻墙,只需要设置好hosts文件就可以了。

一个好的hosts文件,可以满足且不仅限于以下网站的连接各使用:

Google、谷歌学术、维基百科、ccFox.info、ProjectH、Battle.NET 、WordPress、Microsoft Live、GitHub、Amazon、Archive、Box.com、Disqus、SoundCloud、inoreader、Feedly、FlipBoard、Twitter、Tumblr、Facebook、Flickr、imgur、Instagram、DuckDuckGo、Ixquick、Yahoo、Google Services、Google apis、Android、Youtube、Google Drive、UpLoad、Appspot、Googl eusercontent、Gstatic、Gmail、Google other、Google Play等

下载hosts

国内提供稳定完整的hosts的网站有很多,

我推荐个老D,提供一个傻瓜式一站服务(运行批处理时记得右键用管理员身份运行)

hosts下载地址

百度网盘提取码:laod 解压密码:laod.cn

里面包含Windows & Mac 、Android & Linux请对号入座。
另外windows可以直接运行批处理命令,hosts会自动替换(如果无法自动替换,请用管理员身份权限手动修改)
注意:批处理命令会直接覆盖现有hosts,如现有hosts内容重要的话请备份后再使用,或者手动修改!
所提供的hosts仅限于学习使用!hosts里不会添加屏蔽广告条目,也不会劫持任何网站。

注意:
Google、Gmail、维基百科、Twitter、Facebook等必须请用https加密方式打开。
一般这些网站都是SSL加密链接,如:

谷歌学术:https://scholar.google.com/
谷歌:https://www.google.com/ncr
谷歌香港:https://www.google.com.hk/ncr
Twitter:https://twitter.com/?lang=zh-cn

另外可能有的地区&网络(铁通、联通)hosts无法正常使用,这个不是你我能左右的!
建议不要使用国产浏览器,国产软件也是,特别是360,因为国产浏览器即使你使用https
它也会强制你使用默认http,还有就是会上传用户数据,尽可能使用Chrome
下载&修改hosts安全软件可能会“报毒”(误报)你可以暂时退出或者添加信任即可!

修改hosts后生效方法:

  • 通用方法

    重启或者拔网线(断网) -> 插网线(重新连接网络)

  • 如不行请清空浏览器缓存(老D建议不要使用国产浏览器,请使用谷歌Chrome浏览器)

干脆就重启一下吧,谁让重启大法好呢~

细谈P问题、NP问题和NPC问题

发表于 2017-05-25 | | 阅读次数

算法中的时间复杂度和P问题、NP问题和NPC问题

摘自Matrix67
有删改,便于理解。

时间复杂度

还是先用几句话简单说明一下时间复杂度。
时间复杂度并不是表示一个程序解决问题需要花多少时间,而是当问题规模扩大后,程序需要的时间长度增长得有多快。
也就是说,对于高速处理数据的计算机来说,处理某一个特定数据的效率不能衡量一个程序的好坏,而应该看当这个数据的规模变大到数百倍后,程序运行时间是否还是一样,或者也跟着慢了数百倍,或者变慢了数万倍。
不管数据有多大,程序处理花的时间始终是那么多的,我们就说这个程序很好,具有O(1)的时间复杂度,也称常数级复杂度;
数据规模变得有多大,花的时间也跟着变得有多长,这个程序的时间复杂度就是O(n),比如找n个数中的最大值;
而像冒泡排序、插入排序等,数据扩大2倍,时间变慢4倍的,属于O(n^2)的复杂度。
还有一些穷举类的算法,所需时间长度成几何阶数上涨,这就是O(a^n)的指数级复杂度,甚至O(n!)的阶乘级复杂度。
不会存在O(2*n^2)的复杂度,因为前面的那个“2”是系数,根本不会影响到整个程序的时间增长。
同样地,O (n^3+n^2)的复杂度也就是O(n^3)的复杂度。
因此,我们会说,一个O(0.01*n^3)的程序的效率比O(100*n^2)的效率低,尽管在n很小的时候,前者优于后者,但后者时间随数据规模增长得慢,最终O(n^3)的复杂度将远远超过O(n^2)。
我们也说,O(n^100)的复杂度小于O(1.01^n)的复杂度。
容易看出,前面的几类复杂度被分为两种级别,其中后者的复杂度无论如何都远远大于前者:
一种是O(1),O(log(n)),O(n^a)等,我们把它叫做多项式级的复杂度,因为它的规模n出现在底数的位置;
另一种是O(a^n)和O(n!)型复杂度,它是非多项式级的,其复杂度计算机往往不能承受。
当我们在解决一个问题时,我们选择的算法通常都需要是多项式级的复杂度,非多项式级的复杂度需要的时间太多,往往会超时,除非是数据规模非常小。

P问题、NP问题和NPC问题

自然地,人们会想到一个问题:会不会所有的问题都可以找到复杂度为多项式级的算法呢?很遗憾,答案是否定的。有些问题甚至根本不可能找到一个正确的算法来,这称之为“不可解问题”(Undecidable Decision Problem)。
比如,输出从1到n这n个数的全排列。不管你用什么方法,你的复杂度都是阶乘级,因为你总得用阶乘级的时间打印出结果来。有人说,这样的“问题”不是一个“正规”的问题,正规的问题是让程序解决一个问题,输出一个“YES”或“NO”(这被称为判定性问题),或者一个什么什么的最优值(这被称为最优化问题)。
那么,根据这个定义,我也能举出一个不大可能会有多项式级算法的问题来:Hamilton回路。
问题是这样的:给你一个图,问你能否找到一条经过每个顶点一次且恰好一次(不遗漏也不重复)最后又走回来的路(满足这个条件的路径叫做Hamilton回路)。
这个问题现在还没有找到多项式级的算法。
事实上,这个问题就是我们后面要说的NPC问题。

下面引入P类问题的概念:

阅读全文 »

回忆起所谓的小时候

发表于 2017-05-20 | | 阅读次数

歌能把人带进回忆,然后沉浸,听这个歌回到初中时期那个年代,那时候每个电视台几乎都在播放着魔女幼熙这部韩剧,就即使以现在的审美来看,都是一部好看的电视剧,一部电视剧就可以消费掉一个暑假,所有空闲的时间,可以一遍又一遍的看,少剧情都没关系,几乎过几天你可以在另外一个频道上在续上剧情。

现在想想那时候真是无忧无虑的时光,一切都可以那么慢,仿佛时间是取之不尽的东西,每个人都不会那么匆匆忙忙的去做一件事情。

那个时候的生活更像是一种消遣,上课总能找到事情做,学习仿佛也是顺带的事情,跑去打个电子游戏都能激动开心好久,放学是看各种故事书,漫画书,看电视,看动画片,那时候偶尔去网吧,那种脏乱差的黑网吧,位置脏兮兮的,电脑破破的,足以了,玩真三。去网吧我几乎只玩真三的,和朋友开黑对战才是游戏的最大乐趣所在嘛,那时候扯着嗓子互相喊,即使带着耳机都能清楚的听到,对方声音。

打真三的时候我喜欢单曲循环As long as you love me,几乎又是我另一个回忆。

从那里开始,太多太多故事要说了…

然后我们就长大了,进入浮躁的社会,无一例外的变成当初自己恶心的那一类人了,

不自觉开始追求起物质一类的东西,

都不晓得自己活着是做什么,

而现在的每个成功人士,都是先获得很高的商业成功,才告诉我们,要实现自己的社会价值,不要白活了。

几乎每个人都被这种现实折磨着。

哪怕是想带着年轻的幼稚反抗一下社会的不公的人,都被不公给抹掉了。

时常说,我们活在最好的年代,也是最坏的年代,无论如何也是变数最大的年代,

最起码,我们还活着。

还可以试着,能不能选择,活出自我。

而不是,被生活逼着,作出选择。

python3实现完整的国内股票市场爬虫程序

发表于 2017-05-20 | | 阅读次数

本博客采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本博客文章必须也遵循署名-非商业用途-保持一致的创作共用协议.

Yo!stock

这是一个国内股票爬虫程序,利用新浪股票数据接口,和证券之星分类市场爬取国内证券市场的股票信息。

完成基本的股票信息爬取,存储,和数据处理,每个模块完成相应的内容,并写了完整的Tk界面。
程序使用python3.5,mysql5.6数据库。

使用到beautifulsoup、pymysql、pandas等第三方库。

功能分为六部分,mysqlstockui.py为界面程序(也是主程序),其它五个分别为五个小程序模块,最后import到ui界面程序中完成全部程序。

其它几个程序分别为:ui、getstockvalue、getallrank、selectinsql、getallstock、pandasuse下面将分别介绍各模块功能和实现方法。

主程序main.py

界面ui.py

功能简介:是用python内置的tkinter编写的界面,用来调用其它程序函数,并将各返回值传入UI界面上显示出来。

在线获取股票信息getstockvalue.py

功能简介:程序getstockvalue.py实现功能是在用户输入股票代码后,自动相应的新浪股票信息链接,并在线爬取新浪股票的股票实时信息和股票的日线K线图,股票数据作为返回值返回,股票K线图下载到根目录

在线获取股票榜单getallrank.py

功能简介:程序getallrank.py实现功能是通过证券之星网站,爬取网站上在线的股票榜单,并格式化数据后返回,每个函数对应一个股票市场,运用到BeautifulSoup的库,用标签去解析网页源码,比用正则表达式更加简练方便

爬取全部股票并存入数据库getallstock.py

功能简介:程序getallstock.py实现功能是爬取证券之星网站上的股票市场上的股票数据,解析好格式并存入mysql数据库,数据表单依据用户操作系统日期动态创建,可实现不断刷新股票信息功能,当日股票数据可反复更新,全部股票按照A股、B股、中小板、存在当日三个不同表单中,为后面自定义查询做好分类工作

数据库查询股票数据selectinsql.py

功能简介:程序selectinsql.py实现功能是从任意历史数据库中查询股票信息,可以满足用户去查询历史上某一天的股票价格信息,输入一个日期,和一个股票代码,程序会从mysql里找到当日三个市场表单进行查询,如果没有当日数据库,返回提示,如果没有对应股票信息,返回提示,查询到股票信息,返回格式化好的股票信息

用户自定义排序pandasuse.py

功能简介:程序pandasuse.py实现功能是从任意历史数据库中获取当日股票市场的所有股票信息,进行自定义排序。用到了第三方库pandas,第一步通过判断用户输入的历史日期,将指定日期数据从mysql中取出传入给pandas,第二步将数据库的char型数据整改成float型,第三步,然后根据传入参数对关键数据进行排序,最后将数据以表单形式返回

yo!stock源码入口
欢迎各路小伙伴一起来改进代码~

Win7下配置安装mysql

发表于 2017-04-23 | | 阅读次数

几乎每一次在windows下配置开发环境都需要写一篇文来记录,
是因为在Linux下很简单的安装,到windows下就会成抹黑前进,踩坑前行。
虽然做开发用Linux很方便,但我那台装Linux的笔记本这几天要闹罢工,卡的飞起,
而且笔记本的屏幕赶不上我实验室这台超大屏幕的台机看着舒服,
就该忍着,或者学习在windows下配置开发环境,或者学习适应,
而且听说目前很多公司还是在windows下做开发的,要提前适应,
毕竟,linus都夸过MS的soft,我岂敢造次?

下面就详细介绍Win7下配置安装mysql全过程把~

下载mysql

最新版是大坑(5.7开始配置文件路径不同,而且会莫名其妙的找不到它,会隐藏会消失会变化),.msi安装文件是大坑(用zip解压好了,个人感觉用msi没必要。)
所以推荐下载.zip的面安装压缩包的5.6版本。
官方地址:https://dev.mysql.com/downloads/mysql/
非常不推荐安装最新版,一般遇到坑,能找的资料都很少,
可以点击Looking for previous GA versions?找到之前稳定版本
我是64位的系统,所以选择Windows (x86, 64-bit), ZIP Archive下载
推荐用迅雷下载,
chrome的下载器下载简直龟速

安装mysql

解压

找到下载好的Windows (x86, 64-bit), ZIP Archive,喜欢解压到哪里就在哪里,比.msi好太多了。

配置文件

在mysql-x.x.xx-winx64目录下,新建个my.ini。复制下面的代码保存就ok了。
my.ini会替换掉下面的my-default.ini文件。.ini文件是window里面的配置文件。保存里面各种默认的数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\mysql\mysql-5.6.17-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql\mysql-5.6.17-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

安装服务

要右键cmd以管理员的身份运行,
cd到你的解压目录的bin目录,再输入mysqld install回车运行就行了,注意是是mysqld,不是mysql。

启动服务

接着就是在输入 net start mysql 启动服务。

登录mysql

cmd中,还是将目录切换到..\mysql-x.x.xx-winx64\bin(解压目录下的bin目录)
输入mysql -u root -p ,默认是没有密码的。回车进入。

初次登录mysql修改密码

cmd中:
.mysqladmin -u root -p password 123456,
这里说明123456是你新设置的密码,可以根据需要设置自己的密码
设置新密码时候会让你输入旧密码,
MySQL 初次装时密码为空 ,直接按回车就可以。
你的密码就设置成功。
登录:
输入mysql -u root -p ,输入密码。回车进入。

Xshell远程登录Linux配置小记

发表于 2017-04-21 | | 阅读次数

之前就有想法把旧本本作为Linux工作,远程使用Xshell进行登录,
这样有什么小的调试在实验室远程登录,无论是文件读取还是跑程序都方便的多。
过程分两步,
一、先在Linux(Ubuntu)上配置ssh服务
二、在windows上安装Xmannager登录

Linux配置ssh服务

安装ssh-server

Ubuntu下安装在终端使用下列命令进行安装:
sudo apt-get install openssh-client
sudo apt-get install openssh-server
Ubuntu16.04 已经安装好了openssh-client,只需要再安装openssh-server

启动ssh-server

接下来我们来启动ssh服务,执行以下命令:
sudo /etc/init.d/ssh start
系统显示:
[ ok ] Starting ssh (via systemctl): ssh.service.
说明已经启动了SSH服务。
如果你想停止ssh服务,则执行以下命令即可:
sudo /etc/init.d/ssh stop

查看本机IP

命令:
ifconfig
可以查看Linux的IP地址,这个IP地址作为远程的登录地址

(ps:网络上ssh的配置多提到了config文件配置,关于是否开启root权限登录和不需要密码的什么,我查看了一下默认配置,基本不用动,除非有特殊要求,可以自行前往配置ssh的配置文件。)

Windows端配置登录

安装Xmanager

Xmanager全套工具包含xshell,如果只装xshell的话会导致远程连接Linux后无法运行有界面的程序,会报错。
下载安装Xmanager-v5.0.
链接:http://pan.baidu.com/s/1hsIFeAg 密码:t925

配置Xshell

安装完毕打开xshell,第一次打开默认让你新建会话连接,如果没有的话也可以手动选择“新建”,
名称为你要创建连接的昵称,
主机为你的Linux的IP地址
协议SSH
端口默认22

在右侧 SSH-隧道(tunneling)
将:
-[x] Forward X11 connection to :
-[x] Xmanager
勾选
(这个是让Xshell通过Xmanager运行有界面程序)

点击确认,创建好会话。

远程登录

点击创建好的会话,点连接,会让你输入登录账户和密码,
账户和密码为你Linux下的用户名和密码。

不出意外,你就登录进你的Linux啦,
试着打开Linux下的Firefox吧~

Python优雅的生成不那么优雅的EXE

发表于 2017-04-20 | | 阅读次数

操作系统Windows就像学校的食堂,虽然用的多,甚至觉得不可缺少,但却又有很多的不喜欢。

当你把Python写的程序上课时候用作demo或发给妹子showoff时候,

你就会发现,在windows主机上运行你的程序,

不仅你要把Python解释器安装程序带着,还要带上所有的第三方库,可能十分钟的demo时间你要用去八分钟安装使用环境,简直心累。

而且把py文件发给妹子还要他安装一系列运行环境,最后让妹子调用起cmd运行,相信我,这绝对不是一个好的game现场。

如果对面是个汉子的话,或许会是个是个不错的py交易的开始(误)。

Python写的程序想要在windows下优雅的运行的话,那么将.py文件和所调用的第三方库一次性打包生成为exe是最好的选择了。

Python 优雅的生成不那么优雅的EXE,就像把一只大象放进冰箱,

看似复杂,实则简单~只需要三步

阅读全文 »

无题

发表于 2017-03-20 | | 阅读次数

下午偷懒睡了一觉让我的大脑清醒无比,也让我想到了那个我本应该知道的事情,很长一段时间的浑浑噩噩让我只是在做事情,却不能了解到做事情的目的,我早就该搞清楚了,不单单是要回答做事情的目的,更要回答的是生活的意义。

阅读全文 »
1…91011
Yang Shuai

Yang Shuai

105 日志
89 标签
© 2021 Yang Shuai
由 Hexo 强力驱动
主题 - NexT.Mist