杭州IT培训
美国上市IT培训机构
0571-56026878
热门课程
Java开发
UID设计
Web前端
大数据
网络营销
PHP开发
VR/AR
高级电商
产品经理
UED设计
C/C++开发
linux云计算
主办会计
Android
嵌入式
iOS开发
C#/.Net开发
软件测试
Python
更多课程 >
了解达内
联系达内
0571-56026878
首页
达内介绍
培训课程
授课讲师
合作企业
在线试听
联系达内
热门课程:
Java
UID
WEB
PHP
网络营销
软件测试
会计
Linux
C++
VR/AR
UED
嵌入式
Android
IOS
.net
大数据
产品经理
高级电商
Python
杭州达内
>
雇主企业
>
疑难解答
Python如何入门?Python对生活的改变
时间:
2018-11-28 20:33
发布:
Python
来源:
Python
分享到:
今天
达内
Python培训
分享给大家的是一个案例,一个游戏工程师的进阶之路:Python如何入门?我的人生是如何被
Python编程
所改变的?希望对你有所启发。
Python 有那么神吗?
我打算去达内Python培训,结果好像看到一个新世界了, Python 在他们口中好像无所不能,编写一些自动化程序啊,黑别人网站啊,做游戏外挂之类的好像真的很牛逼,那么,Python 真的那么神奇吗?
今天我们就来借这个问题看看Python的牛X之处。
Python升华了我,也将影响未来的我。
我的第一份工作是一加国内知名游戏公司的逻辑程序员,必须技能是C++,但是一开始只是写语法和C++很类似的一种脚本(后来知道是从一个开源脚本引擎AngelScript修改而成的)。学习游戏开发的流程,填数据,用脚本定制各种任务、副本等等。第一年还很有兴致,第二年开始就意兴阑珊了。
后来熟悉了整个系统,介入到C++部分的代码里。涉及到道具、任务等等逻辑。那时候觉得最难的部分,是UI系统。当时的UI系统,是用XML拼出界面,然后用类似C++的那种脚本来给它写逻辑。从一开始被迫学习,到最后使用的时候遇到各种问题,前后折腾了很久。
写程序的热情,在实际工作中被一点点的磨灭。我想,很可能许许多多的程序员,都会遇到和我一样的问题。因为爱好而走上这条路,却被琐碎的工作磨灭了最初的冲动。等到我成为一个独当一面的程序员的时候,我甚至有一种感觉,觉得自己似乎什么都会,但是除了项目任务以外的东西,什么都做不出来。相比高中时候的自己,甚至有一些退步。
直到有一天,我看了一本书《黑客与画家》。
在你迷茫的时候,多吸收一些各方面的知识,偶尔会突然打开一扇窗。
《黑客与画家》满本书都透着浓浓的技术自信,和充足的技术底蕴。它就像是一个知识丰富的技术高手,迫不及待的将平生经验一股脑传授给你,为你指明发展的方向。
它的字里行间透露着对传统编程语言的鄙夷和对LISP的崇敬。它认为精巧的语言,加上聪明程序员实现的高度抽象代码,会带来极大的生产力提升,让开发更快、BUG更少,让一两个开发人员也能撑起一个具有巨大经济效益的网站。
在Web界已经是遍地动态语言的今天,《黑客与画家》里的判断似乎已经没什么好讨论的了(现在动态语言在很多领域已经成为了主流,和作者当年的情况已经有了天壤之别)。但对于当时的我来说,就是大海里的一盏明灯。
虽然书里对Python(作者当年还是1.x版本)的看法很具有批判性,但是由于那时Python 2.x已经有了长足的发展,加上一个同事的推荐,我全身心投入到了Python的学习之中。
在写了一些小练习程序之后,我在工作中找到了一个Python的用武之地——用Python实现一个数据表格分析程序,并检查表格中的数据错误、逻辑错误。这种表格处理工具在游戏中具有很大的作用,而且非常适合用脚本来灵活的扩展功能。
第一个实现的简单版本,使用起来大概是这样:
import mb
t = mb.table( "data/index.txt" );
l = t.get_line( 1001 ); # 1001 is line index
data1 = l.get_int( 2 ); # 2 means colum 2
data2 = l.get_str( 3 );
这个代码主要问题在哪呢?在于读取数据时,程序员自己要指定数据的类型。get_int,get_str,get_float等等等等。
很不幸而又幸运的,当时我用某某云盘保存自己的代码,有一次误同步,导致在公司写的很多代码,在家里操作时覆盖了。迫使我重写几乎整个程序。这次,在同事的参谋下,我实现了这种用法:
import mb
t = mb.table( "data/index.txt" );
l = t[1001]; # 1001 is line index
data1 = l[2]; # 2 means colum 2
data2 = l[3];
这段代码实现的功能与上面的完全一样,但是有两点变化:
1、用[]下标操作符代替了get_xxx()函数调用,更简洁。
2、读取时不需要指定类型,执行时,data1自然是整型,data2自然是字符串。
这种实现,对于当时的我来说,是一个理念上的重大突破!
为什么这么说呢?因为强类型的问题。在Python中,我用一些很简单的处理,让mb库的底层自然的处理了类型。而你知道吗?在C++中,做到这点难如登天!
C++常常为了推断一个类型,不惜使用模版技巧,写出天书一般的代码。而且,结果上,仍然不能做到动态语言的这种用法。也就是说,显式强类型特性,并不仅仅是约束程序员减少BUG的工具,它同时也是实现高抽象系统的一个束缚。这是个很有意思的事情,对我当时的触动很大。不知读者能否理解。
到了写出这个表格分析库之后,我生命中的一扇门打开了。
我回到了可以自由写代码的时代,就像是我的高中时代,而且比那个时代更为简洁,充满了更多的可能。
我可以任意的写代码,几行代码就能实现对树的操作、复杂的嵌套字典。我仿佛可以操作任意复杂的数据结构,或者复杂的递归,只要我想清楚了,根本不需要多少编码时间。当时自认为掌握了葵花宝典,干劲十足,所以还找了一个
Python学习
网站,没事就到上面刷题。
写了很多平时懒的写的复杂算法,还看大神们写的“一行Python”(其实是利用了列表解析等方式做的很简短但是有点难读的代码),收获了很多乐趣。
后来
后来的我,仔细学习过wxPython库,也实现过类似Web框架的游戏框架,对Python的使用也不断进入新的阶段。当然也发现Python的很多弊端,并非语言层的,大都是虚拟机层面的。
学习Python的过程中,我总结出项目开发的三大要点——开发速度,运行速度,维护难度。软件项目金三角。这个规则可以套用在所有的软件项目上,作为看项目的一个可观角度。而且有趣的是,这个三角形总是无法在三点上同时拿到高分。
也许大部分人都无法理解一门语言对一个程序员生涯的影响,所以特撰此文。
Python对我的影响是巨大的,Python升华了过去的我,也将持续影响未来的我。
感谢您的阅读,以上就是达内
Python培训机构
今天带给我们的分享:如何入门Python编程?我的人生是如何被Python编程所改变的?希望对你有所启发,如果你也想入门高薪Python人工智能行业,欢迎你来到达内Python培训机构进行学习。
免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
预约申请免费试听课
姓名
电话
获取试听资格
怕钱不够?
就业挣钱后再付学费!
怕学不会?
从入学起,达内定制课程!
担心就业?
达内多家实践企业供你挑选 !
上一篇:
软件测试工程师需要哪些技能
下一篇:
如何学习高级电商
相关推荐
人工智能算法和Python语言的区别
NET开发工具有哪些
ADO数据库编程入门
如何学习高级电商
开班时间
Java
12月28日
立即报名
UID
12月28日
立即报名
WEB
12月28日
立即报名
PHP
12月28日
立即报名
网络营销
12月28日
立即报名
软件测试
12月28日
立即报名
会计
12月28日
立即报名
Linux
12月28日
立即报名
C/C++
12月28日
立即报名
VR/AR
12月28日
立即报名
UED
12月28日
立即报名
嵌入式
12月28日
立即报名
Android
12月28日
立即报名
iOS
12月28日
立即报名
.net
12月28日
立即报名
大数据
12月28日
立即报名
产品经理
12月28日
立即报名
高级电商
12月28日
立即报名
选择城市和中心
北京
达内北京中关村中心
达内北京天坛中心
达内北京广渠门中心
达内北京南锣鼓巷中心
达内北京石景山中心
达内北京潘家园中心
达内北京海淀园中心
达内北京亚运村中心
达内北京魏公村中心
达内北京万寿路中心
达内北京亦庄大学生实训基地
达内北京网络营销中心
达内北京会计中心
黑龙江省
达内哈尔滨哈站中心
达内哈尔滨哈西中心
达内大庆中心
吉林省
达内长春长大中心
达内长春亚泰中心
辽宁省
达内沈阳三好中心
达内沈阳学府中心
达内沈阳奉天中心
达内大连胜利中心
达内大连腾飞中心
内蒙古
达内呼和浩特中心
达内包头中心
天津
达内天津天大中心
达内天津长宏中心
达内天津广开中心
达内天津滨海中心
河北省
达内石家庄先天下中心
达内石家庄中山路中心
达内秦皇岛中心
山西省
达内太原龙城中心
达内太原会计中心
达内太原学府中心
达内太原网络营销中心
达内晋中中心
达内运城中心
陕西省
达内西安交大中心
达内西安高新中心
达内西安和平门中心
达内西安省体中心
山东省
达内济南山大路中心
达内济南趵突泉中心
达内济南会计中心
达内济南大明湖中心
达内青岛山东路中心
达内烟台海港路中心
达内潍坊中心
达内临沂中心
达内青岛CBD中心
达内青岛西海岸中心
达内青岛城阳中心
达内淄博中心
达内济宁中心
河南省
达内郑州文化路中心
达内郑州嵩山路中心
达内郑州金水路中心
达内郑州东风路中心
达内南阳卧龙中心
达内洛阳王城中心
江苏省
达内南京总统府中心
达内南京新街口中心
达内南京软件谷中心
达内南京明故宫中心
达内南京常府街中心
达内苏州南门中心
达内苏州园区中心
达内苏州石路中心
达内无锡宝龙中心
达内无锡恒隆中心
达内徐州中心
安徽省
达内合肥银泰中心
达内合肥农大中心
达内合肥三孝口中心
达内合肥汇金中心
达内芜湖中心
达内蚌埠中心
上海
达内上海徐家汇中心
达内上海浦东中心
达内上海长寿路中心
达内上海外滩中心
达内上海南京路中心
达内上海陆家嘴中心
达内上海人民广场中心
达内上海徐家汇中心(童程童美)
达内上海浦东中心(童程童美)
达内上海长寿路中心(童程童美)
湖北省
达内武汉光谷中心
达内武汉洪山中心(原民大中心)
达内武汉武昌中心
达内武汉鲁广中心
四川省
达内成都钻石中心
达内成都高升桥中心
达内成都锦江中心
达内成都天府中心
达内成都金融街中心
达内绵阳中心
重庆
达内重庆杨家坪中心
达内重庆石桥铺中心
达内重庆江北中心
达内重庆解放碑中心
湖南省
达内长沙侯家塘中心
达内长沙松桂园中心
达内长沙芙蓉路中心
达内长沙河西CBD中心
江西省
达内南昌高新中心
达内南昌人民公园中心
浙江省
达内杭州西湖中心
达内杭州西溪中心
达内杭州黄龙中心
达内杭州创业中心
达内华东大学生实训基地
达内杭州武林门中心
达内杭州下沙中心
达内杭州文教中心
达内宁波中心
达内温州中心
达内金华中心
贵州省
达内贵阳中心
福建省
达内福州金山中心
达内厦门湖滨南中心
达内厦门软件园中心
达内福州鼓楼中心
云南省
达内昆明五一路中心
达内昆明春城路中心
广西省
达内南宁中心
广东省
达内广州五羊中心
达内广州天河北中心
达内广州体育东中心
达内广州岗顶中心
达内广州云计算中心
达内华南大学生实训基地
达内广州CBD中心
达内深圳罗湖中心
达内深圳龙岗中心
达内深圳宝安中心
达内深圳宝安体育馆中心
达内深圳童程童美中心
达内深圳地王中心
达内深圳科技园中心
达内深圳龙华中心
达内深圳汇海中心
达内珠海中心
达内东莞南城中心
达内东莞东城中心
达内佛山中心
达内中山中心
海南省
达内海南中心
台湾
达内台北中心