人在囧途——Java程序猿学习Python
引言
LZ之前其实一直对python都很好奇,只是苦于平时没有时间去了解它,因此趁着51假期这个机会,便迫不及待的开始了自己的探索。作为一个标准的Java程序猿,在了解python的过程当中,LZ遇到了很多囧事,接下来LZ就一一给大家说道说道。本文纯属看个乐子,非python教学。
囧事一:eclipse插件安装篇
由于LZ习惯了使用eclipse进行开发,因此对python的研究,还是希望可以在eclipse上进行试验。那么第一件事,自然是安装python的eclipse插件,于是百度、google各种搜索引擎开始进入LZ的脑海。
看着搜索结果,LZ不禁感叹大神们的厉害,原来如此简单,只需要像下面这样就可以。
好吧,于是LZ开始等待...慢慢的,十分钟过去了,它依然没有反应...又十分钟过去了,是的,它依然没有反应,囧。
半个小时之后,LZ终于忍不住了,开始选择第二种办法,离线安装。下载一个ZIP包,直接解压到eclipse的相应文件夹,于是pydev终于出现了。
功夫不负有心人,它终于出现了,有点找到失散多年的妹妹的感觉。接下来的过程还比较顺利,下载python运行环境,将python.exe配置到相应的interpreter上面去即可。
一个小时的折腾,LZ终于成功运行了那个具有划时代意义的程序,它叫“Hello World!”。
囧事二:变量声明篇
既然“Hello World”已经成功,那么接下来的过程应该是非常顺利的。不过没想到的是,接下来发生的事,让LZ更加抓狂。最根本的原因就是LZ写下来了这样一个程序。
它竟然报错了!大概意思LZ倒是看明白了,说字符串不能和int类型比较。于是LZ便将程序改成以下这样。
它竟然编译错误了!最可悲的是,这提示有点牛B,LZ只能说“!&……#&!……@&#*……!@&#”。于是牛B的LZ想到了无敌的一招,就是下面这招。
它竟然又报错了!强制类型转换都不好使了,这python还真不好搞。不过这时LZ灵机一动,看到了input()的用法,便比葫芦画瓢改了一下程序,结果它终于成功了。
无敌的python果然与众不同,习惯与Java完全不同,当初研究C++的时候不能说是顺风顺水,但也算是手到擒来,因为两者在某种程度上还是比较相似的。不过这python就不一样了,很多用法都已经截然不同。
囧事三:连接mysql数据库
完成了上面那个高端大气上档次的程序,LZ开始向新的目标前进。于是不自然的想到了数据库,LZ平时自己写Java程序都是使用mysql,于是也想使用python操作一下数据库。回想起Java操作mysql的方式,想必python也需要下载一个p包吧。
不过结果有点出乎LZ的预料,竟然需要安装一个叫mysqldb的东西。这是什么玩意?于是LZ开始抱着必胜的决心寻找它,结果终于在某USA的网站找到了它,本来以为是个exe的安装包,结果却是一大堆文件,看起来还需要自己build的节奏,这让LZ有点慌了神。
不要慌,下载下来再说。于是得到了下面这样一个东西。
幸好这玩意看起来还不是那么的难理解,想必应该是需要使用python解释器去执行setup.py就可以。最后发现,还需要加入一个build的参数。于是LZ便开始执行命令,结果得到了下面的错误。
其实在得到这个错误之前,LZ已经得到了很多错误,一开始是一个编译错误,LZ修改了setup_windows.py文件。后来又是一个导入module的错误,LZ又修改了setup_common.py文件。
直到得到这个错误以后,无论LZ如何猜测,都没有解决这个问题。因为它报错的地方是在python的lib文件当中,而不是mysqldb的文件。一时之间,LZ有点慌乱了,开始求助最后的大神google。不过结果依旧失败,往往在最后关头能帮助LZ的google,今天看来也不好使了。
这可怎么办?LZ猜测这种错误很可能是版本引起的问题,因为LZ隐约记得LZ下载的叫mysqldb2,可是LZ使用的是python3啊。会不会跟这个有关系呢?
说干就干,在百度输入mysql python3的关键字,最终还是让LZ找到了一丝蛛丝马迹,有一个地址叫mysql for python3。这是一个github的地址,LZ果断用git将这个下载下来。仔细一看,它的目录与刚才那个mysqldb2如出一辙,但其实仔细看,也有少许不同。
不管它了,管它哪里不同呢,继续执行刚才的命令。果然,这一次虽然有很多警告,但是build成功了。接着就是install,不出所料,依然还是成功,这让LZ欣喜万分。浪费了差不多一个小时,终于搞定了。
于是迫不及待的在eclipse当中输入一个标准的程序,来验证一下LZ的mysqldb是否安装成功了。可是没想到的是,它依然报错了。
从错误提示上来看,就像Java一样,是刚才安装的mysqldb没有被成功引入。于是LZ想到了在配置python解释器的时候,有一大堆东西让LZ选择,而刚才install的时候,就是在Lib下面安装了一个mysqlXXX的东西。于是LZ就找到了这里。
这下LZ的程序终于编译通过了,怀着激动的心情,LZ选择了python run,结果令人振奋。
终于打印出来了,这里面的数据就是LZ自己的mysql数据库当中存储的。到此,LZ短期对python的研究就暂时告一段落了,以后如果有机会的话,LZ会用python写一些实用的小工具,以便于自己在平时的工作当中使用。
小结
现在说来简单,其实在真正尝试的过程当中,还是遇到了不少问题。主要原因也和LZ想在windows下使用python有关系,这个时候就体现出linux的优势了,在linux上安装一些东西,总是那么的轻松。
这本来只是一篇流水文,不过LZ在这里还是想说,很多猿友在研究一些东西的时候,遇到困难就退缩了。到了最后,大部分人都会情不自禁的打开11GAME的快捷方式麻痹自己,从此无法自拔。但其实有的时候,只要你再往前一小步,就可以看到胜利了。最重要的是,这可以锻炼你解决问题的能力,因为在工作当中,很多事情都是你克服了无数奇葩的问题才得以解决的。
人在囧途——Java程序猿学习Python的更多相关文章
- 回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议
引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容 ...
- Java程序猿学习当中各个阶段的建议
回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议 引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的 ...
- 顺便谈谈对于Java程序猿学习当中各个阶段的建议
引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容 ...
- 【Python】Java程序员学习Python(五)— 函数的定义和使用
不想做一个待宰的羔羊!!!!要自己变得强大.... 函数的定义和使用放在最前边还是有原因的,现在语言趋于通用,基本类型基本都是那些,重点还是学习对象的使用方法,而最根本的还是方法的使用,因此优先介绍, ...
- Java程序猿学习的建议(转)
第一部分:对于尚未做过Java工作的同学,包括一些在校生以及刚准备转行Java的同学. 一.Java基础 首先去找一个Java的基础教程学一下,这里可以推荐一个地址,或者你也可以参照这个地址上去找相应 ...
- 【Python】Java程序员学习Python(二)— 开发环境搭建
巧妇难为无米之炊,我最爱的还是鸡蛋羹,因为我和鸡蛋羹有段不能说的秘密. 不管学啥,都要有环境,对于程序员来说搭建个开发环境应该不是什么难题.按顺序一步步来就可以,我也只是记录我的安装过程,你也可以滴. ...
- 【Python】Java程序员学习Python(六)— 流程控制、异常处理
和Java语言一样,Python也有基本的流程控制,简单了解下即可. 一.流程控制的元素 条件 条件就是布尔值或者布尔值的表达式,要么是True要么是False. 代码块 在Python中,代码块不是 ...
- 【Python】Java程序员学习Python(三)— 基础入门
一闪一闪亮晶晶,满天都是小星星,挂在天上放光明,好像许多小眼睛.不要问我为什么喜欢这首歌,我不会告诉你是因为有人用口琴吹给我听. 一.Python学习文档与资料 一般来说文档的资料总是最权威,最全面的 ...
- 【Python】Java程序员学习Python(十)— 类、包和模块
我觉得学习到现在应该得掌握Python的OOP编程了,但是现在还没有应用到,先留一个坑. 一.类和对象 说到类和对象其实就是在说面向对象编程,学完Java以后我觉得面向对象编程还是很不错的,首先封装了 ...
随机推荐
- tyvj1953 Normal
题目链接 正解:点分治+$FFT$. 很想吐槽一下$bzoj$,为什么搬了别的$oj$的题还设成权限题.. 首先我们考虑期望的线性性,即考虑每个点的贡献. 显然每个点的贡献就是它在点分树上的深度,所以 ...
- Python3中内置类型bytes和str用法及byte和string之间各种编码转换
Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str ...
- Yarn遭到挖矿病毒攻击
测试环境在阿里云上暴露出了公网端口,前一段时间CDH集群原本是开启了Kerberos认证,但是因为大家反映使用麻烦,所以就又关闭了Kerberos. 最近几天大家普遍反映测试环境上hive和hdfs ...
- istio 配置解读
Istio在服务网络中统一提供了许多关键功能: 流量管理:控制服务之间的流量和API调用的流向,使得调用更可靠,并使网络在恶劣情况下更加健壮. 可观察性:了解服务之间的依赖关系,以及它们之间流量的本质 ...
- DevOps 解读
本文为 转载文章, 非原创 DevOps DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化.运 ...
- 20155314 2016-2017-2 《Java程序设计》第9周学习总结
20155314 2016-2017-2 <Java程序设计>第9周学习总结 教材学习内容总结 了解JDBC架构 掌握JDBC架构 掌握反射与ClassLoader 了解自定义泛型和自定义 ...
- 【转】Python数据处理(四舍五入、除法部分)
转自:https://www.cnblogs.com/junyiningyuan/p/5338378.html 关于除法 传统除法 对两个整数进行除的运算,同时结果会舍去小数部分,返回一个整数.但如果 ...
- ddt Ui 案例2
准备用例文件:testcase1.py testcase2.py import ddt import unittest from HTMLTestRunner import HTMLTestRunne ...
- 记一次异机rman还原后的操作
当时从主库通过rman备份到目前测试库还原之后,由于备份是在备库备份的,所以数据库还原后状态为readonly,standby_file_management参数为auto.首先需要通过alter d ...
- Tarjan算法初探 (1):Tarjan如何求有向图的强连通分量
在此大概讲一下初学Tarjan算法的领悟( QwQ) Tarjan算法 是图论的非常经典的算法 可以用来寻找有向图中的强连通分量 与此同时也可以通过寻找图中的强连通分量来进行缩点 首先给出强连通分量的 ...